From 33a56b3a04355c41d731abe68b06a3a4fde919a1 Mon Sep 17 00:00:00 2001 From: amiremohamadi Date: Fri, 20 Mar 2020 23:06:58 +0330 Subject: [PATCH 1/2] add more tests for absolute and relative column, row forms --- tests/cell/cell_test_suite.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/tests/cell/cell_test_suite.cpp b/tests/cell/cell_test_suite.cpp index e388da51f..2cd04b7ef 100644 --- a/tests/cell/cell_test_suite.cpp +++ b/tests/cell/cell_test_suite.cpp @@ -665,8 +665,16 @@ class cell_test_suite : public test_suite xlnt_assert_throws(xlnt::cell_reference("A"), xlnt::invalid_cell_reference); auto ref = xlnt::cell_reference("$B$7"); - xlnt_assert(ref.row_absolute()); - xlnt_assert(ref.column_absolute()); + xlnt_assert_equals(ref.row_absolute(), true); + xlnt_assert_equals(ref.column_absolute(), true); + + ref = xlnt::cell_reference("$B7"); + xlnt_assert_equals(ref.row_absolute(), false); + xlnt_assert_equals(ref.column_absolute(), true); + + ref = xlnt::cell_reference("B$7"); + xlnt_assert_equals(ref.row_absolute(), true); + xlnt_assert_equals(ref.column_absolute(), false); xlnt_assert(xlnt::cell_reference("A1") == "A1"); xlnt_assert(xlnt::cell_reference("A1") != "A2"); From 3af95679467ac7027abb6a850e22b3c358c76666 Mon Sep 17 00:00:00 2001 From: amiremohamadi Date: Fri, 20 Mar 2020 23:08:27 +0330 Subject: [PATCH 2/2] fix-bug: set absolute flags correctly --- source/cell/cell_reference.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/cell/cell_reference.cpp b/source/cell/cell_reference.cpp index 385e84d34..d996adab6 100644 --- a/source/cell/cell_reference.cpp +++ b/source/cell/cell_reference.cpp @@ -174,13 +174,13 @@ std::pair cell_reference::split_reference( if (column_string[0] == '$') { - absolute_row = true; + absolute_column = true; column_string = column_string.substr(1); } if (row_string[0] == '$') { - absolute_column = true; + absolute_row = true; row_string = row_string.substr(1); }