| 671 | } |
| 672 | |
| 673 | void SC::VectorTest::testBasicType() |
| 674 | { |
| 675 | using namespace SC; |
| 676 | if (test_section("base_resize")) |
| 677 | { |
| 678 | Vector<int> elements; |
| 679 | SC_TEST_EXPECT(elements.size() == 0); |
| 680 | SC_TEST_EXPECT(elements.capacity() == 0); |
| 681 | SC_TEST_EXPECT(not elements.resize(INSANE_NUMBER)); |
| 682 | |
| 683 | SC_TEST_EXPECT(elements.resize(10, 11)); |
| 684 | elements[0] = -1; |
| 685 | size_t numFailures = 0; |
| 686 | for (size_t idx = 0; idx < elements.size(); ++idx) |
| 687 | { |
| 688 | if (elements[idx] != 11) |
| 689 | { |
| 690 | numFailures++; |
| 691 | } |
| 692 | elements[idx] = static_cast<int>(idx); |
| 693 | } |
| 694 | |
| 695 | SC_TEST_EXPECT(numFailures == 1); |
| 696 | |
| 697 | SC_TEST_EXPECT(not elements.resize(INSANE_NUMBER)); |
| 698 | SC_TEST_EXPECT(elements.size() == 10); |
| 699 | SC_TEST_EXPECT(elements.size() == elements.capacity()); |
| 700 | SC_TEST_EXPECT(elements.reserve(elements.capacity() + 1)); |
| 701 | |
| 702 | SC_TEST_EXPECT(elements.resize(20)); |
| 703 | elements[0] = -1; |
| 704 | numFailures = 0; |
| 705 | for (size_t idx = 0; idx < 10; ++idx) |
| 706 | { |
| 707 | if (elements[idx] != static_cast<int>(idx)) |
| 708 | { |
| 709 | numFailures++; |
| 710 | } |
| 711 | } |
| 712 | SC_TEST_EXPECT(numFailures == 1); |
| 713 | numFailures = 0; |
| 714 | elements[10] = -1; |
| 715 | for (size_t idx = 10; idx < 20; ++idx) |
| 716 | { |
| 717 | if (elements[idx] != 0) |
| 718 | { |
| 719 | numFailures++; |
| 720 | } |
| 721 | } |
| 722 | SC_TEST_EXPECT(numFailures == 1); |
| 723 | SC_TEST_EXPECT(elements.resize(5)); |
| 724 | SC_TEST_EXPECT(elements.size() == 5); |
| 725 | SC_TEST_EXPECT(elements.capacity() == 20); |
| 726 | SC_TEST_EXPECT(elements.shrink_to_fit()); |
| 727 | for (size_t idx = 0; idx < elements.size(); ++idx) |
| 728 | { |
| 729 | if (elements[idx] != static_cast<int>(idx)) |
| 730 | { |
nothing calls this directly
no test coverage detected