aboutsummaryrefslogtreecommitdiff
path: root/test/common/map.h
diff options
context:
space:
mode:
Diffstat (limited to 'test/common/map.h')
-rw-r--r--test/common/map.h111
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, ...
};