mirror of
https://github.com/ETLCPP/etl.git
synced 2026-04-30 19:09:10 +08:00
Updated unit tests
This commit is contained in:
parent
c6cda42bf8
commit
84769d1ae6
263
test/test_bloom_filter.cpp
Normal file
263
test/test_bloom_filter.cpp
Normal file
@ -0,0 +1,263 @@
|
||||
/******************************************************************************
|
||||
The MIT License(MIT)
|
||||
|
||||
Embedded Template Library.
|
||||
|
||||
Copyright(c) 2014 jwellbelove
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files(the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and / or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions :
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
******************************************************************************/
|
||||
|
||||
#include <UnitTest++/UnitTest++.h>
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <vector>
|
||||
|
||||
#include "../bloom_filter.h"
|
||||
|
||||
#include "../fnv_1.h"
|
||||
#include "../crc16.h"
|
||||
#include "../crc16_ccitt.h"
|
||||
#include "../crc32.h"
|
||||
|
||||
struct hash1_t
|
||||
{
|
||||
typedef const char* argument_type;
|
||||
|
||||
size_t operator ()(argument_type text) const
|
||||
{
|
||||
return etl::fnv_1a_32<>(text, text + strlen(text));
|
||||
}
|
||||
};
|
||||
|
||||
struct hash2_t
|
||||
{
|
||||
typedef const char* argument_type;
|
||||
|
||||
size_t operator ()(argument_type text) const
|
||||
{
|
||||
return etl::crc32<>(text, text + strlen(text));
|
||||
}
|
||||
};
|
||||
|
||||
struct hash3_t
|
||||
{
|
||||
typedef const char* argument_type;
|
||||
|
||||
size_t operator ()(argument_type text) const
|
||||
{
|
||||
return etl::crc16<>(text, text + strlen(text)) | (etl::crc16_ccitt<>(text, text + strlen(text)) << 16);
|
||||
}
|
||||
};
|
||||
|
||||
std::vector<const char*> exist_text = { "The", "rain", "in", "Spain", "falls", "mainly", "on", "the", "plain" };
|
||||
std::vector<const char*> not_exist_text = { "My", "hovercraft", "is", "full", "of", "eels" };
|
||||
|
||||
namespace
|
||||
{
|
||||
SUITE(test_bloom_filter)
|
||||
{
|
||||
//*************************************************************************
|
||||
TEST(test_bloom_filter1)
|
||||
{
|
||||
etl::bloom_filter<256, hash1_t> bloom;
|
||||
|
||||
for (size_t i = 0; i < exist_text.size(); ++i)
|
||||
{
|
||||
bloom.add(exist_text[i]);
|
||||
}
|
||||
|
||||
// Check for false negatives.
|
||||
bool all_exist = true;
|
||||
|
||||
for (size_t i = 0; i < exist_text.size(); ++i)
|
||||
{
|
||||
all_exist = all_exist && bloom.exists(exist_text[i]);
|
||||
}
|
||||
|
||||
CHECK(all_exist);
|
||||
|
||||
// Check for false positives. There should be none for this set.
|
||||
bool any_exist = false;
|
||||
|
||||
for (size_t i = 0; i < not_exist_text.size(); ++i)
|
||||
{
|
||||
any_exist = any_exist || bloom.exists(not_exist_text[i]);
|
||||
}
|
||||
|
||||
CHECK(!any_exist);
|
||||
|
||||
size_t usage = bloom.usage();
|
||||
CHECK(usage >= 0);
|
||||
CHECK(usage < 100);
|
||||
|
||||
size_t count = bloom.count();
|
||||
CHECK(count > 0);
|
||||
CHECK(count < 256);
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_bloom_filter2)
|
||||
{
|
||||
etl::bloom_filter<256, hash1_t, hash2_t> bloom;
|
||||
|
||||
for (size_t i = 0; i < exist_text.size(); ++i)
|
||||
{
|
||||
bloom.add(exist_text[i]);
|
||||
}
|
||||
|
||||
// Check for false negatives.
|
||||
bool all_exist = true;
|
||||
|
||||
for (size_t i = 0; i < exist_text.size(); ++i)
|
||||
{
|
||||
all_exist = all_exist && bloom.exists(exist_text[i]);
|
||||
}
|
||||
|
||||
CHECK(all_exist);
|
||||
|
||||
// Check for false positives. There should be none for this set.
|
||||
bool any_exist = false;
|
||||
|
||||
for (size_t i = 0; i < not_exist_text.size(); ++i)
|
||||
{
|
||||
any_exist = any_exist || bloom.exists(not_exist_text[i]);
|
||||
}
|
||||
|
||||
CHECK(!any_exist);
|
||||
|
||||
size_t usage = bloom.usage();
|
||||
CHECK(usage >= 0);
|
||||
CHECK(usage < 100);
|
||||
|
||||
size_t count = bloom.count();
|
||||
CHECK(count > 0);
|
||||
CHECK(count < 256);
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_bloom_filter3)
|
||||
{
|
||||
etl::bloom_filter<256, hash1_t, hash2_t, hash3_t> bloom;
|
||||
|
||||
for (size_t i = 0; i < exist_text.size(); ++i)
|
||||
{
|
||||
bloom.add(exist_text[i]);
|
||||
}
|
||||
|
||||
// Check for false negatives.
|
||||
bool all_exist = true;
|
||||
|
||||
for (size_t i = 0; i < exist_text.size(); ++i)
|
||||
{
|
||||
all_exist = all_exist && bloom.exists(exist_text[i]);
|
||||
}
|
||||
|
||||
CHECK(all_exist);
|
||||
|
||||
// Check for false positives. There should be none for this set.
|
||||
bool any_exist = false;
|
||||
|
||||
for (size_t i = 0; i < not_exist_text.size(); ++i)
|
||||
{
|
||||
any_exist = any_exist || bloom.exists(not_exist_text[i]);
|
||||
}
|
||||
|
||||
CHECK(!any_exist);
|
||||
|
||||
size_t usage = bloom.usage();
|
||||
CHECK(usage >= 0);
|
||||
CHECK(usage < 100);
|
||||
|
||||
size_t count = bloom.count();
|
||||
CHECK(count > 0);
|
||||
CHECK(count < 256);
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_width)
|
||||
{
|
||||
typedef etl::bloom_filter<256, hash1_t> Bloom;
|
||||
Bloom bloom;
|
||||
|
||||
CHECK_EQUAL(256, bloom.width());
|
||||
CHECK_EQUAL(256, Bloom::WIDTH);
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_count)
|
||||
{
|
||||
etl::bloom_filter<64, hash1_t> bloom;
|
||||
|
||||
CHECK(bloom.count() == 0);
|
||||
|
||||
for (size_t i = 0; i < exist_text.size(); ++i)
|
||||
{
|
||||
bloom.add(exist_text[i]);
|
||||
}
|
||||
|
||||
CHECK(bloom.count() > 0);
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_usage)
|
||||
{
|
||||
etl::bloom_filter<64, hash1_t> bloom;
|
||||
|
||||
CHECK(bloom.usage() == 0);
|
||||
|
||||
for (size_t i = 0; i < exist_text.size(); ++i)
|
||||
{
|
||||
bloom.add(exist_text[i]);
|
||||
}
|
||||
|
||||
CHECK(bloom.usage() > 0);
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_clear)
|
||||
{
|
||||
etl::bloom_filter<64, hash1_t> bloom;
|
||||
|
||||
for (size_t i = 0; i < exist_text.size(); ++i)
|
||||
{
|
||||
bloom.add(exist_text[i]);
|
||||
}
|
||||
|
||||
bloom.clear();
|
||||
|
||||
size_t usage = bloom.usage();
|
||||
size_t count = bloom.count();
|
||||
|
||||
CHECK_EQUAL(0, usage);
|
||||
CHECK_EQUAL(0, count);
|
||||
|
||||
// Check that we get no matches.
|
||||
bool any_exist = false;
|
||||
|
||||
for (size_t i = 0; i < not_exist_text.size(); ++i)
|
||||
{
|
||||
any_exist = any_exist || bloom.exists(not_exist_text[i]);
|
||||
}
|
||||
|
||||
CHECK(!any_exist);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@ -90,11 +90,14 @@ void test_algorithm()
|
||||
//*****************************************************************************
|
||||
// alignment
|
||||
//*****************************************************************************
|
||||
#if !defined(COMPILER_IAR)
|
||||
etl::align_at<char, 16> data5;
|
||||
etl::align_at<int, 16> data9;
|
||||
etl::align_at<char, 16> data10;
|
||||
|
||||
void test_alignment()
|
||||
{
|
||||
data9.value = 0;
|
||||
data10.value = 0;
|
||||
|
||||
etl::align_at<char, 1> data1;
|
||||
etl::align_at<char, 2> data2;
|
||||
etl::align_at<char, 4> data3;
|
||||
@ -105,7 +108,6 @@ void test_alignment()
|
||||
etl::align_as<char, int> data7;
|
||||
etl::align_as<char, double> data8;
|
||||
}
|
||||
#endif
|
||||
|
||||
//*****************************************************************************
|
||||
// array
|
||||
@ -230,4 +232,5 @@ void test_deque()
|
||||
//*****************************************************************************
|
||||
int main()
|
||||
{
|
||||
test_alignment();
|
||||
}
|
||||
|
||||
@ -27,12 +27,15 @@ SOFTWARE.
|
||||
#include <UnitTest++/UnitTest++.h>
|
||||
#include "ExtraCheckMacros.h"
|
||||
|
||||
#include "data.h"
|
||||
|
||||
#include "../forward_list.h"
|
||||
|
||||
#include <algorithm>
|
||||
#include <array>
|
||||
#include <forward_list>
|
||||
#include <vector>
|
||||
#include <string>
|
||||
|
||||
namespace
|
||||
{
|
||||
@ -40,15 +43,19 @@ namespace
|
||||
{
|
||||
const size_t SIZE = 10;
|
||||
|
||||
typedef etl::forward_list<int, SIZE> Data;
|
||||
typedef TestDataDC<std::string> ItemDC;
|
||||
typedef TestDataNDC<std::string> ItemNDC;
|
||||
|
||||
typedef std::forward_list<int> CompareData;
|
||||
typedef std::vector<int> InitialData;
|
||||
typedef etl::forward_list<ItemDC, SIZE> DataDC;
|
||||
typedef etl::forward_list<ItemNDC, SIZE> DataNDC;
|
||||
|
||||
InitialData unsorted_data;
|
||||
InitialData sorted_data;
|
||||
InitialData non_unique_data;
|
||||
InitialData small_data;
|
||||
typedef std::forward_list<ItemNDC> CompareDataNDC;
|
||||
typedef std::vector<ItemNDC> InitialDataNDC;
|
||||
|
||||
InitialDataNDC unsorted_data;
|
||||
InitialDataNDC sorted_data;
|
||||
InitialDataNDC non_unique_data;
|
||||
InitialDataNDC small_data;
|
||||
|
||||
bool are_equal;
|
||||
|
||||
@ -57,17 +64,17 @@ namespace
|
||||
{
|
||||
SetupFixture()
|
||||
{
|
||||
unsorted_data = { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8 };
|
||||
sorted_data = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
|
||||
non_unique_data = { 0, 0, 1, 1, 2, 3, 3, 3, 4, 5 };
|
||||
small_data = { 0, 1, 2, 3, 4, 5 };
|
||||
unsorted_data = { ItemNDC("1"), ItemNDC("0"), ItemNDC("3"), ItemNDC("2"), ItemNDC("5"), ItemNDC("4"), ItemNDC("7"), ItemNDC("6"), ItemNDC("9"), ItemNDC("8") };
|
||||
sorted_data = { ItemNDC("0"), ItemNDC("1"), ItemNDC("2"), ItemNDC("3"), ItemNDC("4"), ItemNDC("5"), ItemNDC("6"), ItemNDC("7"), ItemNDC("8"), ItemNDC("9") };
|
||||
non_unique_data = { ItemNDC("0"), ItemNDC("0"), ItemNDC("1"), ItemNDC("1"), ItemNDC("2"), ItemNDC("3"), ItemNDC("3"), ItemNDC("3"), ItemNDC("4"), ItemNDC("5") };
|
||||
small_data = { ItemNDC("0"), ItemNDC("1"), ItemNDC("2"), ItemNDC("3"), ItemNDC("4"), ItemNDC("5") };
|
||||
}
|
||||
};
|
||||
|
||||
//*************************************************************************
|
||||
TEST_FIXTURE(SetupFixture, test_default_constructor)
|
||||
{
|
||||
Data data;
|
||||
DataNDC data;
|
||||
|
||||
CHECK(data.empty());
|
||||
CHECK_EQUAL(data.max_size(), SIZE);
|
||||
@ -77,7 +84,7 @@ namespace
|
||||
TEST_FIXTURE(SetupFixture, test_constructor_size)
|
||||
{
|
||||
const size_t INITIAL_SIZE = 4;
|
||||
Data data(INITIAL_SIZE);
|
||||
DataDC data(INITIAL_SIZE);
|
||||
|
||||
CHECK(!data.empty());
|
||||
}
|
||||
@ -85,19 +92,18 @@ namespace
|
||||
//*************************************************************************
|
||||
TEST_FIXTURE(SetupFixture, test_constructor_size_excess)
|
||||
{
|
||||
CHECK_THROW(Data data(SIZE + 1), etl::forward_list_full);
|
||||
CHECK_THROW(DataDC data(SIZE + 1), etl::forward_list_full);
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST_FIXTURE(SetupFixture, test_constructor_size_value)
|
||||
{
|
||||
const size_t INITIAL_SIZE = 4;
|
||||
const int INITIAL_VALUE = 1;
|
||||
const ItemNDC INITIAL_VALUE("1");
|
||||
|
||||
std::array<int, INITIAL_SIZE> compare_data;
|
||||
compare_data.fill(INITIAL_VALUE);
|
||||
std::array<ItemNDC, INITIAL_SIZE> compare_data = { ItemNDC("1"), ItemNDC("1"), ItemNDC("1"), ItemNDC("1") };
|
||||
|
||||
Data data(INITIAL_SIZE, INITIAL_VALUE);
|
||||
DataNDC data(INITIAL_SIZE, INITIAL_VALUE);
|
||||
|
||||
CHECK(!data.empty());
|
||||
|
||||
@ -109,7 +115,7 @@ namespace
|
||||
//*************************************************************************
|
||||
TEST_FIXTURE(SetupFixture, test_constructor_range)
|
||||
{
|
||||
Data data(sorted_data.begin(), sorted_data.end());
|
||||
DataNDC data(sorted_data.begin(), sorted_data.end());
|
||||
|
||||
CHECK(!data.empty());
|
||||
}
|
||||
@ -117,9 +123,9 @@ namespace
|
||||
//*************************************************************************
|
||||
TEST_FIXTURE(SetupFixture, test_copy_constructor)
|
||||
{
|
||||
CompareData compare_data(sorted_data.begin(), sorted_data.end());
|
||||
Data data(sorted_data.begin(), sorted_data.end());
|
||||
Data other_data(data);
|
||||
CompareDataNDC compare_data(sorted_data.begin(), sorted_data.end());
|
||||
DataNDC data(sorted_data.begin(), sorted_data.end());
|
||||
DataNDC other_data(data);
|
||||
|
||||
CHECK(std::equal(data.begin(), data.end(), other_data.begin()));
|
||||
}
|
||||
@ -127,8 +133,8 @@ namespace
|
||||
//*************************************************************************
|
||||
TEST_FIXTURE(SetupFixture, test_iterator)
|
||||
{
|
||||
CompareData compare_data(sorted_data.begin(), sorted_data.end());
|
||||
Data data(compare_data.begin(), compare_data.end());
|
||||
CompareDataNDC compare_data(sorted_data.begin(), sorted_data.end());
|
||||
DataNDC data(compare_data.begin(), compare_data.end());
|
||||
|
||||
are_equal = std::equal(data.begin(), data.end(), compare_data.begin());
|
||||
|
||||
@ -138,8 +144,8 @@ namespace
|
||||
//*************************************************************************
|
||||
TEST_FIXTURE(SetupFixture, test_const_iterator)
|
||||
{
|
||||
CompareData compare_data(sorted_data.begin(), sorted_data.end());
|
||||
Data data(compare_data.begin(), compare_data.end());
|
||||
CompareDataNDC compare_data(sorted_data.begin(), sorted_data.end());
|
||||
DataNDC data(compare_data.begin(), compare_data.end());
|
||||
|
||||
are_equal = std::equal(data.cbegin(), data.cend(), compare_data.cbegin());
|
||||
|
||||
@ -151,12 +157,12 @@ namespace
|
||||
{
|
||||
const size_t INITIAL_SIZE = 4;
|
||||
const size_t NEW_SIZE = 8;
|
||||
const int VALUE = 1;
|
||||
const ItemNDC VALUE("1");
|
||||
|
||||
Data data(INITIAL_SIZE, VALUE);
|
||||
DataNDC data(INITIAL_SIZE, VALUE);
|
||||
data.resize(NEW_SIZE, VALUE);
|
||||
|
||||
CompareData compare_data(INITIAL_SIZE, VALUE);
|
||||
CompareDataNDC compare_data(INITIAL_SIZE, VALUE);
|
||||
compare_data.resize(NEW_SIZE, VALUE);
|
||||
|
||||
are_equal = std::equal(data.begin(), data.end(), compare_data.begin());
|
||||
@ -168,7 +174,7 @@ namespace
|
||||
TEST_FIXTURE(SetupFixture, test_resize_excess)
|
||||
{
|
||||
const size_t INITIAL_SIZE = 4;
|
||||
Data data(INITIAL_SIZE);
|
||||
DataDC data(INITIAL_SIZE);
|
||||
|
||||
CHECK_THROW(data.resize(data.max_size() + 1), etl::forward_list_full);
|
||||
}
|
||||
@ -176,7 +182,7 @@ namespace
|
||||
//*************************************************************************
|
||||
TEST_FIXTURE(SetupFixture, test_clear)
|
||||
{
|
||||
Data data(sorted_data.begin(), sorted_data.end());
|
||||
DataNDC data(sorted_data.begin(), sorted_data.end());
|
||||
data.clear();
|
||||
|
||||
CHECK(data.empty());
|
||||
@ -185,8 +191,8 @@ namespace
|
||||
//*************************************************************************
|
||||
TEST_FIXTURE(SetupFixture, test_assign_range)
|
||||
{
|
||||
CompareData compare_data(sorted_data.begin(), sorted_data.end());
|
||||
Data data;
|
||||
CompareDataNDC compare_data(sorted_data.begin(), sorted_data.end());
|
||||
DataNDC data;
|
||||
|
||||
// Do it twice. We should only get one copy.
|
||||
data.assign(compare_data.begin(), compare_data.end());
|
||||
@ -201,10 +207,10 @@ namespace
|
||||
TEST_FIXTURE(SetupFixture, test_assign_size_value)
|
||||
{
|
||||
const size_t INITIAL_SIZE = 4;
|
||||
const int VALUE = 1;
|
||||
const ItemNDC VALUE("1");
|
||||
|
||||
CompareData compare_data(INITIAL_SIZE, VALUE);
|
||||
Data data;
|
||||
CompareDataNDC compare_data(INITIAL_SIZE, VALUE);
|
||||
DataNDC data;
|
||||
|
||||
// Do it twice. We should only get one copy.
|
||||
data.assign(INITIAL_SIZE, VALUE);
|
||||
@ -218,9 +224,9 @@ namespace
|
||||
//*************************************************************************
|
||||
TEST_FIXTURE(SetupFixture, test_assign_size_value_excess)
|
||||
{
|
||||
const int VALUE = 1;
|
||||
const ItemNDC VALUE("1");
|
||||
|
||||
Data data;
|
||||
DataNDC data;
|
||||
|
||||
CHECK_THROW(data.assign(data.max_size() + 1, VALUE), etl::forward_list_full);
|
||||
}
|
||||
@ -229,18 +235,18 @@ namespace
|
||||
TEST_FIXTURE(SetupFixture, test_insert_after_position_value)
|
||||
{
|
||||
const size_t INITIAL_SIZE = 4;
|
||||
const int VALUE = 1;
|
||||
const int INSERT_VALUE = 2;
|
||||
const ItemNDC VALUE("1");
|
||||
const ItemNDC INSERT_VALUE("2");
|
||||
|
||||
CompareData compare_data(INITIAL_SIZE, VALUE);
|
||||
Data data(INITIAL_SIZE, VALUE);
|
||||
CompareDataNDC compare_data(INITIAL_SIZE, VALUE);
|
||||
DataNDC data(INITIAL_SIZE, VALUE);
|
||||
|
||||
size_t offset = 2;
|
||||
|
||||
Data::iterator i_data = data.begin();
|
||||
DataNDC::iterator i_data = data.begin();
|
||||
std::advance(i_data, offset);
|
||||
|
||||
CompareData::iterator i_compare_data = compare_data.begin();
|
||||
CompareDataNDC::iterator i_compare_data = compare_data.begin();
|
||||
std::advance(i_compare_data, offset);
|
||||
|
||||
data.insert_after(i_data, INSERT_VALUE);
|
||||
@ -269,11 +275,11 @@ namespace
|
||||
//*************************************************************************
|
||||
TEST_FIXTURE(SetupFixture, test_insert_after_range)
|
||||
{
|
||||
std::vector<int> test1 = { 1, 2, 3, 4, 5 };
|
||||
std::vector<int> test2 = { 6, 7, 8, 9, 10 };
|
||||
std::vector<ItemNDC> test1 = { ItemNDC("0"), ItemNDC("1"), ItemNDC("2"), ItemNDC("3"), ItemNDC("4") };
|
||||
std::vector<ItemNDC> test2 = { ItemNDC("5"), ItemNDC("6"), ItemNDC("7"), ItemNDC("8"), ItemNDC("9") };
|
||||
|
||||
CompareData compare_data(test1.begin(), test1.end());
|
||||
Data data(test1.begin(), test1.end());
|
||||
CompareDataNDC compare_data(test1.begin(), test1.end());
|
||||
DataNDC data(test1.begin(), test1.end());
|
||||
|
||||
compare_data.insert_after(compare_data.before_begin(), test2.begin(), test2.end());
|
||||
data.insert_after(data.before_begin(), test2.begin(), test2.end());
|
||||
@ -285,8 +291,8 @@ namespace
|
||||
compare_data.assign(test1.begin(), test1.end());
|
||||
data.assign(test1.begin(), test1.end());
|
||||
|
||||
CompareData::iterator icd = compare_data.begin();
|
||||
Data::iterator id = data.begin();
|
||||
CompareDataNDC::iterator icd = compare_data.begin();
|
||||
DataNDC::iterator id = data.begin();
|
||||
|
||||
std::advance(icd, 3);
|
||||
std::advance(id, 3);
|
||||
@ -302,22 +308,22 @@ namespace
|
||||
//*************************************************************************
|
||||
TEST_FIXTURE(SetupFixture, test_push_front)
|
||||
{
|
||||
CompareData compare_data;
|
||||
Data data;
|
||||
CompareDataNDC compare_data;
|
||||
DataNDC data;
|
||||
|
||||
compare_data.push_front(1);
|
||||
compare_data.push_front(2);
|
||||
compare_data.push_front(3);
|
||||
compare_data.push_front(4);
|
||||
compare_data.push_front(5);
|
||||
compare_data.push_front(6);
|
||||
compare_data.push_front(ItemNDC("1"));
|
||||
compare_data.push_front(ItemNDC("2"));
|
||||
compare_data.push_front(ItemNDC("3"));
|
||||
compare_data.push_front(ItemNDC("4"));
|
||||
compare_data.push_front(ItemNDC("5"));
|
||||
compare_data.push_front(ItemNDC("6"));
|
||||
|
||||
CHECK_NO_THROW(data.push_front(1));
|
||||
CHECK_NO_THROW(data.push_front(2));
|
||||
CHECK_NO_THROW(data.push_front(3));
|
||||
CHECK_NO_THROW(data.push_front(4));
|
||||
CHECK_NO_THROW(data.push_front(5));
|
||||
CHECK_NO_THROW(data.push_front(6));
|
||||
CHECK_NO_THROW(data.push_front(ItemNDC("1")));
|
||||
CHECK_NO_THROW(data.push_front(ItemNDC("2")));
|
||||
CHECK_NO_THROW(data.push_front(ItemNDC("3")));
|
||||
CHECK_NO_THROW(data.push_front(ItemNDC("4")));
|
||||
CHECK_NO_THROW(data.push_front(ItemNDC("5")));
|
||||
CHECK_NO_THROW(data.push_front(ItemNDC("6")));
|
||||
|
||||
are_equal = std::equal(data.begin(), data.end(), compare_data.begin());
|
||||
|
||||
@ -327,30 +333,30 @@ namespace
|
||||
//*************************************************************************
|
||||
TEST_FIXTURE(SetupFixture, test_push_front_excess)
|
||||
{
|
||||
Data data;
|
||||
DataNDC data;
|
||||
|
||||
CHECK_NO_THROW(data.push_front(1));
|
||||
CHECK_NO_THROW(data.push_front(2));
|
||||
CHECK_NO_THROW(data.push_front(3));
|
||||
CHECK_NO_THROW(data.push_front(4));
|
||||
CHECK_NO_THROW(data.push_front(5));
|
||||
CHECK_NO_THROW(data.push_front(6));
|
||||
CHECK_NO_THROW(data.push_front(7));
|
||||
CHECK_NO_THROW(data.push_front(8));
|
||||
CHECK_NO_THROW(data.push_front(9));
|
||||
CHECK_NO_THROW(data.push_front(10));
|
||||
CHECK_NO_THROW(data.push_front(ItemNDC("0")));
|
||||
CHECK_NO_THROW(data.push_front(ItemNDC("1")));
|
||||
CHECK_NO_THROW(data.push_front(ItemNDC("2")));
|
||||
CHECK_NO_THROW(data.push_front(ItemNDC("3")));
|
||||
CHECK_NO_THROW(data.push_front(ItemNDC("4")));
|
||||
CHECK_NO_THROW(data.push_front(ItemNDC("5")));
|
||||
CHECK_NO_THROW(data.push_front(ItemNDC("6")));
|
||||
CHECK_NO_THROW(data.push_front(ItemNDC("7")));
|
||||
CHECK_NO_THROW(data.push_front(ItemNDC("8")));
|
||||
CHECK_NO_THROW(data.push_front(ItemNDC("9")));
|
||||
|
||||
CHECK_THROW(data.push_front(11) , etl::forward_list_full);
|
||||
CHECK_THROW(data.push_front(ItemNDC("10")) , etl::forward_list_full);
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST_FIXTURE(SetupFixture, test_push_front_pop_front)
|
||||
{
|
||||
Data data;
|
||||
DataNDC data;
|
||||
|
||||
for (size_t i = 0; i < 2 * data.max_size(); ++i)
|
||||
{
|
||||
CHECK_NO_THROW(data.push_front(i));
|
||||
CHECK_NO_THROW(data.push_front(ItemNDC("1")));
|
||||
data.pop_front();
|
||||
}
|
||||
|
||||
@ -360,13 +366,13 @@ namespace
|
||||
//*************************************************************************
|
||||
TEST_FIXTURE(SetupFixture, test_erase_after_single)
|
||||
{
|
||||
CompareData compare_data(sorted_data.begin(), sorted_data.end());
|
||||
Data data(sorted_data.begin(), sorted_data.end());
|
||||
CompareDataNDC compare_data(sorted_data.begin(), sorted_data.end());
|
||||
DataNDC data(sorted_data.begin(), sorted_data.end());
|
||||
|
||||
Data::iterator i_data = data.begin();
|
||||
DataNDC::iterator i_data = data.begin();
|
||||
std::advance(i_data, 2);
|
||||
|
||||
CompareData::iterator i_compare_data = compare_data.begin();
|
||||
CompareDataNDC::iterator i_compare_data = compare_data.begin();
|
||||
std::advance(i_compare_data, 2);
|
||||
|
||||
i_compare_data = compare_data.erase_after(i_compare_data);
|
||||
@ -406,19 +412,19 @@ namespace
|
||||
//*************************************************************************
|
||||
TEST_FIXTURE(SetupFixture, test_erase_after_range)
|
||||
{
|
||||
CompareData compare_data(sorted_data.begin(), sorted_data.end());
|
||||
Data data(sorted_data.begin(), sorted_data.end());
|
||||
CompareDataNDC compare_data(sorted_data.begin(), sorted_data.end());
|
||||
DataNDC data(sorted_data.begin(), sorted_data.end());
|
||||
|
||||
Data::iterator i_data_1 = data.begin();
|
||||
DataNDC::iterator i_data_1 = data.begin();
|
||||
std::advance(i_data_1, 2);
|
||||
|
||||
Data::iterator i_data_2 = data.begin();
|
||||
DataNDC::iterator i_data_2 = data.begin();
|
||||
std::advance(i_data_2, 4);
|
||||
|
||||
CompareData::iterator i_compare_data_1 = compare_data.begin();
|
||||
CompareDataNDC::iterator i_compare_data_1 = compare_data.begin();
|
||||
std::advance(i_compare_data_1, 2);
|
||||
|
||||
CompareData::iterator i_compare_data_2 = compare_data.begin();
|
||||
CompareDataNDC::iterator i_compare_data_2 = compare_data.begin();
|
||||
std::advance(i_compare_data_2, 4);
|
||||
|
||||
compare_data.erase_after(i_compare_data_1, i_compare_data_2);
|
||||
@ -433,7 +439,7 @@ namespace
|
||||
//*************************************************************************
|
||||
TEST_FIXTURE(SetupFixture, test_erase_after_all)
|
||||
{
|
||||
Data data(sorted_data.begin(), sorted_data.end());
|
||||
DataNDC data(sorted_data.begin(), sorted_data.end());
|
||||
|
||||
data.erase_after(data.before_begin(), data.end());
|
||||
|
||||
@ -443,8 +449,8 @@ namespace
|
||||
//*************************************************************************
|
||||
TEST_FIXTURE(SetupFixture, test_front)
|
||||
{
|
||||
CompareData compare_data(sorted_data.begin(), sorted_data.end());
|
||||
Data data(sorted_data.begin(), sorted_data.end());
|
||||
CompareDataNDC compare_data(sorted_data.begin(), sorted_data.end());
|
||||
DataNDC data(sorted_data.begin(), sorted_data.end());
|
||||
|
||||
CHECK_EQUAL(compare_data.front(), data.front());
|
||||
}
|
||||
@ -452,9 +458,9 @@ namespace
|
||||
//*************************************************************************
|
||||
TEST_FIXTURE(SetupFixture, test_assignment)
|
||||
{
|
||||
CompareData compare_data(sorted_data.begin(), sorted_data.end());
|
||||
Data data(sorted_data.begin(), sorted_data.end());
|
||||
Data other_data;
|
||||
CompareDataNDC compare_data(sorted_data.begin(), sorted_data.end());
|
||||
DataNDC data(sorted_data.begin(), sorted_data.end());
|
||||
DataNDC other_data;
|
||||
|
||||
other_data = data;
|
||||
|
||||
@ -468,8 +474,8 @@ namespace
|
||||
//*************************************************************************
|
||||
TEST_FIXTURE(SetupFixture, test_unique)
|
||||
{
|
||||
CompareData compare_data(non_unique_data.begin(), non_unique_data.end());
|
||||
Data data(non_unique_data.begin(), non_unique_data.end());
|
||||
CompareDataNDC compare_data(non_unique_data.begin(), non_unique_data.end());
|
||||
DataNDC data(non_unique_data.begin(), non_unique_data.end());
|
||||
|
||||
compare_data.unique();
|
||||
data.unique();
|
||||
@ -482,11 +488,11 @@ namespace
|
||||
//*************************************************************************
|
||||
TEST_FIXTURE(SetupFixture, test_remove)
|
||||
{
|
||||
CompareData compare_data(sorted_data.begin(), sorted_data.end());
|
||||
Data data(sorted_data.begin(), sorted_data.end());
|
||||
CompareDataNDC compare_data(sorted_data.begin(), sorted_data.end());
|
||||
DataNDC data(sorted_data.begin(), sorted_data.end());
|
||||
|
||||
compare_data.remove(7);
|
||||
data.remove(7);
|
||||
compare_data.remove(ItemNDC("7"));
|
||||
data.remove(ItemNDC("7"));
|
||||
|
||||
are_equal = std::equal(data.begin(), data.end(), compare_data.begin());
|
||||
|
||||
@ -496,11 +502,11 @@ namespace
|
||||
//*************************************************************************
|
||||
TEST_FIXTURE(SetupFixture, test_remove_if)
|
||||
{
|
||||
CompareData compare_data(sorted_data.begin(), sorted_data.end());
|
||||
Data data(sorted_data.begin(), sorted_data.end());
|
||||
CompareDataNDC compare_data(sorted_data.begin(), sorted_data.end());
|
||||
DataNDC data(sorted_data.begin(), sorted_data.end());
|
||||
|
||||
compare_data.remove_if(std::bind2nd(std::equal_to<int>(), 7));
|
||||
data.remove_if(std::bind2nd(std::equal_to<int>(), 7));
|
||||
compare_data.remove_if(std::bind2nd(std::equal_to<ItemNDC>(), ItemNDC("7")));
|
||||
data.remove_if(std::bind2nd(std::equal_to<ItemNDC>(), ItemNDC("7")));
|
||||
|
||||
are_equal = std::equal(data.begin(), data.end(), compare_data.begin());
|
||||
|
||||
@ -510,8 +516,8 @@ namespace
|
||||
//*************************************************************************
|
||||
TEST_FIXTURE(SetupFixture, test_reverse)
|
||||
{
|
||||
CompareData compare_data(sorted_data.begin(), sorted_data.end());
|
||||
Data data(sorted_data.begin(), sorted_data.end());
|
||||
CompareDataNDC compare_data(sorted_data.begin(), sorted_data.end());
|
||||
DataNDC data(sorted_data.begin(), sorted_data.end());
|
||||
|
||||
compare_data.reverse();
|
||||
data.reverse();
|
||||
@ -524,8 +530,8 @@ namespace
|
||||
//*************************************************************************
|
||||
TEST_FIXTURE(SetupFixture, test_sort)
|
||||
{
|
||||
CompareData compare_data(unsorted_data.begin(), unsorted_data.end());
|
||||
Data data(unsorted_data.begin(), unsorted_data.end());
|
||||
CompareDataNDC compare_data(unsorted_data.begin(), unsorted_data.end());
|
||||
DataNDC data(unsorted_data.begin(), unsorted_data.end());
|
||||
|
||||
compare_data.sort();
|
||||
data.sort();
|
||||
@ -534,20 +540,5 @@ namespace
|
||||
|
||||
CHECK(are_equal);
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST_FIXTURE(SetupFixture, test_swap)
|
||||
{
|
||||
Data first(unsorted_data.begin(), unsorted_data.end());
|
||||
Data second(small_data.begin(), small_data.end());
|
||||
|
||||
swap(first, second);
|
||||
|
||||
are_equal = std::equal(first.begin(), first.end(), small_data.begin());
|
||||
CHECK(are_equal);
|
||||
|
||||
are_equal = std::equal(second.begin(), second.end(), unsorted_data.begin());
|
||||
CHECK(are_equal);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@ -29,6 +29,8 @@ SOFTWARE.
|
||||
|
||||
#include "../list.h"
|
||||
|
||||
#include "data.h"
|
||||
|
||||
#include <algorithm>
|
||||
#include <array>
|
||||
#include <list>
|
||||
@ -38,12 +40,16 @@ namespace
|
||||
{
|
||||
SUITE(test_list)
|
||||
{
|
||||
typedef TestDataDC<std::string> ItemDC;
|
||||
typedef TestDataNDC<std::string> ItemNDC;
|
||||
|
||||
const size_t SIZE = 10;
|
||||
|
||||
typedef etl::list<int, SIZE> Data;
|
||||
typedef etl::list<ItemDC, SIZE> DataDC;
|
||||
typedef etl::list<ItemNDC, SIZE> DataNDC;
|
||||
|
||||
typedef std::list<int> CompareData;
|
||||
typedef std::vector<int> InitialData;
|
||||
typedef std::list<ItemNDC> CompareData;
|
||||
typedef std::vector<ItemNDC> InitialData;
|
||||
|
||||
InitialData unsorted_data;
|
||||
InitialData sorted_data;
|
||||
@ -57,17 +63,17 @@ namespace
|
||||
{
|
||||
SetupFixture()
|
||||
{
|
||||
unsorted_data = { 1, 0, 3, 2, 5, 4, 7, 6, 9, 8 };
|
||||
sorted_data = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
|
||||
non_unique_data = { 0, 0, 1, 1, 2, 3, 3, 3, 4, 5 };
|
||||
small_data = { 0, 1, 2, 3, 4, 5 };
|
||||
unsorted_data = { ItemNDC("1"), ItemNDC("0"), ItemNDC("3"), ItemNDC("2"), ItemNDC("5"), ItemNDC("4"), ItemNDC("7"), ItemNDC("6"), ItemNDC("9"), ItemNDC("8") };
|
||||
sorted_data = { ItemNDC("0"), ItemNDC("1"), ItemNDC("2"), ItemNDC("3"), ItemNDC("4"), ItemNDC("5"), ItemNDC("6"), ItemNDC("7"), ItemNDC("8"), ItemNDC("9") };
|
||||
non_unique_data = { ItemNDC("0"), ItemNDC("0"), ItemNDC("1"), ItemNDC("1"), ItemNDC("2"), ItemNDC("3"), ItemNDC("3"), ItemNDC("3"), ItemNDC("4"), ItemNDC("5") };
|
||||
small_data = { ItemNDC("0"), ItemNDC("1"), ItemNDC("2"), ItemNDC("3"), ItemNDC("4"), ItemNDC("5") };
|
||||
}
|
||||
};
|
||||
|
||||
//*************************************************************************
|
||||
TEST_FIXTURE(SetupFixture, test_default_constructor)
|
||||
{
|
||||
Data data;
|
||||
DataNDC data;
|
||||
|
||||
CHECK_EQUAL(data.size(), size_t(0));
|
||||
CHECK(data.empty());
|
||||
@ -78,7 +84,7 @@ namespace
|
||||
TEST_FIXTURE(SetupFixture, test_constructor_size)
|
||||
{
|
||||
const size_t INITIAL_SIZE = 4;
|
||||
Data data(INITIAL_SIZE);
|
||||
DataDC data(INITIAL_SIZE);
|
||||
|
||||
CHECK(data.size() == INITIAL_SIZE);
|
||||
CHECK(!data.empty());
|
||||
@ -87,19 +93,18 @@ namespace
|
||||
//*************************************************************************
|
||||
TEST_FIXTURE(SetupFixture, test_constructor_size_excess)
|
||||
{
|
||||
CHECK_THROW(Data data(SIZE + 1), etl::list_full);
|
||||
CHECK_THROW(DataDC data(SIZE + 1), etl::list_full);
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST_FIXTURE(SetupFixture, test_constructor_size_value)
|
||||
{
|
||||
const size_t INITIAL_SIZE = 4;
|
||||
const int INITIAL_VALUE = 1;
|
||||
const ItemNDC INITIAL_VALUE = ItemNDC("1");
|
||||
|
||||
std::array<int, INITIAL_SIZE> compare_data;
|
||||
compare_data.fill(INITIAL_VALUE);
|
||||
std::array<ItemNDC, INITIAL_SIZE> compare_data = { ItemNDC("1"), ItemNDC("1"), ItemNDC("1"), ItemNDC("1") };
|
||||
|
||||
Data data(INITIAL_SIZE, INITIAL_VALUE);
|
||||
DataNDC data(INITIAL_SIZE, INITIAL_VALUE);
|
||||
|
||||
CHECK(data.size() == INITIAL_SIZE);
|
||||
CHECK(!data.empty());
|
||||
@ -112,13 +117,13 @@ namespace
|
||||
//*************************************************************************
|
||||
TEST_FIXTURE(SetupFixture, test_constructor_size_value_excess)
|
||||
{
|
||||
CHECK_THROW(Data data(SIZE + 1, 1), etl::list_full);
|
||||
CHECK_THROW(DataNDC data(SIZE + 1, ItemNDC("1")), etl::list_full);
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST_FIXTURE(SetupFixture, test_constructor_range)
|
||||
{
|
||||
Data data(sorted_data.begin(), sorted_data.end());
|
||||
DataNDC data(sorted_data.begin(), sorted_data.end());
|
||||
|
||||
CHECK_EQUAL(SIZE, data.size());
|
||||
CHECK(!data.empty());
|
||||
@ -128,8 +133,8 @@ namespace
|
||||
TEST_FIXTURE(SetupFixture, test_copy_constructor)
|
||||
{
|
||||
CompareData compare_data(sorted_data.begin(), sorted_data.end());
|
||||
Data data(sorted_data.begin(), sorted_data.end());
|
||||
Data other_data(data);
|
||||
DataNDC data(sorted_data.begin(), sorted_data.end());
|
||||
DataNDC other_data(data);
|
||||
|
||||
CHECK_EQUAL(data.size(), other_data.size());
|
||||
|
||||
@ -148,7 +153,7 @@ namespace
|
||||
TEST_FIXTURE(SetupFixture, test_iterator)
|
||||
{
|
||||
CompareData compare_data(sorted_data.begin(), sorted_data.end());
|
||||
Data data(compare_data.begin(), compare_data.end());
|
||||
DataNDC data(compare_data.begin(), compare_data.end());
|
||||
|
||||
are_equal = std::equal(data.begin(), data.end(), compare_data.begin());
|
||||
|
||||
@ -159,7 +164,7 @@ namespace
|
||||
TEST_FIXTURE(SetupFixture, test_const_iterator)
|
||||
{
|
||||
CompareData compare_data(sorted_data.begin(), sorted_data.end());
|
||||
Data data(compare_data.begin(), compare_data.end());
|
||||
DataNDC data(compare_data.begin(), compare_data.end());
|
||||
|
||||
are_equal = std::equal(data.cbegin(), data.cend(), compare_data.cbegin());
|
||||
|
||||
@ -170,7 +175,7 @@ namespace
|
||||
TEST_FIXTURE(SetupFixture, test_reverse_iterator)
|
||||
{
|
||||
CompareData compare_data(sorted_data.begin(), sorted_data.end());
|
||||
Data data(compare_data.begin(), compare_data.end());
|
||||
DataNDC data(compare_data.begin(), compare_data.end());
|
||||
|
||||
are_equal = std::equal(data.rbegin(), data.rend(), compare_data.rbegin());
|
||||
|
||||
@ -181,7 +186,7 @@ namespace
|
||||
TEST_FIXTURE(SetupFixture, test_const_reverse_iterator)
|
||||
{
|
||||
CompareData compare_data(sorted_data.begin(), sorted_data.end());
|
||||
Data data(compare_data.begin(), compare_data.end());
|
||||
DataNDC data(compare_data.begin(), compare_data.end());
|
||||
|
||||
are_equal = std::equal(data.crbegin(), data.crend(), compare_data.crbegin());
|
||||
|
||||
@ -194,7 +199,7 @@ namespace
|
||||
const size_t INITIAL_SIZE = 4;
|
||||
const size_t NEW_SIZE = 8;
|
||||
|
||||
Data data(INITIAL_SIZE);
|
||||
DataDC data(INITIAL_SIZE);
|
||||
data.resize(NEW_SIZE);
|
||||
|
||||
CHECK_EQUAL(data.size(), NEW_SIZE);
|
||||
@ -205,9 +210,9 @@ namespace
|
||||
{
|
||||
const size_t INITIAL_SIZE = 4;
|
||||
const size_t NEW_SIZE = 8;
|
||||
const int VALUE = 1;
|
||||
const ItemNDC VALUE = ItemNDC("1");
|
||||
|
||||
Data data(INITIAL_SIZE, VALUE);
|
||||
DataNDC data(INITIAL_SIZE, VALUE);
|
||||
data.resize(NEW_SIZE, VALUE);
|
||||
|
||||
CompareData compare_data(INITIAL_SIZE, VALUE);
|
||||
@ -222,9 +227,11 @@ namespace
|
||||
TEST_FIXTURE(SetupFixture, test_resize_excess)
|
||||
{
|
||||
const size_t INITIAL_SIZE = 4;
|
||||
Data data(INITIAL_SIZE);
|
||||
const ItemNDC VALUE = ItemNDC("1");
|
||||
|
||||
CHECK_THROW(data.resize(data.max_size() + 1), etl::list_full);
|
||||
DataNDC data(INITIAL_SIZE, VALUE);
|
||||
|
||||
CHECK_THROW(data.resize(data.max_size() + 1, VALUE), etl::list_full);
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
@ -232,9 +239,10 @@ namespace
|
||||
{
|
||||
const size_t INITIAL_SIZE = 4;
|
||||
const size_t NEW_SIZE = 2;
|
||||
const ItemNDC VALUE = ItemNDC("1");
|
||||
|
||||
Data data(INITIAL_SIZE);
|
||||
data.resize(NEW_SIZE);
|
||||
DataNDC data(INITIAL_SIZE, VALUE);
|
||||
data.resize(NEW_SIZE, VALUE);
|
||||
|
||||
CHECK_EQUAL(data.size(), NEW_SIZE);
|
||||
}
|
||||
@ -242,7 +250,7 @@ namespace
|
||||
//*************************************************************************
|
||||
TEST_FIXTURE(SetupFixture, test_clear)
|
||||
{
|
||||
Data data(sorted_data.begin(), sorted_data.end());
|
||||
DataNDC data(sorted_data.begin(), sorted_data.end());
|
||||
data.clear();
|
||||
|
||||
CHECK_EQUAL(data.size(), 0);
|
||||
@ -252,7 +260,7 @@ namespace
|
||||
TEST_FIXTURE(SetupFixture, test_assign_range)
|
||||
{
|
||||
CompareData compare_data(sorted_data.begin(), sorted_data.end());
|
||||
Data data;
|
||||
DataNDC data;
|
||||
|
||||
// Do it twice. We should only get one copy.
|
||||
data.assign(compare_data.begin(), compare_data.end());
|
||||
@ -269,10 +277,10 @@ namespace
|
||||
TEST_FIXTURE(SetupFixture, test_assign_size_value)
|
||||
{
|
||||
const size_t INITIAL_SIZE = 4;
|
||||
const int VALUE = 1;
|
||||
const ItemNDC VALUE = ItemNDC("1");
|
||||
|
||||
CompareData compare_data(INITIAL_SIZE, VALUE);
|
||||
Data data;
|
||||
DataNDC data;
|
||||
|
||||
// Do it twice. We should only get one copy.
|
||||
data.assign(INITIAL_SIZE, VALUE);
|
||||
@ -288,9 +296,9 @@ namespace
|
||||
//*************************************************************************
|
||||
TEST_FIXTURE(SetupFixture, test_assign_size_value_excess)
|
||||
{
|
||||
const int VALUE = 1;
|
||||
const ItemNDC VALUE = ItemNDC("1");
|
||||
|
||||
Data data;
|
||||
DataNDC data;
|
||||
|
||||
CHECK_THROW(data.assign(data.max_size() + 1, VALUE), etl::list_full);
|
||||
}
|
||||
@ -298,16 +306,16 @@ namespace
|
||||
//*************************************************************************
|
||||
TEST_FIXTURE(SetupFixture, test_insert_position_value)
|
||||
{
|
||||
const size_t INITIAL_SIZE = 4;
|
||||
const int VALUE = 1;
|
||||
const int INSERT_VALUE = 2;
|
||||
const size_t INITIAL_SIZE = 4;
|
||||
const ItemNDC VALUE = ItemNDC("1");
|
||||
const ItemNDC INSERT_VALUE = ItemNDC("2");
|
||||
|
||||
CompareData compare_data(INITIAL_SIZE, VALUE);
|
||||
Data data(INITIAL_SIZE, VALUE);
|
||||
DataNDC data(INITIAL_SIZE, VALUE);
|
||||
|
||||
size_t offset = 2;
|
||||
|
||||
Data::iterator i_data = data.begin();
|
||||
DataNDC::iterator i_data = data.begin();
|
||||
std::advance(i_data, offset);
|
||||
|
||||
CompareData::iterator i_compare_data = compare_data.begin();
|
||||
@ -349,11 +357,11 @@ namespace
|
||||
//*************************************************************************
|
||||
TEST_FIXTURE(SetupFixture, test_insert_range)
|
||||
{
|
||||
std::vector<int> test1 = { 1, 2, 3, 4, 5 };
|
||||
std::vector<int> test2 = { 6, 7, 8, 9, 10 };
|
||||
std::vector<ItemNDC> test1 = { ItemNDC("1"), ItemNDC("2"), ItemNDC("3"), ItemNDC("4"), ItemNDC("5") };
|
||||
std::vector<ItemNDC> test2 = { ItemNDC("6"), ItemNDC("7"), ItemNDC("8"), ItemNDC("9"), ItemNDC("10") };
|
||||
|
||||
CompareData compare_data(test1.begin(), test1.end());
|
||||
Data data(test1.begin(), test1.end());
|
||||
DataNDC data(test1.begin(), test1.end());
|
||||
|
||||
compare_data.insert(compare_data.begin(), test2.begin(), test2.end());
|
||||
data.insert(data.begin(), test2.begin(), test2.end());
|
||||
@ -376,7 +384,7 @@ namespace
|
||||
data.assign(test1.begin(), test1.end());
|
||||
|
||||
CompareData::iterator icd = compare_data.begin();
|
||||
Data::iterator id = data.begin();
|
||||
DataNDC::iterator id = data.begin();
|
||||
|
||||
std::advance(icd, 3);
|
||||
std::advance(id, 3);
|
||||
@ -393,21 +401,21 @@ namespace
|
||||
TEST_FIXTURE(SetupFixture, test_push_front)
|
||||
{
|
||||
CompareData compare_data;
|
||||
Data data;
|
||||
DataNDC data;
|
||||
|
||||
compare_data.push_front(1);
|
||||
compare_data.push_front(2);
|
||||
compare_data.push_front(3);
|
||||
compare_data.push_front(4);
|
||||
compare_data.push_front(5);
|
||||
compare_data.push_front(6);
|
||||
compare_data.push_front(ItemNDC("1"));
|
||||
compare_data.push_front(ItemNDC("2"));
|
||||
compare_data.push_front(ItemNDC("3"));
|
||||
compare_data.push_front(ItemNDC("4"));
|
||||
compare_data.push_front(ItemNDC("5"));
|
||||
compare_data.push_front(ItemNDC("6"));
|
||||
|
||||
CHECK_NO_THROW(data.push_front(1));
|
||||
CHECK_NO_THROW(data.push_front(2));
|
||||
CHECK_NO_THROW(data.push_front(3));
|
||||
CHECK_NO_THROW(data.push_front(4));
|
||||
CHECK_NO_THROW(data.push_front(5));
|
||||
CHECK_NO_THROW(data.push_front(6));
|
||||
CHECK_NO_THROW(data.push_front(ItemNDC("1")));
|
||||
CHECK_NO_THROW(data.push_front(ItemNDC("2")));
|
||||
CHECK_NO_THROW(data.push_front(ItemNDC("3")));
|
||||
CHECK_NO_THROW(data.push_front(ItemNDC("4")));
|
||||
CHECK_NO_THROW(data.push_front(ItemNDC("5")));
|
||||
CHECK_NO_THROW(data.push_front(ItemNDC("6")));
|
||||
|
||||
are_equal = std::equal(data.begin(), data.end(), compare_data.begin());
|
||||
|
||||
@ -417,30 +425,30 @@ namespace
|
||||
//*************************************************************************
|
||||
TEST_FIXTURE(SetupFixture, test_push_front_excess)
|
||||
{
|
||||
Data data;
|
||||
DataNDC data;
|
||||
|
||||
CHECK_NO_THROW(data.push_front(1));
|
||||
CHECK_NO_THROW(data.push_front(2));
|
||||
CHECK_NO_THROW(data.push_front(3));
|
||||
CHECK_NO_THROW(data.push_front(4));
|
||||
CHECK_NO_THROW(data.push_front(5));
|
||||
CHECK_NO_THROW(data.push_front(6));
|
||||
CHECK_NO_THROW(data.push_front(7));
|
||||
CHECK_NO_THROW(data.push_front(8));
|
||||
CHECK_NO_THROW(data.push_front(9));
|
||||
CHECK_NO_THROW(data.push_front(10));
|
||||
CHECK_NO_THROW(data.push_front(ItemNDC("1")));
|
||||
CHECK_NO_THROW(data.push_front(ItemNDC("2")));
|
||||
CHECK_NO_THROW(data.push_front(ItemNDC("3")));
|
||||
CHECK_NO_THROW(data.push_front(ItemNDC("4")));
|
||||
CHECK_NO_THROW(data.push_front(ItemNDC("5")));
|
||||
CHECK_NO_THROW(data.push_front(ItemNDC("6")));
|
||||
CHECK_NO_THROW(data.push_front(ItemNDC("7")));
|
||||
CHECK_NO_THROW(data.push_front(ItemNDC("8")));
|
||||
CHECK_NO_THROW(data.push_front(ItemNDC("9")));
|
||||
CHECK_NO_THROW(data.push_front(ItemNDC("10")));
|
||||
|
||||
CHECK_THROW(data.push_front(11) , etl::list_full);
|
||||
CHECK_THROW(data.push_front(ItemNDC("11")) , etl::list_full);
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST_FIXTURE(SetupFixture, test_push_front_pop_front)
|
||||
{
|
||||
Data data;
|
||||
DataNDC data;
|
||||
|
||||
for (size_t i = 0; i < 2 * data.max_size(); ++i)
|
||||
{
|
||||
CHECK_NO_THROW(data.push_front(i));
|
||||
CHECK_NO_THROW(data.push_front(ItemNDC("1")));
|
||||
data.pop_front();
|
||||
}
|
||||
|
||||
@ -450,11 +458,11 @@ namespace
|
||||
//*************************************************************************
|
||||
TEST_FIXTURE(SetupFixture, test_push_front_pop_back)
|
||||
{
|
||||
Data data;
|
||||
DataNDC data;
|
||||
|
||||
for (size_t i = 0; i < 2 * data.max_size(); ++i)
|
||||
{
|
||||
CHECK_NO_THROW(data.push_front(i));
|
||||
CHECK_NO_THROW(data.push_front(ItemNDC("1")));
|
||||
data.pop_back();
|
||||
}
|
||||
|
||||
@ -464,11 +472,11 @@ namespace
|
||||
//*************************************************************************
|
||||
TEST_FIXTURE(SetupFixture, test_push_back_pop_front)
|
||||
{
|
||||
Data data;
|
||||
DataNDC data;
|
||||
|
||||
for (size_t i = 0; i < 2 * data.max_size(); ++i)
|
||||
{
|
||||
CHECK_NO_THROW(data.push_front(i));
|
||||
CHECK_NO_THROW(data.push_front(ItemNDC("1")));
|
||||
data.pop_front();
|
||||
}
|
||||
|
||||
@ -478,11 +486,11 @@ namespace
|
||||
//*************************************************************************
|
||||
TEST_FIXTURE(SetupFixture, test_push_back_pop_back)
|
||||
{
|
||||
Data data;
|
||||
DataNDC data;
|
||||
|
||||
for (size_t i = 0; i < 2 * data.max_size(); ++i)
|
||||
{
|
||||
CHECK_NO_THROW(data.push_front(i));
|
||||
CHECK_NO_THROW(data.push_front(ItemNDC("1")));
|
||||
data.pop_back();
|
||||
}
|
||||
|
||||
@ -493,21 +501,21 @@ namespace
|
||||
TEST_FIXTURE(SetupFixture, test_push_back)
|
||||
{
|
||||
CompareData compare_data;
|
||||
Data data;
|
||||
DataNDC data;
|
||||
|
||||
compare_data.push_back(1);
|
||||
compare_data.push_back(2);
|
||||
compare_data.push_back(3);
|
||||
compare_data.push_back(4);
|
||||
compare_data.push_back(5);
|
||||
compare_data.push_back(6);
|
||||
compare_data.push_back(ItemNDC("1"));
|
||||
compare_data.push_back(ItemNDC("2"));
|
||||
compare_data.push_back(ItemNDC("3"));
|
||||
compare_data.push_back(ItemNDC("4"));
|
||||
compare_data.push_back(ItemNDC("5"));
|
||||
compare_data.push_back(ItemNDC("6"));
|
||||
|
||||
CHECK_NO_THROW(data.push_back(1));
|
||||
CHECK_NO_THROW(data.push_back(2));
|
||||
CHECK_NO_THROW(data.push_back(3));
|
||||
CHECK_NO_THROW(data.push_back(4));
|
||||
CHECK_NO_THROW(data.push_back(5));
|
||||
CHECK_NO_THROW(data.push_back(6));
|
||||
CHECK_NO_THROW(data.push_back(ItemNDC("1")));
|
||||
CHECK_NO_THROW(data.push_back(ItemNDC("2")));
|
||||
CHECK_NO_THROW(data.push_back(ItemNDC("3")));
|
||||
CHECK_NO_THROW(data.push_back(ItemNDC("4")));
|
||||
CHECK_NO_THROW(data.push_back(ItemNDC("5")));
|
||||
CHECK_NO_THROW(data.push_back(ItemNDC("6")));
|
||||
|
||||
are_equal = std::equal(data.begin(), data.end(), compare_data.begin());
|
||||
|
||||
@ -517,27 +525,27 @@ namespace
|
||||
//*************************************************************************
|
||||
TEST_FIXTURE(SetupFixture, test_push_back_excess)
|
||||
{
|
||||
Data data;
|
||||
DataNDC data;
|
||||
|
||||
data.push_back(1);
|
||||
data.push_back(2);
|
||||
data.push_back(3);
|
||||
data.push_back(4);
|
||||
data.push_back(5);
|
||||
data.push_back(6);
|
||||
data.push_back(7);
|
||||
data.push_back(8);
|
||||
data.push_back(9);
|
||||
data.push_back(10);
|
||||
data.push_back(ItemNDC("1"));
|
||||
data.push_back(ItemNDC("2"));
|
||||
data.push_back(ItemNDC("3"));
|
||||
data.push_back(ItemNDC("4"));
|
||||
data.push_back(ItemNDC("5"));
|
||||
data.push_back(ItemNDC("6"));
|
||||
data.push_back(ItemNDC("7"));
|
||||
data.push_back(ItemNDC("8"));
|
||||
data.push_back(ItemNDC("9"));
|
||||
data.push_back(ItemNDC("10"));
|
||||
|
||||
CHECK_THROW(data.push_back(11), etl::list_full);
|
||||
CHECK_THROW(data.push_back(ItemNDC("11")), etl::list_full);
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST_FIXTURE(SetupFixture, test_pop_back)
|
||||
{
|
||||
CompareData compare_data(sorted_data.begin(), sorted_data.end());
|
||||
Data data(sorted_data.begin(), sorted_data.end());
|
||||
DataNDC data(sorted_data.begin(), sorted_data.end());
|
||||
|
||||
compare_data.pop_back();
|
||||
compare_data.pop_back();
|
||||
@ -554,9 +562,9 @@ namespace
|
||||
TEST_FIXTURE(SetupFixture, test_erase_single)
|
||||
{
|
||||
CompareData compare_data(sorted_data.begin(), sorted_data.end());
|
||||
Data data(sorted_data.begin(), sorted_data.end());
|
||||
DataNDC data(sorted_data.begin(), sorted_data.end());
|
||||
|
||||
Data::iterator i_data = data.begin();
|
||||
DataNDC::iterator i_data = data.begin();
|
||||
std::advance(i_data, 2);
|
||||
|
||||
CompareData::iterator i_compare_data = compare_data.begin();
|
||||
@ -600,12 +608,12 @@ namespace
|
||||
TEST_FIXTURE(SetupFixture, test_erase_range)
|
||||
{
|
||||
CompareData compare_data(sorted_data.begin(), sorted_data.end());
|
||||
Data data(sorted_data.begin(), sorted_data.end());
|
||||
DataNDC data(sorted_data.begin(), sorted_data.end());
|
||||
|
||||
Data::iterator i_data_1 = data.begin();
|
||||
DataNDC::iterator i_data_1 = data.begin();
|
||||
std::advance(i_data_1, 2);
|
||||
|
||||
Data::iterator i_data_2 = data.begin();
|
||||
DataNDC::iterator i_data_2 = data.begin();
|
||||
std::advance(i_data_2, 4);
|
||||
|
||||
CompareData::iterator i_compare_data_1 = compare_data.begin();
|
||||
@ -626,14 +634,14 @@ namespace
|
||||
//*************************************************************************
|
||||
TEST_FIXTURE(SetupFixture, test_erase_all)
|
||||
{
|
||||
Data data(sorted_data.begin(), sorted_data.end());
|
||||
DataNDC data(sorted_data.begin(), sorted_data.end());
|
||||
|
||||
data.erase(data.begin(), data.end());
|
||||
|
||||
CHECK(data.empty());
|
||||
|
||||
// Check that it is still in a valid state.
|
||||
data.push_back(1);
|
||||
data.push_back(ItemNDC("1"));
|
||||
CHECK(!data.empty());
|
||||
CHECK_EQUAL(1, data.size());
|
||||
}
|
||||
@ -642,7 +650,7 @@ namespace
|
||||
TEST_FIXTURE(SetupFixture, test_front)
|
||||
{
|
||||
CompareData compare_data(sorted_data.begin(), sorted_data.end());
|
||||
Data data(sorted_data.begin(), sorted_data.end());
|
||||
DataNDC data(sorted_data.begin(), sorted_data.end());
|
||||
|
||||
CHECK_EQUAL(compare_data.front(), data.front());
|
||||
}
|
||||
@ -651,7 +659,7 @@ namespace
|
||||
TEST_FIXTURE(SetupFixture, test_front_const)
|
||||
{
|
||||
const CompareData compare_data(sorted_data.begin(), sorted_data.end());
|
||||
const Data data(sorted_data.begin(), sorted_data.end());
|
||||
const DataNDC data(sorted_data.begin(), sorted_data.end());
|
||||
|
||||
CHECK_EQUAL(compare_data.front(), data.front());
|
||||
}
|
||||
@ -660,7 +668,7 @@ namespace
|
||||
TEST_FIXTURE(SetupFixture, test_back)
|
||||
{
|
||||
CompareData compare_data(sorted_data.begin(), sorted_data.end());
|
||||
Data data(sorted_data.begin(), sorted_data.end());
|
||||
DataNDC data(sorted_data.begin(), sorted_data.end());
|
||||
|
||||
CHECK_EQUAL(compare_data.back(), data.back());
|
||||
}
|
||||
@ -669,7 +677,7 @@ namespace
|
||||
TEST_FIXTURE(SetupFixture, test_back_const)
|
||||
{
|
||||
const CompareData compare_data(sorted_data.begin(), sorted_data.end());
|
||||
const Data data(sorted_data.begin(), sorted_data.end());
|
||||
const DataNDC data(sorted_data.begin(), sorted_data.end());
|
||||
|
||||
CHECK_EQUAL(compare_data.back(), data.back());
|
||||
}
|
||||
@ -678,8 +686,8 @@ namespace
|
||||
TEST_FIXTURE(SetupFixture, test_assignment)
|
||||
{
|
||||
CompareData compare_data(sorted_data.begin(), sorted_data.end());
|
||||
Data data(sorted_data.begin(), sorted_data.end());
|
||||
Data other_data;
|
||||
DataNDC data(sorted_data.begin(), sorted_data.end());
|
||||
DataNDC other_data;
|
||||
|
||||
other_data = data;
|
||||
|
||||
@ -694,7 +702,7 @@ namespace
|
||||
TEST_FIXTURE(SetupFixture, test_unique)
|
||||
{
|
||||
CompareData compare_data(non_unique_data.begin(), non_unique_data.end());
|
||||
Data data(non_unique_data.begin(), non_unique_data.end());
|
||||
DataNDC data(non_unique_data.begin(), non_unique_data.end());
|
||||
|
||||
compare_data.unique();
|
||||
data.unique();
|
||||
@ -708,10 +716,10 @@ namespace
|
||||
TEST_FIXTURE(SetupFixture, test_remove)
|
||||
{
|
||||
CompareData compare_data(sorted_data.begin(), sorted_data.end());
|
||||
Data data(sorted_data.begin(), sorted_data.end());
|
||||
DataNDC data(sorted_data.begin(), sorted_data.end());
|
||||
|
||||
compare_data.remove(7);
|
||||
data.remove(7);
|
||||
compare_data.remove(ItemNDC("7"));
|
||||
data.remove(ItemNDC("7"));
|
||||
|
||||
are_equal = std::equal(data.begin(), data.end(), compare_data.begin());
|
||||
|
||||
@ -722,10 +730,10 @@ namespace
|
||||
TEST_FIXTURE(SetupFixture, test_remove_if)
|
||||
{
|
||||
CompareData compare_data(sorted_data.begin(), sorted_data.end());
|
||||
Data data(sorted_data.begin(), sorted_data.end());
|
||||
DataNDC data(sorted_data.begin(), sorted_data.end());
|
||||
|
||||
compare_data.remove_if(std::bind2nd(std::equal_to<int>(), 7));
|
||||
data.remove_if(std::bind2nd(std::equal_to<int>(), 7));
|
||||
compare_data.remove_if(std::bind2nd(std::equal_to<ItemNDC>(), ItemNDC("7")));
|
||||
data.remove_if(std::bind2nd(std::equal_to<ItemNDC>(), ItemNDC("7")));
|
||||
|
||||
are_equal = std::equal(data.begin(), data.end(), compare_data.begin());
|
||||
|
||||
@ -736,7 +744,7 @@ namespace
|
||||
TEST_FIXTURE(SetupFixture, test_reverse)
|
||||
{
|
||||
CompareData compare_data(sorted_data.begin(), sorted_data.end());
|
||||
Data data(sorted_data.begin(), sorted_data.end());
|
||||
DataNDC data(sorted_data.begin(), sorted_data.end());
|
||||
|
||||
compare_data.reverse();
|
||||
data.reverse();
|
||||
@ -750,7 +758,7 @@ namespace
|
||||
TEST_FIXTURE(SetupFixture, test_sort)
|
||||
{
|
||||
CompareData compare_data(unsorted_data.begin(), unsorted_data.end());
|
||||
Data data(unsorted_data.begin(), unsorted_data.end());
|
||||
DataNDC data(unsorted_data.begin(), unsorted_data.end());
|
||||
|
||||
compare_data.sort();
|
||||
data.sort();
|
||||
@ -759,20 +767,5 @@ namespace
|
||||
|
||||
CHECK(are_equal);
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST_FIXTURE(SetupFixture, test_swap)
|
||||
{
|
||||
Data first(unsorted_data.begin(), unsorted_data.end());
|
||||
Data second(small_data.begin(), small_data.end());
|
||||
|
||||
swap(first, second);
|
||||
|
||||
are_equal = std::equal(first.begin(), first.end(), small_data.begin());
|
||||
CHECK(are_equal);
|
||||
|
||||
are_equal = std::equal(second.begin(), second.end(), unsorted_data.begin());
|
||||
CHECK(are_equal);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@ -26,13 +26,15 @@ SOFTWARE.
|
||||
|
||||
#include <UnitTest++/UnitTest++.h>
|
||||
|
||||
#include "data.h"
|
||||
|
||||
#include <set>
|
||||
#include <vector>
|
||||
|
||||
#include "../pool.h"
|
||||
|
||||
struct Test_Data
|
||||
{
|
||||
int i;
|
||||
char c;
|
||||
};
|
||||
typedef TestDataDC<std::string> Test_Data;
|
||||
typedef TestDataNDC<std::string> Test_Data2;
|
||||
|
||||
namespace
|
||||
{
|
||||
@ -133,7 +135,7 @@ namespace
|
||||
CHECK(p7 != p4);
|
||||
CHECK(p7 != p6);
|
||||
|
||||
CHECK(pool.empty());
|
||||
CHECK(pool.none_free());
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
@ -158,7 +160,7 @@ namespace
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_empty)
|
||||
TEST(test_none_free)
|
||||
{
|
||||
etl::pool<Test_Data, 4> pool;
|
||||
CHECK_EQUAL(4, pool.available());
|
||||
@ -166,16 +168,16 @@ namespace
|
||||
Test_Data* p;
|
||||
|
||||
p = pool.allocate();
|
||||
CHECK(!pool.empty());
|
||||
CHECK(!pool.none_free());
|
||||
|
||||
p = pool.allocate();
|
||||
CHECK(!pool.empty());
|
||||
CHECK(!pool.none_free());
|
||||
|
||||
p = pool.allocate();
|
||||
CHECK(!pool.empty());
|
||||
CHECK(!pool.none_free());
|
||||
|
||||
p = pool.allocate();
|
||||
CHECK(pool.empty());
|
||||
CHECK(pool.none_free());
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
@ -189,5 +191,54 @@ namespace
|
||||
CHECK(pool.is_in_pool(p1));
|
||||
CHECK(!pool.is_in_pool(not_in_pool));
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_const_iterator)
|
||||
{
|
||||
etl::pool<Test_Data2, 10> pool;
|
||||
|
||||
std::set<Test_Data2> compare = { Test_Data2("0"), Test_Data2("2"), Test_Data2("4"), Test_Data2("6"), Test_Data2("8") };
|
||||
std::set<Test_Data2> test;
|
||||
std::vector<Test_Data2*> objects;
|
||||
|
||||
// Build the set of objects.
|
||||
objects.push_back(pool.allocate(Test_Data2("9")));
|
||||
objects.push_back(pool.allocate(Test_Data2("7")));
|
||||
objects.push_back(pool.allocate(Test_Data2("8")));
|
||||
objects.push_back(pool.allocate(Test_Data2("6")));
|
||||
objects.push_back(pool.allocate(Test_Data2("5")));
|
||||
objects.push_back(pool.allocate(Test_Data2("3")));
|
||||
objects.push_back(pool.allocate(Test_Data2("4")));
|
||||
objects.push_back(pool.allocate(Test_Data2("2")));
|
||||
objects.push_back(pool.allocate(Test_Data2("0")));
|
||||
objects.push_back(pool.allocate(Test_Data2("1")));
|
||||
|
||||
// Release "1", "3", "5", "7", "9".
|
||||
pool.release(objects[0]);
|
||||
pool.release(objects[1]);
|
||||
pool.release(objects[4]);
|
||||
pool.release(objects[5]);
|
||||
pool.release(objects[9]);
|
||||
|
||||
// Fill the test set with what we get from the iterator.
|
||||
etl::pool<Test_Data2, 10>::const_iterator i_pool = pool.begin();
|
||||
|
||||
while (i_pool != pool.end())
|
||||
{
|
||||
test.insert(*i_pool);
|
||||
++i_pool;
|
||||
}
|
||||
|
||||
// Compare the results.
|
||||
std::set<Test_Data2>::const_iterator i_compare = compare.begin();
|
||||
std::set<Test_Data2>::const_iterator i_test = test.begin();
|
||||
|
||||
CHECK_EQUAL(compare.size(), test.size());
|
||||
|
||||
while ((i_compare != compare.end()) && (i_test != test.end()))
|
||||
{
|
||||
CHECK_EQUAL(*i_compare++, *i_test++);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user