2 #include <msp/core/maputils.h>
3 #include <msp/test/test.h>
8 class MapUtilTests: public Test::RegisteredTest<MapUtilTests>
13 static const char *get_name() { return "maputils"; }
18 void nonexistent_item();
20 void uncastable_key();
24 MapUtilTests::MapUtilTests()
26 add(&MapUtilTests::get_item, "get_item");
27 add(&MapUtilTests::insert_unique, "insert_unique");
28 add(&MapUtilTests::nonexistent_item, "nonexistent item").expect_throw<key_error>();
29 add(&MapUtilTests::key_collision, "key collision").expect_throw<key_error>();
30 add(&MapUtilTests::uncastable_key, "uncastable key").expect_throw<key_error>();
33 void MapUtilTests::get_item()
38 EXPECT_EQUAL(::get_item(m, 1), "foo");
39 EXPECT_EQUAL(::get_item(m, 3), "bar");
42 void MapUtilTests::insert_unique()
45 ::insert_unique(m, 1, "foo");
46 ::insert_unique(m, 3, "bar");
47 EXPECT_EQUAL(m.count(1), 1);
48 EXPECT_EQUAL(m.count(3), 1);
51 void MapUtilTests::nonexistent_item()
57 void MapUtilTests::key_collision()
60 ::insert_unique(m, 1, "foo");
61 ::insert_unique(m, 1, "bar");
64 void MapUtilTests::uncastable_key()
66 map<pair<int, int>, string> m;
67 ::get_item(m, make_pair(0, 0));