aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/unit/testSparseState.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'test/unit/testSparseState.cxx')
-rw-r--r--test/unit/testSparseState.cxx384
1 files changed, 184 insertions, 200 deletions
diff --git a/test/unit/testSparseState.cxx b/test/unit/testSparseState.cxx
index a30240d62..bcc7d5552 100644
--- a/test/unit/testSparseState.cxx
+++ b/test/unit/testSparseState.cxx
@@ -8,237 +8,221 @@
#include "SparseState.h"
-#include <gtest/gtest.h>
+#include "catch.hpp"
// Test SparseState.
-class SparseStateTest : public ::testing::Test {
-protected:
- virtual void SetUp() {
- pss = new SparseState<int>();
+TEST_CASE("SparseState") {
+
+ SparseState<int> ss;
+
+ SECTION("IsEmptyInitially") {
+ REQUIRE(0u == ss.size());
+ int val = ss.ValueAt(0);
+ REQUIRE(0 == val);
}
- virtual void TearDown() {
- delete pss;
- pss = 0;
+ SECTION("SimpleSetAndGet") {
+ ss.Set(0, 22);
+ ss.Set(1, 23);
+ REQUIRE(2u == ss.size());
+ REQUIRE(0 == ss.ValueAt(-1));
+ REQUIRE(22 == ss.ValueAt(0));
+ REQUIRE(23 == ss.ValueAt(1));
+ REQUIRE(23 == ss.ValueAt(2));
}
- SparseState<int> *pss;
-};
+ SECTION("RetrieveBetween") {
+ ss.Set(0, 10);
+ ss.Set(2, 12);
+ REQUIRE(2u == ss.size());
+ REQUIRE(0 == ss.ValueAt(-1));
+ REQUIRE(10 == ss.ValueAt(0));
+ REQUIRE(10 == ss.ValueAt(1));
+ REQUIRE(12 == ss.ValueAt(2));
+ }
-TEST_F(SparseStateTest, IsEmptyInitially) {
- EXPECT_EQ(0u, pss->size());
- int val = pss->ValueAt(0);
- EXPECT_EQ(0, val);
-}
+ SECTION("RetrieveBefore") {
+ ss.Set(2, 12);
+ REQUIRE(1u == ss.size());
+ REQUIRE(0 == ss.ValueAt(-1));
+ REQUIRE(0 == ss.ValueAt(0));
+ REQUIRE(0 == ss.ValueAt(1));
+ REQUIRE(12 == ss.ValueAt(2));
+ }
-TEST_F(SparseStateTest, SimpleSetAndGet) {
- pss->Set(0, 22);
- pss->Set(1, 23);
- EXPECT_EQ(2u, pss->size());
- EXPECT_EQ(0, pss->ValueAt(-1));
- EXPECT_EQ(22, pss->ValueAt(0));
- EXPECT_EQ(23, pss->ValueAt(1));
- EXPECT_EQ(23, pss->ValueAt(2));
-}
+ SECTION("Delete") {
+ ss.Set(0, 30);
+ ss.Set(2, 32);
+ ss.Delete(2);
+ REQUIRE(1u == ss.size());
+ REQUIRE(0 == ss.ValueAt(-1));
+ REQUIRE(30 == ss.ValueAt(0));
+ REQUIRE(30 == ss.ValueAt(1));
+ REQUIRE(30 == ss.ValueAt(2));
+ }
-TEST_F(SparseStateTest, RetrieveBetween) {
- pss->Set(0, 10);
- pss->Set(2, 12);
- EXPECT_EQ(2u, pss->size());
- EXPECT_EQ(0, pss->ValueAt(-1));
- EXPECT_EQ(10, pss->ValueAt(0));
- EXPECT_EQ(10, pss->ValueAt(1));
- EXPECT_EQ(12, pss->ValueAt(2));
-}
+ SECTION("DeleteBetween") {
+ ss.Set(0, 30);
+ ss.Set(2, 32);
+ ss.Delete(1);
+ REQUIRE(1u == ss.size());
+ REQUIRE(0 == ss.ValueAt(-1));
+ REQUIRE(30 == ss.ValueAt(0));
+ REQUIRE(30 == ss.ValueAt(1));
+ REQUIRE(30 == ss.ValueAt(2));
+ }
-TEST_F(SparseStateTest, RetrieveBefore) {
- pss->Set(2, 12);
- EXPECT_EQ(1u, pss->size());
- EXPECT_EQ(0, pss->ValueAt(-1));
- EXPECT_EQ(0, pss->ValueAt(0));
- EXPECT_EQ(0, pss->ValueAt(1));
- EXPECT_EQ(12, pss->ValueAt(2));
-}
+ SECTION("ReplaceLast") {
+ ss.Set(0, 30);
+ ss.Set(2, 31);
+ ss.Set(2, 32);
+ REQUIRE(2u == ss.size());
+ REQUIRE(0 == ss.ValueAt(-1));
+ REQUIRE(30 == ss.ValueAt(0));
+ REQUIRE(30 == ss.ValueAt(1));
+ REQUIRE(32 == ss.ValueAt(2));
+ REQUIRE(32 == ss.ValueAt(3));
+ }
-TEST_F(SparseStateTest, Delete) {
- pss->Set(0, 30);
- pss->Set(2, 32);
- pss->Delete(2);
- EXPECT_EQ(1u, pss->size());
- EXPECT_EQ(0, pss->ValueAt(-1));
- EXPECT_EQ(30, pss->ValueAt(0));
- EXPECT_EQ(30, pss->ValueAt(1));
- EXPECT_EQ(30, pss->ValueAt(2));
-}
+ SECTION("OnlyChangeAppended") {
+ ss.Set(0, 30);
+ ss.Set(2, 31);
+ ss.Set(3, 31);
+ REQUIRE(2u == ss.size());
+ }
-TEST_F(SparseStateTest, DeleteBetweeen) {
- pss->Set(0, 30);
- pss->Set(2, 32);
- pss->Delete(1);
- EXPECT_EQ(1u, pss->size());
- EXPECT_EQ(0, pss->ValueAt(-1));
- EXPECT_EQ(30, pss->ValueAt(0));
- EXPECT_EQ(30, pss->ValueAt(1));
- EXPECT_EQ(30, pss->ValueAt(2));
-}
+ SECTION("MergeBetween") {
+ ss.Set(0, 30);
+ ss.Set(2, 32);
+ ss.Set(4, 34);
+ REQUIRE(3u == ss.size());
+
+ SparseState<int> ssAdditions(3);
+ ssAdditions.Set(4, 34);
+ REQUIRE(1u == ssAdditions.size());
+ bool mergeChanged = ss.Merge(ssAdditions,5);
+ REQUIRE(0 == mergeChanged);
+
+ ssAdditions.Set(4, 44);
+ REQUIRE(1u == ssAdditions.size());
+ mergeChanged = ss.Merge(ssAdditions,5);
+ REQUIRE(true == mergeChanged);
+ REQUIRE(3u == ss.size());
+ REQUIRE(44 == ss.ValueAt(4));
+ }
-TEST_F(SparseStateTest, ReplaceLast) {
- pss->Set(0, 30);
- pss->Set(2, 31);
- pss->Set(2, 32);
- EXPECT_EQ(2u, pss->size());
- EXPECT_EQ(0, pss->ValueAt(-1));
- EXPECT_EQ(30, pss->ValueAt(0));
- EXPECT_EQ(30, pss->ValueAt(1));
- EXPECT_EQ(32, pss->ValueAt(2));
- EXPECT_EQ(32, pss->ValueAt(3));
-}
+ SECTION("MergeAtExisting") {
+ ss.Set(0, 30);
+ ss.Set(2, 32);
+ ss.Set(4, 34);
+ REQUIRE(3u == ss.size());
+
+ SparseState<int> ssAdditions(4);
+ ssAdditions.Set(4, 34);
+ REQUIRE(1u == ssAdditions.size());
+ bool mergeChanged = ss.Merge(ssAdditions,5);
+ REQUIRE(0 == mergeChanged);
+
+ ssAdditions.Set(4, 44);
+ REQUIRE(1u == ssAdditions.size());
+ mergeChanged = ss.Merge(ssAdditions,5);
+ REQUIRE(true == mergeChanged);
+ REQUIRE(3u == ss.size());
+ REQUIRE(44 == ss.ValueAt(4));
+ }
-TEST_F(SparseStateTest, OnlyChangeAppended) {
- pss->Set(0, 30);
- pss->Set(2, 31);
- pss->Set(3, 31);
- EXPECT_EQ(2u, pss->size());
-}
+ SECTION("MergeWhichRemoves") {
+ ss.Set(0, 30);
+ ss.Set(2, 32);
+ ss.Set(4, 34);
+ REQUIRE(3u == ss.size());
+
+ SparseState<int> ssAdditions(2);
+ ssAdditions.Set(2, 22);
+ REQUIRE(1u == ssAdditions.size());
+ REQUIRE(22 == ssAdditions.ValueAt(2));
+ bool mergeChanged = ss.Merge(ssAdditions,5);
+ REQUIRE(true == mergeChanged);
+ REQUIRE(2u == ss.size());
+ REQUIRE(22 == ss.ValueAt(2));
+ }
-TEST_F(SparseStateTest, MergeBetween) {
- pss->Set(0, 30);
- pss->Set(2, 32);
- pss->Set(4, 34);
- EXPECT_EQ(3u, pss->size());
-
- SparseState<int> ssAdditions(3);
- ssAdditions.Set(4, 34);
- EXPECT_EQ(1u, ssAdditions.size());
- bool mergeChanged = pss->Merge(ssAdditions,5);
- EXPECT_EQ(0, mergeChanged);
-
- ssAdditions.Set(4, 44);
- EXPECT_EQ(1u, ssAdditions.size());
- mergeChanged = pss->Merge(ssAdditions,5);
- EXPECT_EQ(true, mergeChanged);
- EXPECT_EQ(3u, pss->size());
- EXPECT_EQ(44, pss->ValueAt(4));
-}
+ SECTION("MergeIgnoreSome") {
+ ss.Set(0, 30);
+ ss.Set(2, 32);
+ ss.Set(4, 34);
-TEST_F(SparseStateTest, MergeAtExisting) {
- pss->Set(0, 30);
- pss->Set(2, 32);
- pss->Set(4, 34);
- EXPECT_EQ(3u, pss->size());
-
- SparseState<int> ssAdditions(4);
- ssAdditions.Set(4, 34);
- EXPECT_EQ(1u, ssAdditions.size());
- bool mergeChanged = pss->Merge(ssAdditions,5);
- EXPECT_EQ(0, mergeChanged);
-
- ssAdditions.Set(4, 44);
- EXPECT_EQ(1u, ssAdditions.size());
- mergeChanged = pss->Merge(ssAdditions,5);
- EXPECT_EQ(true, mergeChanged);
- EXPECT_EQ(3u, pss->size());
- EXPECT_EQ(44, pss->ValueAt(4));
-}
+ SparseState<int> ssAdditions(2);
+ ssAdditions.Set(2, 32);
+ bool mergeChanged = ss.Merge(ssAdditions,3);
-TEST_F(SparseStateTest, MergeWhichRemoves) {
- pss->Set(0, 30);
- pss->Set(2, 32);
- pss->Set(4, 34);
- EXPECT_EQ(3u, pss->size());
-
- SparseState<int> ssAdditions(2);
- ssAdditions.Set(2, 22);
- EXPECT_EQ(1u, ssAdditions.size());
- EXPECT_EQ(22, ssAdditions.ValueAt(2));
- bool mergeChanged = pss->Merge(ssAdditions,5);
- EXPECT_EQ(true, mergeChanged);
- EXPECT_EQ(2u, pss->size());
- EXPECT_EQ(22, pss->ValueAt(2));
-}
+ REQUIRE(0 == mergeChanged);
+ REQUIRE(2u == ss.size());
+ REQUIRE(32 == ss.ValueAt(2));
+ }
-TEST_F(SparseStateTest, MergeIgnoreSome) {
- pss->Set(0, 30);
- pss->Set(2, 32);
- pss->Set(4, 34);
+ SECTION("MergeIgnoreSomeStart") {
+ ss.Set(0, 30);
+ ss.Set(2, 32);
+ ss.Set(4, 34);
- SparseState<int> ssAdditions(2);
- ssAdditions.Set(2, 32);
- bool mergeChanged = pss->Merge(ssAdditions,3);
+ SparseState<int> ssAdditions(2);
+ ssAdditions.Set(2, 32);
+ bool mergeChanged = ss.Merge(ssAdditions,2);
- EXPECT_EQ(0, mergeChanged);
- EXPECT_EQ(2u, pss->size());
- EXPECT_EQ(32, pss->ValueAt(2));
-}
+ REQUIRE(0 == mergeChanged);
+ REQUIRE(2u == ss.size());
+ REQUIRE(32 == ss.ValueAt(2));
+ }
-TEST_F(SparseStateTest, MergeIgnoreSomeStart) {
- pss->Set(0, 30);
- pss->Set(2, 32);
- pss->Set(4, 34);
+ SECTION("MergeIgnoreRepeat") {
+ ss.Set(0, 30);
+ ss.Set(2, 32);
+ ss.Set(4, 34);
- SparseState<int> ssAdditions(2);
- ssAdditions.Set(2, 32);
- bool mergeChanged = pss->Merge(ssAdditions,2);
+ SparseState<int> ssAdditions(5);
+ // Appending same value as at end of pss.
+ ssAdditions.Set(5, 34);
+ bool mergeChanged = ss.Merge(ssAdditions,6);
- EXPECT_EQ(0, mergeChanged);
- EXPECT_EQ(2u, pss->size());
- EXPECT_EQ(32, pss->ValueAt(2));
-}
+ REQUIRE(0 == mergeChanged);
+ REQUIRE(3u == ss.size());
+ REQUIRE(34 == ss.ValueAt(4));
+ }
-TEST_F(SparseStateTest, MergeIgnoreRepeat) {
- pss->Set(0, 30);
- pss->Set(2, 32);
- pss->Set(4, 34);
+}
- SparseState<int> ssAdditions(5);
- // Appending same value as at end of pss.
- ssAdditions.Set(5, 34);
- bool mergeChanged = pss->Merge(ssAdditions,6);
+TEST_CASE("SparseStateString") {
- EXPECT_EQ(0, mergeChanged);
- EXPECT_EQ(3u, pss->size());
- EXPECT_EQ(34, pss->ValueAt(4));
-}
+ SparseState<std::string> ss;
-class SparseStateStringTest : public ::testing::Test {
-protected:
- virtual void SetUp() {
- pss = new SparseState<std::string>();
+ SECTION("IsEmptyInitially") {
+ REQUIRE(0u == ss.size());
+ std::string val = ss.ValueAt(0);
+ REQUIRE("" == val);
}
- virtual void TearDown() {
- delete pss;
- pss = 0;
+ SECTION("SimpleSetAndGet") {
+ REQUIRE(0u == ss.size());
+ ss.Set(0, "22");
+ ss.Set(1, "23");
+ REQUIRE(2u == ss.size());
+ REQUIRE("" == ss.ValueAt(-1));
+ REQUIRE("22" == ss.ValueAt(0));
+ REQUIRE("23" == ss.ValueAt(1));
+ REQUIRE("23" == ss.ValueAt(2));
}
- SparseState<std::string> *pss;
-};
-
-TEST_F(SparseStateStringTest, IsEmptyInitially) {
- EXPECT_EQ(0u, pss->size());
- std::string val = pss->ValueAt(0);
- EXPECT_EQ("", val);
-}
-
-TEST_F(SparseStateStringTest, SimpleSetAndGet) {
- EXPECT_EQ(0u, pss->size());
- pss->Set(0, "22");
- pss->Set(1, "23");
- EXPECT_EQ(2u, pss->size());
- EXPECT_EQ("", pss->ValueAt(-1));
- EXPECT_EQ("22", pss->ValueAt(0));
- EXPECT_EQ("23", pss->ValueAt(1));
- EXPECT_EQ("23", pss->ValueAt(2));
-}
+ SECTION("DeleteBetween") {
+ ss.Set(0, "30");
+ ss.Set(2, "32");
+ ss.Delete(1);
+ REQUIRE(1u == ss.size());
+ REQUIRE("" == ss.ValueAt(-1));
+ REQUIRE("30" == ss.ValueAt(0));
+ REQUIRE("30" == ss.ValueAt(1));
+ REQUIRE("30" == ss.ValueAt(2));
+ }
-TEST_F(SparseStateStringTest, DeleteBetweeen) {
- pss->Set(0, "30");
- pss->Set(2, "32");
- pss->Delete(1);
- EXPECT_EQ(1u, pss->size());
- EXPECT_EQ("", pss->ValueAt(-1));
- EXPECT_EQ("30", pss->ValueAt(0));
- EXPECT_EQ("30", pss->ValueAt(1));
- EXPECT_EQ("30", pss->ValueAt(2));
}