MCPcopy Create free account
hub / github.com/SakuraEngine/SakuraEngine / template_test_vector

Function template_test_vector

tests/base/containers/test_vector.cpp:5–887  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3
4template <typename TestVector, typename ModifyCapacity, typename ClampCapacity, typename CheckData, typename CheckNoData, typename CheckDataEQ>
5void template_test_vector(ModifyCapacity&& capacity_of, ClampCapacity&& clamp_capacity, CheckData&& check_data, CheckNoData&& check_no_data, CheckDataEQ&& check_data_eq)
6{
7 using namespace skr;
8
9 SUBCASE("ctor")
10 {
11 TestVector a;
12 REQUIRE_EQ(a.size(), 0);
13 REQUIRE_EQ(a.capacity(), capacity_of(0));
14 check_no_data(a);
15
16 TestVector b(20);
17 REQUIRE_EQ(b.size(), 20);
18 REQUIRE_GE(b.capacity(), capacity_of(20));
19 check_data(b);
20
21 TestVector c(20, 114514);
22 REQUIRE_EQ(c.size(), 20);
23 REQUIRE_GE(c.capacity(), capacity_of(20));
24 check_data(c);
25 for (uint32_t i = 0; i < 20; ++i)
26 {
27 REQUIRE_EQ(c[i], 114514);
28 }
29
30 TestVector d(c.data(), c.size() - 5);
31 REQUIRE_EQ(d.size(), 15);
32 REQUIRE_GE(d.capacity(), capacity_of(15));
33 check_data(d);
34 for (uint32_t i = 0; i < 15; ++i)
35 {
36 REQUIRE_EQ(d[i], 114514);
37 }
38
39 TestVector e({ 1, 1, 4, 5, 1, 4 });
40 REQUIRE_EQ(e.size(), 6);
41 REQUIRE_GE(e.capacity(), capacity_of(6));
42 check_data(e);
43 REQUIRE_EQ(e[0], 1);
44 REQUIRE_EQ(e[1], 1);
45 REQUIRE_EQ(e[2], 4);
46 REQUIRE_EQ(e[3], 5);
47 REQUIRE_EQ(e[4], 1);
48 REQUIRE_EQ(e[5], 4);
49 }
50
51 SUBCASE("copy & move")
52 {
53 TestVector a(100, 114514);
54
55 TestVector b = a;
56 REQUIRE_EQ(b.size(), a.size());
57 REQUIRE_GE(b.capacity(), capacity_of(a.capacity()));
58 check_data(b);
59
60 auto old_size = a.size();
61 auto old_capacity = a.capacity();
62 auto old_data = a.data();

Callers

nothing calls this directly

Calls 15

add_uniqueMethod · 0.80
append_atMethod · 0.80
remove_all_swapMethod · 0.80
is_heapMethod · 0.80
heapifyMethod · 0.80
heap_popMethod · 0.80
heap_pop_getMethod · 0.80
heap_pushMethod · 0.80
heap_remove_atMethod · 0.80
heap_sortMethod · 0.80
moveFunction · 0.50
sizeMethod · 0.45

Tested by

no test coverage detected