Added the ability to force which value is returned. If you're unsure whether you're passing VALUE or its EQUIVALENT to the function, you can force OPPOSITE, VALUE, or EQUIVALENT as a return value.

This commit is contained in:
David Vereb
2017-11-10 14:57:31 -05:00
parent 50d7342551
commit 757f877a5b
2 changed files with 55 additions and 4 deletions

View File

@@ -56,5 +56,36 @@ TEST_CASE("all tests", "all") {
REQUIRE(string_container_result == "2");
}
}
SECTION ("choosing result side") {
int container_result;
container.add(1, 2);
container_result = 0;
REQUIRE(container.get(1, container_result));
CHECK(container_result == 2);
container_result = 0;
REQUIRE(container.get(1, container_result, DualLookup<int>::Type::OPPOSITE));
CHECK(container_result == 2);
container_result = 0;
REQUIRE(container.get(1, container_result, DualLookup<int>::Type::EQUIVALENT));
CHECK(container_result == 2);
container_result = 0;
REQUIRE(container.get(1, container_result, DualLookup<int>::Type::VALUE));
CHECK(container_result == 1);
container_result = 0;
REQUIRE(container.get(2, container_result));
CHECK(container_result == 1);
container_result = 0;
REQUIRE(container.get(2, container_result, DualLookup<int>::Type::OPPOSITE));
CHECK(container_result == 1);
container_result = 0;
REQUIRE(container.get(2, container_result, DualLookup<int>::Type::EQUIVALENT));
CHECK(container_result == 2);
container_result = 0;
REQUIRE(container.get(2, container_result, DualLookup<int>::Type::VALUE));
CHECK(container_result == 1);
}
}
}