summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/core.cpp35
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");
+ }
+}
}