diff options
author | Alan Conway <aconway@apache.org> | 2008-04-21 16:36:08 +0000 |
---|---|---|
committer | Alan Conway <aconway@apache.org> | 2008-04-21 16:36:08 +0000 |
commit | a60ccdc6df3acd461c7e33c983d649563e4fbdc7 (patch) | |
tree | e5058f48d40958a0c4ecdaecfc675a875ea3f21d /cpp/src/tests/InlineVector.cpp | |
parent | 61647950e1c4e6b1efb0a1b3f3b220783680103f (diff) | |
download | qpid-python-a60ccdc6df3acd461c7e33c983d649563e4fbdc7.tar.gz |
src/qpid/RangeSet.h: generic set implementation using ranges.
- no heap allocation for simple sets (<= 3 ranges)
- binary searches for o(log(n)) performance in complex sets
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@650198 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/tests/InlineVector.cpp')
-rw-r--r-- | cpp/src/tests/InlineVector.cpp | 56 |
1 files changed, 43 insertions, 13 deletions
diff --git a/cpp/src/tests/InlineVector.cpp b/cpp/src/tests/InlineVector.cpp index 5f1a08759f..7add920cb2 100644 --- a/cpp/src/tests/InlineVector.cpp +++ b/cpp/src/tests/InlineVector.cpp @@ -66,24 +66,54 @@ QPID_AUTO_TEST_CASE(testCtor) { } QPID_AUTO_TEST_CASE(testInsert) { - Vec v; - v.push_back(1); - BOOST_CHECK_EQUAL(v.size(), 1u); - BOOST_CHECK_EQUAL(v.back(), 1); - BOOST_CHECK(isInline(v)); + { + Vec v; + v.push_back(1); + BOOST_CHECK_EQUAL(v.size(), 1u); + BOOST_CHECK_EQUAL(v.back(), 1); + BOOST_CHECK(isInline(v)); - v.insert(v.begin(), 2); - BOOST_CHECK_EQUAL(v.size(), 2u); - BOOST_CHECK_EQUAL(v.back(), 1); - BOOST_CHECK(isInline(v)); + v.insert(v.begin(), 2); + BOOST_CHECK_EQUAL(v.size(), 2u); + BOOST_CHECK_EQUAL(v.back(), 1); + BOOST_CHECK(isInline(v)); - v.push_back(3); - BOOST_CHECK(isInline(v)); + v.push_back(3); + BOOST_CHECK(isInline(v)); - v.push_back(4); - BOOST_CHECK_EQUAL(v.size(), 4u); + v.push_back(4); + + BOOST_CHECK(!isInline(v)); + } + { + Vec v(3,42); + v.insert(v.begin(), 9); + BOOST_CHECK_EQUAL(v.size(), 4u); + BOOST_CHECK(!isInline(v)); + } + { + Vec v(3,42); + v.insert(v.begin()+1, 9); + BOOST_CHECK(!isInline(v)); + BOOST_CHECK_EQUAL(v.size(), 4u); + } +} + +QPID_AUTO_TEST_CASE(testAssign) { + Vec v(3,42); + Vec u; + u = v; + BOOST_CHECK(isInline(u)); + u.push_back(4); + BOOST_CHECK(!isInline(u)); + v = u; BOOST_CHECK(!isInline(v)); } +QPID_AUTO_TEST_CASE(testResize) { + Vec v; + v.resize(5); + BOOST_CHECK(!isInline(v)); +} QPID_AUTO_TEST_SUITE_END() |