e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz#include <cxxtest/TestSuite.h>
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz#include <stdarg.h>
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz#include "util/list-container.h"
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz#define ARRAY_RANGE(array) (array), (array)+sizeof((array))/sizeof((array)[0])
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz
c0092c87b724182672defa4f5f75a82c27f017dcjoncruzstatic bool check_values(Inkscape::Util::ListContainer<int> const &c, unsigned n_values, ...) {
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz bool ret = true;
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz va_list args;
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz va_start(args, n_values);
c0092c87b724182672defa4f5f75a82c27f017dcjoncruz Inkscape::Util::ListContainer<int>::const_iterator iter(c.begin());
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz while ( n_values && iter != c.end() ) {
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz int const value = va_arg(args, int);
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz if ( value != *iter ) {
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz ret = false;
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz }
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz if ( n_values == 1 && &c.back() != &*iter ) {
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz ret = false;
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz }
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz n_values--;
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz ++iter;
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz }
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz va_end(args);
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz return ret && n_values == 0 && iter == c.end();
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz}
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruzclass ListContainerTest : public CxxTest::TestSuite {
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruzpublic:
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz ListContainerTest()
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz {
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz Inkscape::GC::init();
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz }
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz virtual ~ListContainerTest() {}
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz
9eb886f0efdd076022ef171278e8475a580a1e91jaspervdg// createSuite and destroySuite get us per-suite setup and teardown
9eb886f0efdd076022ef171278e8475a580a1e91jaspervdg// without us having to worry about static initialization order, etc.
9eb886f0efdd076022ef171278e8475a580a1e91jaspervdg static ListContainerTest *createSuite() { return new ListContainerTest(); }
9eb886f0efdd076022ef171278e8475a580a1e91jaspervdg static void destroySuite( ListContainerTest *suite ) { delete suite; }
9eb886f0efdd076022ef171278e8475a580a1e91jaspervdg
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz void testRangeConstructor()
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz {
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz int const values[]={1,2,3,4};
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz int const * const values_end=values+4;
c0092c87b724182672defa4f5f75a82c27f017dcjoncruz Inkscape::Util::ListContainer<int> container(values, values_end);
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz
c0092c87b724182672defa4f5f75a82c27f017dcjoncruz Inkscape::Util::ListContainer<int>::iterator container_iter=container.begin();
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz int const * values_iter=values;
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz while ( values_iter != values_end && container_iter != container.end() ) {
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz TS_ASSERT_EQUALS(*values_iter , *container_iter);
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz ++values_iter;
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz ++container_iter;
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz }
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz TS_ASSERT_EQUALS(values_iter , values_end);
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz TS_ASSERT_EQUALS(container_iter , container.end());
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz }
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz void testEqualityTests()
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz {
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz int const a[] = { 1, 2, 3, 4 };
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz int const b[] = { 1, 2, 3, 4 };
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz int const c[] = { 1, 2, 3 };
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz int const d[] = { 1, 2, 3, 5 };
c0092c87b724182672defa4f5f75a82c27f017dcjoncruz Inkscape::Util::ListContainer<int> c_a(ARRAY_RANGE(a));
c0092c87b724182672defa4f5f75a82c27f017dcjoncruz Inkscape::Util::ListContainer<int> c_b(ARRAY_RANGE(b));
c0092c87b724182672defa4f5f75a82c27f017dcjoncruz Inkscape::Util::ListContainer<int> c_c(ARRAY_RANGE(c));
c0092c87b724182672defa4f5f75a82c27f017dcjoncruz Inkscape::Util::ListContainer<int> c_d(ARRAY_RANGE(d));
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz TS_ASSERT(c_a == c_b);
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz TS_ASSERT(!( c_a != c_b ));
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz TS_ASSERT(!( c_a == c_c ));
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz TS_ASSERT(c_a != c_c);
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz TS_ASSERT(!( c_a == c_d ));
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz TS_ASSERT(c_a != c_d);
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz }
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz void testLessThan()
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz {
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz int const a[] = { 1, 2, 3, 4 };
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz int const b[] = { 1, 2, 2, 4 };
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz int const c[] = { 1, 2, 4, 4 };
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz int const d[] = { 1, 2, 3 };
c0092c87b724182672defa4f5f75a82c27f017dcjoncruz Inkscape::Util::ListContainer<int> c_a(ARRAY_RANGE(a));
c0092c87b724182672defa4f5f75a82c27f017dcjoncruz Inkscape::Util::ListContainer<int> c_b(ARRAY_RANGE(b));
c0092c87b724182672defa4f5f75a82c27f017dcjoncruz Inkscape::Util::ListContainer<int> c_c(ARRAY_RANGE(c));
c0092c87b724182672defa4f5f75a82c27f017dcjoncruz Inkscape::Util::ListContainer<int> c_d(ARRAY_RANGE(d));
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz TS_ASSERT(c_a >= c_b);
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz TS_ASSERT(!( c_a < c_b ));
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz TS_ASSERT(!( c_a >= c_c ));
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz TS_ASSERT(c_a < c_c);
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz TS_ASSERT(!( c_a < c_d ));
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz TS_ASSERT(c_a >= c_d);
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz TS_ASSERT(c_d < c_a);
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz }
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz void testAssignmentOperator()
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz {
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz int const a[] = { 1, 2, 3, 4 };
c0092c87b724182672defa4f5f75a82c27f017dcjoncruz Inkscape::Util::ListContainer<int> c_a(ARRAY_RANGE(a));
c0092c87b724182672defa4f5f75a82c27f017dcjoncruz Inkscape::Util::ListContainer<int> c_c;
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz TS_ASSERT(c_a != c_c);
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz c_c = c_a;
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz TS_ASSERT(c_a == c_c);
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz c_c = c_a;
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz TS_ASSERT(c_a == c_c);
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz }
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz void testFillConstructor()
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz {
c0092c87b724182672defa4f5f75a82c27f017dcjoncruz Inkscape::Util::ListContainer<int> filled((std::size_t)3, 2);
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz TS_ASSERT(check_values(filled, 3, 2, 2, 2));
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz }
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz void testContainerSize()
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz {
b75c8c079c27d43ecebd305ec1796d5ebd5b9bb9tweenk // max_size() and size() return ListContainer<>::size_type which is unsigned int
c0092c87b724182672defa4f5f75a82c27f017dcjoncruz Inkscape::Util::ListContainer<int> empty;
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz TS_ASSERT(empty.empty());
b75c8c079c27d43ecebd305ec1796d5ebd5b9bb9tweenk TS_ASSERT_EQUALS(empty.size(), 0u);
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz int const a[] = { 1, 2, 3 };
c0092c87b724182672defa4f5f75a82c27f017dcjoncruz Inkscape::Util::ListContainer<int> c_a(ARRAY_RANGE(a));
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz TS_ASSERT(!c_a.empty());
b75c8c079c27d43ecebd305ec1796d5ebd5b9bb9tweenk TS_ASSERT_EQUALS(c_a.size(), 3u);
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz
b75c8c079c27d43ecebd305ec1796d5ebd5b9bb9tweenk TS_ASSERT_LESS_THAN(0u, empty.max_size());
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz }
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz void testAppending()
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz {
c0092c87b724182672defa4f5f75a82c27f017dcjoncruz Inkscape::Util::ListContainer<int> c;
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz c.push_back(1);
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz TS_ASSERT(check_values(c, 1, 1));
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz c.push_back(2);
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz TS_ASSERT(check_values(c, 2, 1, 2));
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz c.push_back(3);
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz TS_ASSERT(check_values(c, 3, 1, 2, 3));
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz }
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz void testBulkAppending()
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz {
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz int const a[] = { 1, 2, 3, 4 };
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz int const b[] = { 5, 6, 7 };
c0092c87b724182672defa4f5f75a82c27f017dcjoncruz Inkscape::Util::ListContainer<int> c_a(ARRAY_RANGE(a));
c0092c87b724182672defa4f5f75a82c27f017dcjoncruz Inkscape::Util::ListContainer<int> c_b(ARRAY_RANGE(b));
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz c_a.insert(c_a.end(), c_b.begin(), c_b.end());
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz TS_ASSERT(check_values(c_a, 7, 1, 2, 3, 4, 5, 6, 7));
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz }
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz void testPrepending()
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz {
c0092c87b724182672defa4f5f75a82c27f017dcjoncruz Inkscape::Util::ListContainer<int> c;
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz c.push_front(1);
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz TS_ASSERT(check_values(c, 1, 1));
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz c.push_front(2);
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz TS_ASSERT(check_values(c, 2, 2, 1));
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz c.push_front(3);
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz TS_ASSERT(check_values(c, 3, 3, 2, 1));
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz }
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz void testSingleValueInsertion()
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz {
c0092c87b724182672defa4f5f75a82c27f017dcjoncruz Inkscape::Util::ListContainer<int> c;
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz c.insert(c.begin(), 1);
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz TS_ASSERT(check_values(c, 1, 1));
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz c.insert(c.end(), 2);
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz TS_ASSERT(check_values(c, 2, 1, 2));
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz c.insert(c.begin(), 3);
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz TS_ASSERT(check_values(c, 3, 3, 1, 2));
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz
c0092c87b724182672defa4f5f75a82c27f017dcjoncruz Inkscape::Util::ListContainer<int>::iterator pos=c.begin();
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz ++pos;
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz c.insert(pos, 4);
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz TS_ASSERT(check_values(c, 4, 3, 4, 1, 2));
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz }
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz void testSingleValueErasure()
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz {
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz int const values[] = { 1, 2, 3, 4 };
c0092c87b724182672defa4f5f75a82c27f017dcjoncruz Inkscape::Util::ListContainer<int> c(ARRAY_RANGE(values));
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz c.erase(c.begin());
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz TS_ASSERT(check_values(c, 3, 2, 3, 4));
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz
c0092c87b724182672defa4f5f75a82c27f017dcjoncruz Inkscape::Util::ListContainer<int>::iterator pos=c.begin();
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz ++pos;
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz c.erase(pos);
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz TS_ASSERT(check_values(c, 2, 2, 4));
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz pos=c.begin();
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz ++pos;
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz c.erase(pos);
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz TS_ASSERT(check_values(c, 1, 2));
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz c.erase(c.begin());
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz TS_ASSERT(check_values(c, 0));
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz }
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz void testPopFront()
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz {
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz int const full_ary[] = { 1, 2, 3 };
c0092c87b724182672defa4f5f75a82c27f017dcjoncruz Inkscape::Util::ListContainer<int> t(ARRAY_RANGE(full_ary));
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz TS_ASSERT(check_values(t, 3, 1, 2, 3));
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz TS_ASSERT_EQUALS(t.back() , 3);
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz t.pop_front();
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz TS_ASSERT(check_values(t, 2, 2, 3));
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz TS_ASSERT_EQUALS(t.back() , 3);
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz t.push_back(23);
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz TS_ASSERT(check_values(t, 3, 2, 3, 23));
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz TS_ASSERT_EQUALS(t.back() , 23);
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz t.pop_front();
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz TS_ASSERT(check_values(t, 2, 3, 23));
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz TS_ASSERT_EQUALS(t.back() , 23);
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz t.pop_front();
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz TS_ASSERT(check_values(t, 1, 23));
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz TS_ASSERT_EQUALS(t.back() , 23);
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz t.pop_front();
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz TS_ASSERT(check_values(t, 0));
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz t.push_back(42);
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz TS_ASSERT(check_values(t, 1, 42));
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz TS_ASSERT_EQUALS(t.back() , 42);
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz }
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz void testEraseAfter()
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz {
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz int const full_ary[] = { 1, 2, 3, 4 };
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz int const exp_ary[] = { 1, 3, 4 };
c0092c87b724182672defa4f5f75a82c27f017dcjoncruz Inkscape::Util::ListContainer<int> full_list(ARRAY_RANGE(full_ary));
c0092c87b724182672defa4f5f75a82c27f017dcjoncruz Inkscape::Util::ListContainer<int> exp_list(ARRAY_RANGE(exp_ary));
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz TS_ASSERT(full_list != exp_list);
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz full_list.erase_after(full_list.begin());
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz TS_ASSERT(full_list == exp_list);
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz }
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz};
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz/*
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz Local Variables:
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz mode:c++
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz c-file-style:"stroustrup"
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz indent-tabs-mode:nil
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz fill-column:99
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz End:
e69f7d715a3db7f1fff1c8334714c8fab63852abjoncruz*/
a4030d5ca449e7e384bc699cd249ee704faaeab0Chris Morgan// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :