diff options
Diffstat (limited to 'test/common/map.h')
-rw-r--r-- | test/common/map.h | 111 |
1 files changed, 89 insertions, 22 deletions
diff --git a/test/common/map.h b/test/common/map.h index c113ffe987..b4c791d67e 100644 --- a/test/common/map.h +++ b/test/common/map.h @@ -8,35 +8,52 @@ class MapTestSuite : public CxxTest::TestSuite public: void test_empty_clear( void ) { - Common::Map<int, int> map; - TS_ASSERT( map.empty() ); - map[0] = 17; - map[1] = 33; - TS_ASSERT( !map.empty() ); - map.clear(); - TS_ASSERT( map.empty() ); + Common::Map<int, int> container; + TS_ASSERT( container.empty() ); + container[0] = 17; + container[1] = 33; + TS_ASSERT( !container.empty() ); + container.clear(); + TS_ASSERT( container.empty() ); } + void test_contains( void ) { - Common::Map<int, int> map; - map[0] = 17; - map[1] = 33; - TS_ASSERT( map.contains(0) ); - TS_ASSERT( map.contains(1) ); - TS_ASSERT( !map.contains(17) ); - TS_ASSERT( !map.contains(-1) ); + Common::Map<int, int> container; + container[0] = 17; + container[1] = 33; + TS_ASSERT( container.contains(0) ); + TS_ASSERT( container.contains(1) ); + TS_ASSERT( !container.contains(17) ); + TS_ASSERT( !container.contains(-1) ); } void test_add_remove( void ) { - Common::Map<int, int> map; - map[0] = 17; - map[1] = 33; - TS_ASSERT( map.contains(1) ); - map.erase(1); - TS_ASSERT( !map.contains(1) ); - map[1] = 42; - TS_ASSERT( map.contains(1) ); + Common::Map<int, int> container; + container[0] = 17; + container[1] = 33; + TS_ASSERT( container.contains(1) ); + container.erase(1); + TS_ASSERT( !container.contains(1) ); + container[1] = 42; + TS_ASSERT( container.contains(1) ); + } + + void test_lookup( void ) + { + Common::Map<int, int> container; + container[0] = 17; + container[1] = -1; + container[2] = 45; + container[3] = 12; + container[4] = 96; + + TS_ASSERT_EQUALS( container[0], 17 ); + TS_ASSERT_EQUALS( container[1], -1 ); + TS_ASSERT_EQUALS( container[2], 45 ); + TS_ASSERT_EQUALS( container[3], 12 ); + TS_ASSERT_EQUALS( container[4], 96 ); } void test_merge( void ) @@ -62,5 +79,55 @@ class MapTestSuite : public CxxTest::TestSuite TS_ASSERT_EQUALS( mapA[4], 96 ); } + void test_iterator_begin_end( void ) + { + Common::Map<int, int> container; + + // The container is initially empty ... + TS_ASSERT( container.begin() == container.end() ); + + // ... then non-empty ... + container[324] = 33; + TS_ASSERT( container.begin() != container.end() ); + + // ... and again empty. + container.clear(); + TS_ASSERT( container.begin() == container.end() ); + } + + void test_iterator( void ) + { + Common::Map<int, int> container; + Common::Map<int, int>::const_iterator iter; + + // Fill the container with some random data + container[102] = 17; + container[-37] = 33; + container[324] = -11; + + // Iterate over the container and verify that we encounter the elements + // in increasing order + + iter = container.begin(); + + TS_ASSERT( iter->_key == -37 ); + TS_ASSERT( iter->_value == 33 ); + ++iter; + TS_ASSERT( iter != container.end() ); + + TS_ASSERT( iter->_key == 102 ); + TS_ASSERT( iter->_value == 17 ); + ++iter; + TS_ASSERT( iter != container.end() ); + +#if 0 + // Also test the postinc + TS_ASSERT( iter->_key == 324 ); + TS_ASSERT( iter->_value == -11 ); + iter++; + TS_ASSERT( iter == container.end() ); +#endif + } + // TODO: Add test cases for iterators, find, ... }; |