Merge pull request #422 from TsudaKageyu/detach

Added some missing detach()s to List<T>, ByteVector and String.
This commit is contained in:
Lukáš Lalinský
2014-08-20 10:09:08 +02:00
7 changed files with 82 additions and 12 deletions

View File

@ -41,6 +41,7 @@ class TestByteVector : public CppUnit::TestFixture
CPPUNIT_TEST(testToHex);
CPPUNIT_TEST(testNumericCoversion);
CPPUNIT_TEST(testReplace);
CPPUNIT_TEST(testIterator);
CPPUNIT_TEST_SUITE_END();
public:
@ -290,6 +291,36 @@ public:
}
}
void testIterator()
{
ByteVector v1("taglib");
ByteVector v2 = v1;
ByteVector::Iterator it1 = v1.begin();
ByteVector::Iterator it2 = v2.begin();
CPPUNIT_ASSERT_EQUAL('t', *it1);
CPPUNIT_ASSERT_EQUAL('t', *it2);
std::advance(it1, 4);
std::advance(it2, 4);
*it2 = 'I';
CPPUNIT_ASSERT_EQUAL('i', *it1);
CPPUNIT_ASSERT_EQUAL('I', *it2);
ByteVector::ReverseIterator it3 = v1.rbegin();
ByteVector::ReverseIterator it4 = v2.rbegin();
CPPUNIT_ASSERT_EQUAL('b', *it3);
CPPUNIT_ASSERT_EQUAL('b', *it4);
std::advance(it3, 4);
std::advance(it4, 4);
*it4 = 'A';
CPPUNIT_ASSERT_EQUAL('a', *it3);
CPPUNIT_ASSERT_EQUAL('A', *it4);
}
};
CPPUNIT_TEST_SUITE_REGISTRATION(TestByteVector);

View File

@ -51,8 +51,13 @@ public:
l3.append(3);
l3.append(4);
CPPUNIT_ASSERT(l1 == l3);
List<int> l4 = l1;
List<int>::Iterator it = l4.find(3);
*it = 33;
CPPUNIT_ASSERT_EQUAL(l1[2], 3);
CPPUNIT_ASSERT_EQUAL(l4[2], 33);
}
};
CPPUNIT_TEST_SUITE_REGISTRATION(TestList);

View File

@ -15,11 +15,21 @@ public:
void testInsert()
{
Map<String, int> m;
m.insert("foo", 3);
CPPUNIT_ASSERT_EQUAL(3, m["foo"]);
m.insert("foo", 7);
CPPUNIT_ASSERT_EQUAL(7, m["foo"]);
Map<String, int> m1;
m1.insert("foo", 3);
CPPUNIT_ASSERT_EQUAL(3, m1["foo"]);
m1.insert("foo", 7);
CPPUNIT_ASSERT_EQUAL(7, m1["foo"]);
m1.insert("alice", 5);
m1.insert("bob", 9);
m1.insert("carol", 11);
Map<String, int> m2 = m1;
Map<String, int>::Iterator it = m2.find("bob");
(*it).second = 99;
CPPUNIT_ASSERT_EQUAL(m1["bob"], 9);
CPPUNIT_ASSERT_EQUAL(m2["bob"], 99);
}
};

View File

@ -44,6 +44,7 @@ class TestString : public CppUnit::TestFixture
CPPUNIT_TEST(testSubstr);
CPPUNIT_TEST(testNewline);
CPPUNIT_TEST(testEncode);
CPPUNIT_TEST(testIterator);
CPPUNIT_TEST_SUITE_END();
public:
@ -288,6 +289,24 @@ public:
CPPUNIT_ASSERT(empty7.empty());
}
void testIterator()
{
String s1 = "taglib string";
String s2 = s1;
String::Iterator it1 = s1.begin();
String::Iterator it2 = s2.begin();
CPPUNIT_ASSERT_EQUAL(L't', *it1);
CPPUNIT_ASSERT_EQUAL(L't', *it2);
std::advance(it1, 4);
std::advance(it2, 4);
*it2 = L'I';
CPPUNIT_ASSERT_EQUAL(L'i', *it1);
CPPUNIT_ASSERT_EQUAL(L'I', *it2);
}
};
CPPUNIT_TEST_SUITE_REGISTRATION(TestString);