From 7d54f0aaaf1854e421ee0e8eac3292c7bc0db284 Mon Sep 17 00:00:00 2001 From: Colin Snover Date: Wed, 3 Feb 2016 13:51:16 -0600 Subject: COMMON: Add methods for inserting and erasing with iterators This provides improved feature parity to Common::List and is used in SCI32 engine. --- test/common/array.h | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) (limited to 'test/common') diff --git a/test/common/array.h b/test/common/array.h index f0027ec201..64354abc00 100644 --- a/test/common/array.h +++ b/test/common/array.h @@ -44,6 +44,48 @@ class ArrayTestSuite : public CxxTest::TestSuite TS_ASSERT_EQUALS(iter, array.end()); } + void test_erase_iterator() { + Common::Array array; + Common::Array::iterator iter; + + // Fill the array with some random data + array.push_back(17); + array.push_back(33); + array.push_back(-11); + + iter = array.begin(); + ++iter; + + iter = array.erase(iter); + TS_ASSERT_DIFFERS(iter, array.end()); + TS_ASSERT_EQUALS(*iter, -11); + TS_ASSERT_EQUALS(array.size(), (unsigned int)2); + TS_ASSERT_EQUALS(array[0], 17); + TS_ASSERT_EQUALS(array[1], -11); + } + + void test_insert_iterator() { + Common::Array array; + Common::Array::iterator iter; + + // Fill the array with some random data + array.push_back(17); + array.push_back(33); + array.push_back(-11); + + iter = array.begin(); + ++iter; + + array.insert(iter, 99); + + TS_ASSERT_EQUALS(*iter, 99); + TS_ASSERT_EQUALS(array.size(), (unsigned int)4); + TS_ASSERT_EQUALS(array[0], 17); + TS_ASSERT_EQUALS(array[1], 99); + TS_ASSERT_EQUALS(array[2], 33); + TS_ASSERT_EQUALS(array[3], -11); + } + void test_direct_access() { Common::Array array; -- cgit v1.2.3