-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest.cpp
More file actions
69 lines (62 loc) · 1.67 KB
/
test.cpp
File metadata and controls
69 lines (62 loc) · 1.67 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#define CATCH_CONFIG_MAIN
#include "CVector.hpp"
#include "catch.hpp"
// TODO randomized testing
TEST_CASE("Integers are inserted and read", "[CVector]") {
int size_for_vector = 1000000;
auto v1 = CVector<int>(size_for_vector);
for (int i = 0; i < size_for_vector; i++) {
v1.set(i, i);
}
REQUIRE(v1.get(size_for_vector - 1) == size_for_vector - 1);
REQUIRE(v1.get(1) == 1);
REQUIRE(v1.get(0) == 0);
REQUIRE(v1.get(31) == 31);
REQUIRE(v1.get(1024) == 1024);
}
// TODO do more snapshot testing
TEST_CASE("Snapshot testing", "[CVector]") {
int size = 100000;
auto v1 = CVector<int>(size);
for (int i = 0; i < size; i++) {
v1.set(i, i);
}
auto v2 = v1.snapshot();
for (int i = 0; i < size; i++) {
v2.set(i, 2 * i);
}
REQUIRE(v1.get(size - 1) == size - 1);
REQUIRE(v1.get(1) == 1);
REQUIRE(v1.get(0) == 0);
REQUIRE(v1.get(31) == 31);
REQUIRE(v1.get(1024) == 1024);
REQUIRE(v2.get(size - 1) == 2 * (size - 1));
REQUIRE(v2.get(1) == 2 * 1);
REQUIRE(v2.get(0) == 0);
REQUIRE(v2.get(31) == 2 * 31);
REQUIRE(v2.get(1024) == 2 * 1024);
}
TEST_CASE("push_back", "[CVector]") {
auto v1 = CVector<int>();
int size = 10000;
for (int i = 0; i < size; i++) {
v1.push_back(i);
}
REQUIRE(v1.get(size - 1) == size - 1);
REQUIRE(v1.get(1) == 1);
REQUIRE(v1.get(0) == 0);
REQUIRE(v1.get(31) == 31);
REQUIRE(v1.get(1024) == 1024);
}
TEST_CASE("subscript operator", "[CVector]") {
int size = 10000;
auto v1 = CVector<int>(size);
for (int i = 0; i < size; i++) {
v1[i] = i;
}
REQUIRE(v1.get(size - 1) == size - 1);
REQUIRE(v1.get(1) == 1);
REQUIRE(v1.get(0) == 0);
REQUIRE(v1.get(31) == 31);
REQUIRE(v1.get(1024) == 1024);
}