summaryrefslogtreecommitdiff
path: root/sc/qa/unit/rangelst_test.cxx
diff options
context:
space:
mode:
authorTor Lillqvist <tml@collabora.com>2017-09-14 20:21:20 +0300
committerTor Lillqvist <tml@collabora.com>2017-09-14 20:26:44 +0300
commit2130ecae63335f1fdcee59df010cd4788a5ee8bc (patch)
treea470baa056eec84888326720413981727114e93e /sc/qa/unit/rangelst_test.cxx
parent196e1e6d8b9864a47ee02049c075c52027288ff3 (diff)
Add test for joining a range totally contained in an existing one
It is supposed to be "swallowed". Change-Id: I6184e5ff8560e5ad0c97dce1481123b9acecfabc
Diffstat (limited to 'sc/qa/unit/rangelst_test.cxx')
-rw-r--r--sc/qa/unit/rangelst_test.cxx23
1 files changed, 23 insertions, 0 deletions
diff --git a/sc/qa/unit/rangelst_test.cxx b/sc/qa/unit/rangelst_test.cxx
index dce700164ecd..0f61bcad4971 100644
--- a/sc/qa/unit/rangelst_test.cxx
+++ b/sc/qa/unit/rangelst_test.cxx
@@ -44,6 +44,7 @@ public:
void testDeleteArea_0Ranges();
void testJoin_Case1();
void testJoin_Case2();
+ void testJoin_Case3();
void testGetIntersectedRange();
void testUpdateReference_DeleteRow();
@@ -72,6 +73,7 @@ public:
CPPUNIT_TEST(testDeleteArea_0Ranges);
CPPUNIT_TEST(testJoin_Case1);
CPPUNIT_TEST(testJoin_Case2);
+ CPPUNIT_TEST(testJoin_Case3);
CPPUNIT_TEST(testUpdateReference_DeleteRow);
CPPUNIT_TEST(testUpdateReference_DeleteLastRow);
CPPUNIT_TEST(testUpdateReference_DeleteCol);
@@ -424,6 +426,27 @@ void Test::testJoin_Case2()
CPPUNIT_ASSERT_EQUAL(ScRange(1,1,0,9,3,0), *aList[0]);
}
+void Test::testJoin_Case3()
+{
+ ScRangeList aList;
+ aList.Join(ScRange(1,1,0,6,6,0));
+ aList.Join(ScRange(3,3,0,4,4,0));
+
+ // The second one should have been swallowed by the first one
+ CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), aList.size());
+ CPPUNIT_ASSERT_EQUAL(ScRange(1,1,0,6,6,0), *aList[0]);
+
+ // Add a disjoint one
+ aList.Join(ScRange(8,8,0,9,9,0));
+
+ // Should be two ones now
+ CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(2), aList.size());
+ // The first one should still be as is
+ CPPUNIT_ASSERT_EQUAL(ScRange(1,1,0,6,6,0), *aList[0]);
+ // Ditto for the second one
+ CPPUNIT_ASSERT_EQUAL(ScRange(8,8,0,9,9,0), *aList[1]);
+}
+
void Test::testUpdateReference_DeleteRow()
{
ScRangeList aList(ScRange(1,1,0,4,4,0));