aboutsummaryrefslogtreecommitdiff
path: root/test/common
diff options
context:
space:
mode:
authorMax Horn2006-03-31 07:20:16 +0000
committerMax Horn2006-03-31 07:20:16 +0000
commit111c0d1ddd82fbc062089ba14878c3950899f7fd (patch)
tree3bba92dbaa4d5d943ea0ebd3cf029be8657b36c0 /test/common
parentc26b762f481123b3b6b6e644fd8d1d43f543815f (diff)
downloadscummvm-rg350-111c0d1ddd82fbc062089ba14878c3950899f7fd.tar.gz
scummvm-rg350-111c0d1ddd82fbc062089ba14878c3950899f7fd.tar.bz2
scummvm-rg350-111c0d1ddd82fbc062089ba14878c3950899f7fd.zip
Some new & extended test cases
svn-id: r21509
Diffstat (limited to 'test/common')
-rw-r--r--test/common/hashmap.h77
-rw-r--r--test/common/list.h79
-rw-r--r--test/common/map.h111
3 files changed, 191 insertions, 76 deletions
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<int, int> map;
- TS_ASSERT( map.empty() );
- map[0] = 17;
- map[1] = 33;
- TS_ASSERT( !map.empty() );
- map.clear();
- TS_ASSERT( map.empty() );
+ Common::HashMap<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::HashMap<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::HashMap<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::HashMap<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::HashMap<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::HashMap<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_iterator_begin_end( void )
+ {
+ Common::HashMap<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() );
}
// 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<int> 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<int> 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<int> 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<int> list;
+ Common::List<int> container;
Common::List<int>::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<int> list;
+ Common::List<int> container;
Common::List<int>::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<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, ...
};