diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/core.cpp | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/tests/core.cpp b/tests/core.cpp index 485e601..e8d106b 100644 --- a/tests/core.cpp +++ b/tests/core.cpp @@ -1,8 +1,9 @@ #include <forstio/test/suite.h> #include <forstio/core/id.h> +#include <forstio/core/id_map.h> namespace { -SAW_TEST("Basic ID functionality") { +SAW_TEST("ID functionality") { using namespace saw; struct foo {}; @@ -10,8 +11,40 @@ SAW_TEST("Basic ID functionality") { id<foo> b{1}; id<foo> c{2}; + /** + * The following doesn't compile, so it's commented out as an example + */ + /** + * struct bar {}; + * + * id<bar> d{1}; + * + * SAW_EXPECT(a == d, "Shouldn't compile"); + */ + SAW_EXPECT(a == b, "Should be equal"); SAW_EXPECT(a != c, "Shouldn't be equal"); + SAW_EXPECT(b != c, "Shouldn't be equal"); SAW_EXPECT(a.get_value() == 1, "Lost original value"); } + +SAW_TEST("ID Map Insert"){ + using namespace saw; + + struct foo {}; + + id_map<foo> map; + { + auto eoid = map.insert(foo{}); + SAW_EXPECT(eoid.is_value(), "First insert failed"); + + auto& id = eoid.get_value(); + + auto eoid_2 = map.insert(foo{}); + SAW_EXPECT(eoid_2.is_value(), "Second Insert failed"); + + auto eov = map.erase(id); + SAW_EXPECT(eov.is_value(), "Erase failed"); + } +} } |