aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/unit/testDecoration.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'test/unit/testDecoration.cxx')
-rw-r--r--test/unit/testDecoration.cxx44
1 files changed, 44 insertions, 0 deletions
diff --git a/test/unit/testDecoration.cxx b/test/unit/testDecoration.cxx
index 769cf8983..86eb9ec39 100644
--- a/test/unit/testDecoration.cxx
+++ b/test/unit/testDecoration.cxx
@@ -43,3 +43,47 @@ TEST_CASE("Decoration") {
REQUIRE(!deco.Empty());
}
}
+
+// Test DecorationList.
+
+TEST_CASE("DecorationList") {
+
+ DecorationList decol;
+
+ SECTION("HasCorrectIndicator") {
+ decol.SetCurrentIndicator(indicator);
+ REQUIRE(indicator == decol.GetCurrentIndicator());
+ }
+
+ SECTION("HasCorrectCurrentValue") {
+ const int value = 55;
+ decol.SetCurrentValue(value);
+ REQUIRE(value == decol.GetCurrentValue());
+ }
+
+ SECTION("ExpandSetValues") {
+ decol.SetCurrentIndicator(indicator);
+ decol.InsertSpace(0, 9);
+ const int value = 59;
+ int position = 4;
+ int fillLength = 3;
+ bool changed = decol.FillRange(position, value, fillLength);
+ REQUIRE(changed);
+ REQUIRE(position == 4);
+ REQUIRE(fillLength == 3);
+ REQUIRE(fillLength == 3);
+ REQUIRE(decol.ValueAt(indicator, 5) == value);
+ REQUIRE(decol.AllOnFor(5) == (1 << indicator));
+ REQUIRE(decol.Start(indicator, 5) == 4);
+ REQUIRE(decol.End(indicator, 5) == 7);
+ const int indicatorB=6;
+ decol.SetCurrentIndicator(indicatorB);
+ changed = decol.FillRange(position, value, fillLength);
+ REQUIRE(changed);
+ REQUIRE(decol.AllOnFor(5) == ((1 << indicator) | (1 << indicatorB)));
+ decol.DeleteRange(5, 1);
+ REQUIRE(decol.Start(indicatorB, 5) == 4);
+ REQUIRE(decol.End(indicatorB, 5) == 6);
+ }
+
+}