⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 common.ipp

📁 Boost provides free peer-reviewed portable C++ source libraries. We emphasize libraries that work
💻 IPP
📖 第 1 页 / 共 4 页
字号:
    BOOST_CHECK(it3 == cb3.end());    BOOST_CHECK(cb3[0] == 1);    BOOST_CHECK(cb3[1] == 2);    generic_test(cb1);    generic_test(cb2);    generic_test(cb3);}void erase_range_test() {    CB_CONTAINER<MyInteger> cb1(4);    cb1.push_back(1);    cb1.push_back(2);    cb1.push_back(3);    cb1.push_back(4);    CB_CONTAINER<MyInteger>::iterator it1 = cb1.erase(cb1.begin() + 1, cb1.begin() + 3);    CB_CONTAINER<MyInteger> cb2(4);    cb2.push_back(1);    cb2.push_back(2);    cb2.push_back(3);    cb2.push_back(4);    CB_CONTAINER<MyInteger>::iterator it2 = cb2.erase(cb2.begin(), cb2.begin());    CB_CONTAINER<MyInteger> cb3(4);    cb3.push_back(1);    cb3.push_back(2);    cb3.push_back(3);    cb3.push_back(4);    CB_CONTAINER<MyInteger>::iterator it3 = cb3.erase(cb3.begin() + 2, cb3.end());    CB_CONTAINER<MyInteger> cb4(10, 1);    CB_CONTAINER<MyInteger>::iterator it4 = cb4.erase(cb4.begin(), cb4.end());    BOOST_CHECK(cb1.size() == 2);    BOOST_CHECK(cb1.capacity() == 4);    BOOST_CHECK(cb1[0] == 1);    BOOST_CHECK(cb1[1] == 4);    BOOST_CHECK(*it1 == 4);    BOOST_CHECK(cb2.size() == 4);    BOOST_CHECK(cb2[0] == 1);    BOOST_CHECK(cb2[3] == 4);    BOOST_CHECK(*it2 == 1);    BOOST_CHECK(cb3.size() == 2);    BOOST_CHECK(cb3.capacity() == 4);    BOOST_CHECK(cb3[0] == 1);    BOOST_CHECK(cb3[1] == 2);    BOOST_CHECK(it3 == cb3.end());    BOOST_CHECK(cb4.size() == 0);    BOOST_CHECK(cb4.capacity() == 10);    BOOST_CHECK(it4 == cb4.end());    generic_test(cb1);    generic_test(cb2);    generic_test(cb3);    generic_test(cb4);}void rerase_test() {    CB_CONTAINER<MyInteger> cb1(4);    cb1.push_back(1);    cb1.push_back(2);    cb1.push_back(3);    CB_CONTAINER<MyInteger>::iterator it1 = cb1.rerase(cb1.begin() + 1);    CB_CONTAINER<MyInteger> cb2(1, 1);    CB_CONTAINER<MyInteger>::iterator it2 = cb2.rerase(cb2.begin());    CB_CONTAINER<MyInteger> cb3(4);    cb3.push_back(1);    cb3.push_back(2);    cb3.push_back(3);    CB_CONTAINER<MyInteger>::iterator it3 = cb3.rerase(cb3.begin());    BOOST_CHECK(cb1.size() == 2);    BOOST_CHECK(cb1.capacity() == 4);    BOOST_CHECK(*it1 == 1);    BOOST_CHECK(cb1[0] == 1);    BOOST_CHECK(cb1[1] == 3);    BOOST_CHECK(cb2.size() == 0);    BOOST_CHECK(cb2.capacity() == 1);    BOOST_CHECK(it2 == cb2.begin());    BOOST_CHECK(cb3.size() == 2);    BOOST_CHECK(cb3.capacity() == 4);    BOOST_CHECK(it3 == cb3.begin());    BOOST_CHECK(*it3 == 2);    BOOST_CHECK(cb3[0] == 2);    BOOST_CHECK(cb3[1] == 3);    generic_test(cb1);    generic_test(cb2);    generic_test(cb3);}void rerase_range_test() {    CB_CONTAINER<MyInteger> cb1(4);    cb1.push_back(1);    cb1.push_back(2);    cb1.push_back(3);    cb1.push_back(4);    CB_CONTAINER<MyInteger>::iterator it1 = cb1.rerase(cb1.begin() + 1, cb1.begin() + 3);    CB_CONTAINER<MyInteger> cb2(4);    cb2.push_back(1);    cb2.push_back(2);    cb2.push_back(3);    cb2.push_back(4);    CB_CONTAINER<MyInteger>::iterator it2 = cb2.rerase(cb2.begin(), cb2.begin());    CB_CONTAINER<MyInteger> cb3(4);    cb3.push_back(1);    cb3.push_back(2);    cb3.push_back(3);    cb3.push_back(4);    CB_CONTAINER<MyInteger>::iterator it3 = cb3.rerase(cb3.begin(), cb3.begin() + 2);    CB_CONTAINER<MyInteger> cb4(10, 1);    CB_CONTAINER<MyInteger>::iterator it4 = cb4.rerase(cb4.begin(), cb4.end());    BOOST_CHECK(cb1.size() == 2);    BOOST_CHECK(cb1.capacity() == 4);    BOOST_CHECK(cb1[0] == 1);    BOOST_CHECK(cb1[1] == 4);    BOOST_CHECK(*it1 == 1);    BOOST_CHECK(cb2.size() == 4);    BOOST_CHECK(cb2[0] == 1);    BOOST_CHECK(cb2[3] == 4);    BOOST_CHECK(*it2 == 1);    BOOST_CHECK(cb3.size() == 2);    BOOST_CHECK(cb3.capacity() == 4);    BOOST_CHECK(cb3[0] == 3);    BOOST_CHECK(cb3[1] == 4);    BOOST_CHECK(it3 == cb3.begin());    BOOST_CHECK(cb4.size() == 0);    BOOST_CHECK(cb4.capacity() == 10);    BOOST_CHECK(it4 == cb4.begin());    generic_test(cb1);    generic_test(cb2);    generic_test(cb3);    generic_test(cb4);}void clear_test() {    CB_CONTAINER<MyInteger> cb(4);    cb.push_back(1);    cb.push_back(2);    cb.push_back(3);    cb.push_back(4);    cb.clear();    BOOST_CHECK(cb.empty());    generic_test(cb);}void equality_test() {    CB_CONTAINER<MyInteger> cb1(4);    cb1.push_back(1);    cb1.push_back(2);    cb1.push_back(3);    cb1.push_back(4);    CB_CONTAINER<MyInteger> cb2(10);    cb2.push_back(1);    cb2.push_back(2);    cb2.push_back(3);    cb2.push_back(4);    BOOST_CHECK(cb1 == cb2);    BOOST_CHECK(!(cb2 != cb1));    generic_test(cb1);    generic_test(cb2);}void lexicographical_comparison_test() {    CB_CONTAINER<char> cb1(10);    cb1.push_back('a');    cb1.push_back('d');    cb1.push_back('a');    cb1.push_back('m');    CB_CONTAINER<char> cb2(5);    cb2.push_back('j');    cb2.push_back('o');    cb2.push_back('h');    cb2.push_back('n');    BOOST_CHECK(cb2 > cb1);    BOOST_CHECK(cb1 < cb2);}void assign_range_test() {    vector<int> v;    v.push_back(11);    v.push_back(12);    v.push_back(13);    CB_CONTAINER<MyInteger> cb1(4);    cb1.push_back(1);    cb1.push_back(2);    cb1.push_back(3);    cb1.assign(v.begin() + 1, v.end());    CB_CONTAINER<MyInteger> cb2(2);    cb2.push_back(1);    cb2.push_back(2);    cb2.assign(v.begin(), v.end());    BOOST_CHECK(cb1.capacity() == 2);    BOOST_CHECK(cb1[0] == 12);    BOOST_CHECK(cb1[1] == 13);    BOOST_CHECK(cb2.full());    BOOST_CHECK(cb2.capacity() == 3);    BOOST_CHECK(cb2[0] == 11);    BOOST_CHECK(cb2[1] == 12);    BOOST_CHECK(cb2[2] == 13);    BOOST_CHECK(cb2.size() == (size_t)distance(v.begin(), v.end()));    generic_test(cb1);    generic_test(cb2);}// test of the example (introduced in the documentation)void example_test() {    CB_CONTAINER<int> cb1(3);    cb1.push_back(1);    cb1.push_back(2);    BOOST_CHECK(cb1[0] == 1);    BOOST_CHECK(cb1[1] == 2);    BOOST_CHECK(!cb1.full());    BOOST_CHECK(cb1.size() == 2);    BOOST_CHECK(cb1.capacity() == 3);    cb1.push_back(3);    cb1.push_back(4);    int sum = accumulate(cb1.begin(), cb1.end(), 0);    BOOST_CHECK(cb1[0] == 2);    BOOST_CHECK(cb1[1] == 3);    BOOST_CHECK(cb1[2] == 4);    BOOST_CHECK(*cb1.begin() == 2);    BOOST_CHECK(cb1.front() == 2);    BOOST_CHECK(cb1.back() == 4);    BOOST_CHECK(sum == 9);    BOOST_CHECK(cb1.full());    BOOST_CHECK(cb1.size() == 3);    BOOST_CHECK(cb1.capacity() == 3);    CB_CONTAINER<int> cb2(5, 1);    cb2.insert(cb2.begin(), 2);    BOOST_CHECK(cb2[0] == 1);    BOOST_CHECK(cb2[1] == 1);    BOOST_CHECK(cb2[2] == 1);    BOOST_CHECK(cb2[3] == 1);    BOOST_CHECK(cb2[4] == 1);    vector<int> v;    v.push_back(100);    v.push_back(200);    v.push_back(300);    cb2.insert(cb2.begin() + 1, v.begin(), v.end());    BOOST_CHECK(cb2[0] == 300);    BOOST_CHECK(cb2[1] == 1);    BOOST_CHECK(cb2[2] == 1);    BOOST_CHECK(cb2[3] == 1);    BOOST_CHECK(cb2[4] == 1);    CB_CONTAINER<int> cb3(3);    cb3.push_back(1);    cb3.push_back(2);    cb3.push_back(3);    BOOST_CHECK(cb3[0] == 1);    BOOST_CHECK(cb3[1] == 2);    BOOST_CHECK(cb3[2] == 3);    cb3.push_back(4);    cb3.push_back(5);    BOOST_CHECK(cb3[0] == 3);    BOOST_CHECK(cb3[1] == 4);    BOOST_CHECK(cb3[2] == 5);    cb3.pop_back();    cb3.pop_front();    BOOST_CHECK(cb3[0] == 4);}void element_destruction_test() {    CB_CONTAINER<InstanceCounter> cb(5);    cb.push_back(InstanceCounter());    cb.push_back(InstanceCounter());    cb.push_back(InstanceCounter());    int prevCount = InstanceCounter::count();    cb.clear();    BOOST_CHECK(cb.empty());    BOOST_CHECK(prevCount == 3);    BOOST_CHECK(InstanceCounter::count() == 0);}void const_methods_test() {    vector<int> v;    v.push_back(1);    v.push_back(2);    v.push_back(3);    v.push_back(4);    v.push_back(5);    const CB_CONTAINER<MyInteger> cb(5, v.begin(), v.end());    BOOST_CHECK(*cb.begin() == 1);    BOOST_CHECK(*(cb.end() - 1) == 5);    BOOST_CHECK(*cb.rbegin() == 5);    BOOST_CHECK(*(cb.rend() - 1) == 1);    BOOST_CHECK(cb[0] == 1);    BOOST_CHECK(cb.at(1) == 2);    BOOST_CHECK(cb.front() == 1);    BOOST_CHECK(cb.back() == 5);}void rotate_test() {    CB_CONTAINER<MyInteger> cb1(10);    cb1.push_back(1);    cb1.push_back(2);    cb1.push_back(3);    cb1.push_back(4);    cb1.push_back(5);    cb1.push_back(6);    cb1.push_back(7);    CB_CONTAINER<MyInteger> cb2 = cb1;    CB_CONTAINER<MyInteger>::iterator it1 = cb1.begin() + 2;    int v1_0 = *it1;    int v1_1 = *(it1 + 1);    int v1_2 = *(it1 + 2);    int v1_3 = *(it1 + 3);    int v1_4 = *(it1 + 4);    int v1_r1 = *(it1 - 1);    int v1_r2 = *(it1 - 2);    cb1.rotate(it1);    rotate(cb2.begin(), cb2.begin() + 2, cb2.end());    CB_CONTAINER<MyInteger> cb3(7);    cb3.push_back(1);    cb3.push_back(2);    cb3.push_back(3);    cb3.push_back(4);    cb3.push_back(5);    cb3.push_back(6);    cb3.push_back(7);    cb3.push_back(8);    cb3.push_back(9);    CB_CONTAINER<MyInteger> cb4 = cb3;    CB_CONTAINER<MyInteger>::iterator it2 = cb3.begin() + 1;    int v2_0 = *it2;    int v2_1 = *(it2 + 1);    int v2_2 = *(it2 + 2);    int v2_3 = *(it2 + 3);    int v2_4 = *(it2 + 4);    int v2_5 = *(it2 + 5);    int v2_r1 = *(it2 - 1);    cb3.rotate(it2);    rotate(cb4.begin(), cb4.begin() + 1, cb4.end());    CB_CONTAINER<MyInteger> cb5(10);    cb5.push_back(1);    cb5.push_back(2);    cb5.push_back(3);    cb5.push_back(4);    cb5.push_back(5);    cb5.push_back(6);    cb5.push_back(7);    CB_CONTAINER<MyInteger> cb6 = cb5;    CB_CONTAINER<MyInteger>::iterator it3 = cb5.begin() + 5;    int v3_0 = *it3;    int v3_1 = *(it3 + 1);    int v3_r1 = *(it3 - 1);    int v3_r2 = *(it3 - 2);    int v3_r3 = *(it3 - 3);    int v3_r4 = *(it3 - 4);    int v3_r5 = *(it3 - 5);    cb5.rotate(it3);    rotate(cb6.begin(), cb6.begin() + 5, cb6.end());    BOOST_CHECK(!cb1.full());    BOOST_CHECK(cb1 == cb2);    BOOST_CHECK(v1_0 == *it1);    BOOST_CHECK(v1_1 == *(it1 + 1));    BOOST_CHECK(v1_2 == *(it1 + 2));    BOOST_CHECK(v1_3 == *(it1 + 3));    BOOST_CHECK(v1_4 == *(it1 + 4));    BOOST_CHECK(v1_r1 == *(it1 + 6));    BOOST_CHECK(v1_r2 == *(it1 + 5));    BOOST_CHECK(cb1.begin() == it1);    BOOST_CHECK(v1_0 == cb1[0]);    BOOST_CHECK(v1_1 == cb1[1]);    BOOST_CHECK(v1_2 == cb1[2]);    BOOST_CHECK(v1_3 == cb1[3]);    BOOST_CHECK(v1_4 == cb1[4]);    BOOST_CHECK(v1_r1 == cb1[6]);    BOOST_CHECK(v1_r2 == cb1[5]);    BOOST_CHECK(cb3.full());    BOOST_CHECK(cb3 == cb4);    BOOST_CHECK(v2_0 == *it2);    BOOST_CHECK(v2_1 == *(it2 + 1));    BOOST_CHECK(v2_2 == *(it2 + 2));    BOOST_CHECK(v2_3 == *(it2 + 3));    BOOST_CHECK(v2_4 == *(it2 + 4));    BOOST_CHECK(v2_5 == *(it2 + 5));    BOOST_CHECK(v2_r1 == *(it2 + 6));    BOOST_CHECK(cb3.begin() == it2);    BOOST_CHECK(v2_0 == cb3[0]);    BOOST_CHECK(v2_1 == cb3[1]);    BOOST_CHECK(v2_2 == cb3[2]);    BOOST_CHECK(v2_3 == cb3[3]);    BOOST_CHECK(v2_4 == cb3[4]);    BOOST_CHECK(v2_5 == cb3[5]);    BOOST_CHECK(v2_r1 == cb3[6]);    BOOST_CHECK(!cb5.full());    BOOST_CHECK(cb5 == cb6);    BOOST_CHECK(v3_0 == cb5[0]);    BOOST_CHECK(v3_1 == cb5[1]);    BOOST_CHECK(v3_r1 == cb5[6]);    BOOST_CHECK(v3_r2 == cb5[5]);    BOOST_CHECK(v3_r3 == cb5[4]);    BOOST_CHECK(v3_r4 == cb5[3]);    BOOST_CHECK(v3_r5 == cb5[2]);    generic_test(cb1);    generic_test(cb2);    generic_test(cb3);    generic_test(cb4);    generic_test(cb5);    generic_test(cb6);}int MyInteger::ms_exception_trigger = 0;int InstanceCounter::ms_count = 0;// add common tests into a test suitevoid add_common_tests(test_suite* tests) {    tests->add(BOOST_TEST_CASE(&basic_test));    tests->add(BOOST_TEST_CASE(&constructor_and_element_access_test));    tests->add(BOOST_TEST_CASE(&size_test));    tests->add(BOOST_TEST_CASE(&allocator_test));    tests->add(BOOST_TEST_CASE(&begin_and_end_test));    tests->add(BOOST_TEST_CASE(&rbegin_and_rend_test));    tests->add(BOOST_TEST_CASE(&element_access_and_insert_test));    tests->add(BOOST_TEST_CASE(&at_test));    tests->add(BOOST_TEST_CASE(&front_and_back_test));    tests->add(BOOST_TEST_CASE(&linearize_test));    tests->add(BOOST_TEST_CASE(&array_range_test));    tests->add(BOOST_TEST_CASE(&capacity_and_reserve_test));    tests->add(BOOST_TEST_CASE(&full_and_empty_test));    tests->add(BOOST_TEST_CASE(&set_capacity_test));    tests->add(BOOST_TEST_CASE(&rset_capacity_test));    tests->add(BOOST_TEST_CASE(&resize_test));    tests->add(BOOST_TEST_CASE(&rresize_test));    tests->add(BOOST_TEST_CASE(&constructor_test));    tests->add(BOOST_TEST_CASE(&assign_test));    tests->add(BOOST_TEST_CASE(&copy_constructor_and_assign_test));    tests->add(BOOST_TEST_CASE(&swap_test));    tests->add(BOOST_TEST_CASE(&push_back_test));    tests->add(BOOST_TEST_CASE(&pop_back_test));    tests->add(BOOST_TEST_CASE(&insert_test));    tests->add(BOOST_TEST_CASE(&insert_n_test));    tests->add(BOOST_TEST_CASE(&insert_range_test));    tests->add(BOOST_TEST_CASE(&push_front_test));    tests->add(BOOST_TEST_CASE(&pop_front_test));    tests->add(BOOST_TEST_CASE(&rinsert_test));    tests->add(BOOST_TEST_CASE(&rinsert_n_test));    tests->add(BOOST_TEST_CASE(&rinsert_range_test));    tests->add(BOOST_TEST_CASE(&erase_test));    tests->add(BOOST_TEST_CASE(&erase_range_test));    tests->add(BOOST_TEST_CASE(&rerase_test));    tests->add(BOOST_TEST_CASE(&rerase_range_test));    tests->add(BOOST_TEST_CASE(&clear_test));    tests->add(BOOST_TEST_CASE(&equality_test));    tests->add(BOOST_TEST_CASE(&lexicographical_comparison_test));    tests->add(BOOST_TEST_CASE(&assign_range_test));    tests->add(BOOST_TEST_CASE(&example_test));    tests->add(BOOST_TEST_CASE(&element_destruction_test));    tests->add(BOOST_TEST_CASE(&const_methods_test));    tests->add(BOOST_TEST_CASE(&rotate_test));}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -