void test_insert_remove(void) { TArray<int> arr; arr.initialize(2); CPPUNIT_ASSERT_EQUAL((hyu32)0, arr.size()); HMD_ASSERT_HALT(arr.insert(1)); arr.insert(0) = 10; CPPUNIT_ASSERT_EQUAL((hyu32)1, arr.size()); CPPUNIT_ASSERT_EQUAL(10, arr[0]); arr.insert(0) = 20; CPPUNIT_ASSERT_EQUAL((hyu32)2, arr.size()); CPPUNIT_ASSERT_EQUAL(20, arr[0]); CPPUNIT_ASSERT_EQUAL(10, arr[1]); arr.insert(1) = 30; CPPUNIT_ASSERT_EQUAL((hyu32)3, arr.size()); CPPUNIT_ASSERT_EQUAL(20, arr[0]); CPPUNIT_ASSERT_EQUAL(30, arr[1]); CPPUNIT_ASSERT_EQUAL(10, arr[2]); arr.insert(3) = 40; CPPUNIT_ASSERT_EQUAL((hyu32)4, arr.size()); CPPUNIT_ASSERT_EQUAL(20, arr[0]); CPPUNIT_ASSERT_EQUAL(30, arr[1]); CPPUNIT_ASSERT_EQUAL(10, arr[2]); CPPUNIT_ASSERT_EQUAL(40, arr[3]); arr.insert(-1) = 50; CPPUNIT_ASSERT_EQUAL((hyu32)5, arr.size()); CPPUNIT_ASSERT_EQUAL(20, arr[0]); CPPUNIT_ASSERT_EQUAL(30, arr[1]); CPPUNIT_ASSERT_EQUAL(10, arr[2]); CPPUNIT_ASSERT_EQUAL(50, arr[3]); CPPUNIT_ASSERT_EQUAL(40, arr[4]); arr.remove(2); CPPUNIT_ASSERT_EQUAL((hyu32)4, arr.size()); CPPUNIT_ASSERT_EQUAL(20, arr[0]); CPPUNIT_ASSERT_EQUAL(30, arr[1]); CPPUNIT_ASSERT_EQUAL(50, arr[2]); CPPUNIT_ASSERT_EQUAL(40, arr[3]); arr.remove(-3); CPPUNIT_ASSERT_EQUAL((hyu32)3, arr.size()); CPPUNIT_ASSERT_EQUAL(20, arr[0]); CPPUNIT_ASSERT_EQUAL(50, arr[1]); CPPUNIT_ASSERT_EQUAL(40, arr[2]); HMD_ASSERT_HALT(arr.remove(3)); HMD_ASSERT_HALT(arr.remove(-4)); int* p = arr.nthAddr(3); int* q = arr.addSpaces(2); CPPUNIT_ASSERT_EQUAL((hyu32)5, arr.size()); CPPUNIT_ASSERT_EQUAL(p, q); }
TEST_F( TArrayTest, removeItTest) { TArray<float> arrayInstance; arrayInstance.add( 1.0f ); EXPECT_EQ( 1, arrayInstance.size() ); TArray<float>::Iterator it = arrayInstance.find( 1.0f ); EXPECT_NE( arrayInstance.end(), it ); arrayInstance.remove( it ); EXPECT_EQ( 0, arrayInstance.size() ); }
TEST_F( TArrayTest, removeTest) { TArray<float> arrayInstance; createArray( ArrayData, ArraySize, arrayInstance ); std::stringstream stream; static const size_t Size = 3; arrayInstance.remove( 1 ); EXPECT_EQ( Size, arrayInstance.size() ); float expectedResult[ Size ] = { 0.0f, 2.0f, 3.0f }; bool equal = true; for ( size_t i=0; i<Size; ++i ) { if ( arrayInstance[ i ] != expectedResult[ i ] ) { stream << "error in index " << i << std::endl; equal = false; break; } } EXPECT_TRUE( equal ) << stream.str(); }