From 111c0d1ddd82fbc062089ba14878c3950899f7fd Mon Sep 17 00:00:00 2001 From: Max Horn Date: Fri, 31 Mar 2006 07:20:16 +0000 Subject: Some new & extended test cases svn-id: r21509 --- test/common/hashmap.h | 77 ++++++++++++++++++++++++---------- test/common/list.h | 79 ++++++++++++++++++++--------------- test/common/map.h | 111 ++++++++++++++++++++++++++++++++++++++++---------- 3 files changed, 191 insertions(+), 76 deletions(-) (limited to 'test') diff --git a/test/common/hashmap.h b/test/common/hashmap.h index 85da1487f4..40636e8a91 100644 --- a/test/common/hashmap.h +++ b/test/common/hashmap.h @@ -8,35 +8,68 @@ class HashMapTestSuite : public CxxTest::TestSuite public: void test_empty_clear( void ) { - Common::HashMap map; - TS_ASSERT( map.empty() ); - map[0] = 17; - map[1] = 33; - TS_ASSERT( !map.empty() ); - map.clear(); - TS_ASSERT( map.empty() ); + Common::HashMap 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::HashMap 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::HashMap 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::HashMap 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::HashMap 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::HashMap 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_iterator_begin_end( void ) + { + Common::HashMap 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() ); } // TODO: Add test cases for iterators, find, ... diff --git a/test/common/list.h b/test/common/list.h index 41600f3f29..31ff7af399 100644 --- a/test/common/list.h +++ b/test/common/list.h @@ -8,84 +8,99 @@ class ListTestSuite : public CxxTest::TestSuite public: void test_empty_clear( void ) { - Common::List list; - TS_ASSERT( list.empty() ); - list.push_back(17); - list.push_back(33); - TS_ASSERT( !list.empty() ); - list.clear(); - TS_ASSERT( list.empty() ); + Common::List container; + TS_ASSERT( container.empty() ); + container.push_back(17); + container.push_back(33); + TS_ASSERT( !container.empty() ); + container.clear(); + TS_ASSERT( container.empty() ); + } + + void test_iterator_begin_end( void ) + { + Common::List container; + + // The container is initially empty ... + TS_ASSERT( container.begin() == container.end() ); + + // ... then non-empty ... + container.push_back(33); + TS_ASSERT( container.begin() != container.end() ); + + // ... and again empty. + container.clear(); + TS_ASSERT( container.begin() == container.end() ); } void test_iterator( void ) { - Common::List list; + Common::List container; Common::List::iterator iter; - // Fill the list with some random data - list.push_back(17); - list.push_back(33); - list.push_back(-11); + // Fill the container with some random data + container.push_back(17); + container.push_back(33); + container.push_back(-11); - // Iterate over the list and verify that we encounter the elements in + // Iterate over the container and verify that we encounter the elements in // the order we expect them to be. - iter = list.begin(); + iter = container.begin(); TS_ASSERT( *iter == 17 ); ++iter; - TS_ASSERT( iter != list.end() ); + TS_ASSERT( iter != container.end() ); TS_ASSERT( *iter == 33 ); ++iter; - TS_ASSERT( iter != list.end() ); + TS_ASSERT( iter != container.end() ); // Also test the postinc TS_ASSERT( *iter == -11 ); iter++; - TS_ASSERT( iter == list.end() ); + TS_ASSERT( iter == container.end() ); } - void test_insert( void ) { - Common::List list; + Common::List container; Common::List::iterator iter; - // Fill the list with some random data - list.push_back(17); - list.push_back(33); - list.push_back(-11); + // Fill the container with some random data + container.push_back(17); + container.push_back(33); + container.push_back(-11); // Iterate to after the second element - iter = list.begin(); + iter = container.begin(); ++iter; ++iter; // Now insert some values here - list.insert(iter, 42); - list.insert(iter, 43); + container.insert(iter, 42); + container.insert(iter, 43); - iter = list.begin(); + iter = container.begin(); TS_ASSERT( *iter == 17 ); ++iter; - TS_ASSERT( iter != list.end() ); + TS_ASSERT( iter != container.end() ); TS_ASSERT( *iter == 33 ); ++iter; - TS_ASSERT( iter != list.end() ); + TS_ASSERT( iter != container.end() ); TS_ASSERT( *iter == 42 ); ++iter; - TS_ASSERT( iter != list.end() ); + TS_ASSERT( iter != container.end() ); TS_ASSERT( *iter == 43 ); ++iter; - TS_ASSERT( iter != list.end() ); + TS_ASSERT( iter != container.end() ); TS_ASSERT( *iter == -11 ); ++iter; - TS_ASSERT( iter == list.end() ); + TS_ASSERT( iter == container.end() ); } }; 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 map; - TS_ASSERT( map.empty() ); - map[0] = 17; - map[1] = 33; - TS_ASSERT( !map.empty() ); - map.clear(); - TS_ASSERT( map.empty() ); + Common::Map 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 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 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 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 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 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 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 container; + Common::Map::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, ... }; -- cgit v1.2.3