Skip to content

Commit 3fb5f3d

Browse files
authored
Merge pull request #1282 from SekaiArendelle/vec-tests
test(vector): add assertions and fix minor issues in test suite
2 parents 687e68c + 431d4ce commit 3fb5f3d

30 files changed

Lines changed: 199 additions & 67 deletions
Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
#include <cassert>
21
#include <algorithm>
32
#include <list>
43
#include <fast_io.h>
@@ -8,10 +7,8 @@ using namespace fast_io::mnp;
87

98
int main()
109
{
11-
#if 0
1210
auto head = fast_io::vector<int>{1, 2, 3, 4};
1311
auto const tail = std::list{-5, -6, -7};
1412
head.append_range(tail);
15-
assert(std::ranges::equal(head, fast_io::vector<int>{1, 2, 3, 4, -5, -6, -7}));
16-
#endif
17-
}
13+
if (!(std::ranges::equal(head, fast_io::vector<int>{1, 2, 3, 4, -5, -6, -7}))) ::fast_io::fast_terminate();
14+
}

tests/0026.container/0001.vector/assign.cc

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#include <string>
1+
#include <string>
22
#include <fast_io.h>
33
#include <fast_io_dsal/vector.h>
44
using namespace fast_io::io;
@@ -18,6 +18,11 @@ int main()
1818
};
1919

2020
characters.assign(5, 'a');
21+
if (!(characters.size() == 5)) ::fast_io::fast_terminate();
22+
for (char c : characters)
23+
{
24+
if (!(c == 'a')) ::fast_io::fast_terminate();
25+
}
2126
print_vector();
2227

2328
#if 0
Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
#include <algorithm>
2-
#include <cassert>
1+
#include <algorithm>
32
#include <list>
43
#include <fast_io.h>
54
#include <fast_io_dsal/vector.h>
@@ -10,6 +9,6 @@ int main()
109
auto const source = std::list{2, 7, 1};
1110
auto destination = fast_io::vector{3, 1, 4};
1211
destination.assign_range(source);
13-
assert(std::ranges::equal(source, destination));
12+
if (!(std::ranges::equal(source, destination))) ::fast_io::fast_terminate();
1413
#endif
1514
}
Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#include <fast_io.h>
1+
#include <fast_io.h>
22
#include <fast_io_dsal/vector.h>
33
using namespace fast_io::io;
44
using namespace fast_io::mnp;
@@ -9,6 +9,7 @@ int main()
99

1010
if (!letters.empty())
1111
{
12-
print("The first character is '", chvw(letters.back()), "'.\n");
12+
print("The last character is '", chvw(letters.back()), "'.\n");
1313
}
14-
}
14+
if (!(letters.back() == 'f')) ::fast_io::fast_terminate();
15+
}

tests/0026.container/0001.vector/begin.cc

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#include <algorithm>
1+
#include <algorithm>
22
#include <numeric>
33
#include <string>
44
#include <fast_io.h>
@@ -17,17 +17,20 @@ int main()
1717
print("\n");
1818

1919
// Sums all integers in the vector nums (if any), printing only the result.
20-
println("Sum of nums: ",
21-
std::accumulate(nums.begin(), nums.end(), 0));
20+
auto const sum = std::accumulate(nums.begin(), nums.end(), 0);
21+
println("Sum of nums: ", sum);
22+
if (!(sum == 31)) ::fast_io::fast_terminate();
2223

2324
// Prints the first fruit in the vector fruits, checking if there is any.
2425
if (!fruits.empty())
2526
{
2627
println("First fruit: ", *fruits.begin());
28+
if (!(*fruits.begin() == "orange")) ::fast_io::fast_terminate();
2729
}
2830

2931
if (empty.begin() == empty.end())
3032
{
3133
print("vector 'empty' is indeed empty.\n");
3234
}
33-
}
35+
if (!(empty.begin() == empty.end())) ::fast_io::fast_terminate();
36+
}

tests/0026.container/0001.vector/capacity.cc

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#include <fast_io.h>
1+
#include <fast_io.h>
22
#include <fast_io_dsal/vector.h>
33
using namespace fast_io::io;
44
using namespace fast_io::mnp;
@@ -10,18 +10,22 @@ int main()
1010

1111
auto cap = v.capacity();
1212
println("Initial size: ", v.size(), ", capacity: ", cap);
13+
if (!(v.size() == 0)) ::fast_io::fast_terminate();
14+
if (!(v.capacity() == 0)) ::fast_io::fast_terminate();
1315

14-
print("\nDemonstrate the capacity's growth policy."
16+
print("\nDemonstrate the capacity'\''s growth policy."
1517
"\nSize: Capacity: Ratio:\n");
1618
while (sz-- > 0)
1719
{
1820
v.push_back(sz);
1921
if (cap != v.capacity())
2022
{
2123
println(left(v.size(), 7), left(v.capacity(), 11), left(float(v.capacity()) / static_cast<float>(cap), 10));
24+
if (!(v.capacity() > cap)) ::fast_io::fast_terminate();
2225
cap = v.capacity();
2326
}
2427
}
2528

2629
println("\nFinal size: ", v.size(), ", capacity: ", v.capacity());
30+
if (!(v.size() == 100)) ::fast_io::fast_terminate();
2731
}

tests/0026.container/0001.vector/clear.cc

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#include <string_view>
1+
#include <string_view>
22
#include <fast_io.h>
33
#include <fast_io_dsal/vector.h>
44
using namespace fast_io::io;
@@ -13,6 +13,10 @@ int main()
1313
{
1414
fast_io::vector<int> container{1, 2, 3};
1515
print_info("Before clear: ", container);
16+
if (!(!container.empty())) ::fast_io::fast_terminate();
17+
if (!(container.size() == 3)) ::fast_io::fast_terminate();
1618
container.clear();
1719
print_info("After clear: ", container);
18-
}
20+
if (!(container.empty())) ::fast_io::fast_terminate();
21+
if (!(container.size() == 0)) ::fast_io::fast_terminate();
22+
}

tests/0026.container/0001.vector/data.cc

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#include <cstddef>
1+
#include <cstddef>
22
#include <span>
33
#include <fast_io.h>
44
#include <fast_io_dsal/vector.h>
@@ -29,4 +29,9 @@ int main()
2929

3030
// std::span (C++20) is a safer alternative to separated pointer/size.
3131
span_func({container.data(), container.size()});
32-
}
32+
33+
if (!(container.data()[0] == 1)) ::fast_io::fast_terminate();
34+
if (!(container.data()[1] == 2)) ::fast_io::fast_terminate();
35+
if (!(container.data()[2] == 3)) ::fast_io::fast_terminate();
36+
if (!(container.data()[3] == 4)) ::fast_io::fast_terminate();
37+
}

tests/0026.container/0001.vector/emplace.cc

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#include <algorithm>
1+
#include <algorithm>
22
#include <ranges>
33
#include <string>
44
#include <fast_io.h>
@@ -62,4 +62,8 @@ int main()
6262
container.emplace(container.end(), std::move(three));
6363

6464
println("content:\n ", rgvw(container | std::views::transform([](auto const &a) { return a.s; }), " "));
65+
if (!(container.size() == 3)) ::fast_io::fast_terminate();
66+
if (!(container[0].s == "one")) ::fast_io::fast_terminate();
67+
if (!(container[1].s == "two")) ::fast_io::fast_terminate();
68+
if (!(container[2].s == "three")) ::fast_io::fast_terminate();
6569
}

tests/0026.container/0001.vector/emplace_index.cc

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
#include <algorithm>
2-
#include <ranges>
3-
#include <string>
41
#include <fast_io.h>
52
#include <fast_io_dsal/vector.h>
63
using namespace fast_io::io;
@@ -13,6 +10,13 @@ int main()
1310
vec.emplace_index(0,6);
1411
vec.emplace_index(0,8);
1512
vec.erase_index(0);
13+
// After push_back(4): [4]
14+
// After emplace_index(0,6): [6,4]
15+
// After emplace_index(0,8): [8,6,4]
16+
// After erase_index(0): [6,4]
17+
if (!(vec.size() == 2)) ::fast_io::fast_terminate();
18+
if (!(vec[0] == 6)) ::fast_io::fast_terminate();
19+
if (!(vec[1] == 4)) ::fast_io::fast_terminate();
1620
for(auto const & e : vec)
1721
{
1822
::fast_io::io::println(e);

0 commit comments

Comments
 (0)