// // ArrayTest.cpp // // Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH. // and Contributors. // // SPDX-License-Identifier: BSL-1.0 // #include "ArrayTest.h" #include "CppUnit/TestCaller.h" #include "CppUnit/TestSuite.h" #include "Poco/Array.h" #include #include #include ArrayTest::ArrayTest(const std::string& name): CppUnit::TestCase(name) { } ArrayTest::~ArrayTest() { } struct Element { int _data; }; void ArrayTest::testConstruction() { // fundamental type typedef Poco::Array FloatArray; FloatArray a = { { 42.f } }; for (unsigned i=1; i DArray; typedef Poco::Array IArray; IArray ia = {{1, 2, 3, 4, 5, 6 }}; DArray da; da = ia; da.assign(42); // user-defined type typedef Poco::Array ElementArray; ElementArray g; for (unsigned i=0; i Array; Array a = { { 1 } }; // use some common STL container operations assertTrue (a.size() == SIZE); assertTrue (a.max_size() == SIZE); assertTrue (a.empty() == false); assertTrue (a.front() == a[0]); assertTrue (a.back() == a[a.size()-1]); //assertTrue (a.data() == &a[0]); // assign a.assign(100); for(int i = 0; i Array; Array a = {{1, 2}}; assertTrue (a[0] == 1); assertTrue (a[1] == 2); typedef std::vector ArrayVec; ArrayVec container; container.push_back(a); container.push_back(a); assertTrue (container[0][0] == 1); assertTrue (container[0][1] == 2); assertTrue (container[1][0] == 1); assertTrue (container[1][1] == 2); } void ArrayTest::testIterator() { // create array of four seasons Poco::Array seasons = { { "spring", "summer", "autumn", "winter" } }; // copy and change order Poco::Array org = seasons; for (size_t i=seasons.size()-1; i>0; --i) { swap(seasons.at(i),seasons.at((i+1)%seasons.size())); } // try swap() swap(seasons,org); // try reverse iterators for (Poco::Array::reverse_iterator pos =seasons.rbegin(); pos IArray; IArray a = { { 1, 2, 3, 4, 5 } }; IArray b(a); // modify elements directly for (unsigned i=0; i()); // operation for (unsigned i=0; i IArray; typedef Poco::Array MultiArray; MultiArray a; a[0][0] = 1; a[0][1] = 2; a[1][0] = 3; a[1][1] = 4; MultiArray b = a; assertTrue (b[0][0] == 1); assertTrue (b[0][1] == 2); assertTrue (b[1][0] == 3); assertTrue (b[1][1] == 4); } void ArrayTest::setUp() { } void ArrayTest::tearDown() { } CppUnit::Test* ArrayTest::suite() { CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("ArrayTest"); CppUnit_addTest(pSuite, ArrayTest, testConstruction); CppUnit_addTest(pSuite, ArrayTest, testOperations); CppUnit_addTest(pSuite, ArrayTest, testContainer); CppUnit_addTest(pSuite, ArrayTest, testIterator); CppUnit_addTest(pSuite, ArrayTest, testAlgorithm); CppUnit_addTest(pSuite, ArrayTest, testMultiLevelArray); return pSuite; }