diff options
author | Oxore <oxore@protonmail.com> | 2025-01-03 17:07:00 +0300 |
---|---|---|
committer | Oxore <oxore@protonmail.com> | 2025-01-07 14:39:01 +0300 |
commit | cb96278e25140cfcc1afc22df2102bcf3b6ae38c (patch) | |
tree | 9e93bd8a5fb4d5fbc177924b6b25ca8cd04e7fd7 /src/vec_tests.cpp | |
parent | 810dc87cd5173f8cfc81c774fd49cf8f928a9ae8 (diff) |
Impl extended trace table format parser
Diffstat (limited to 'src/vec_tests.cpp')
-rw-r--r-- | src/vec_tests.cpp | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/src/vec_tests.cpp b/src/vec_tests.cpp new file mode 100644 index 0000000..d3a4b6f --- /dev/null +++ b/src/vec_tests.cpp @@ -0,0 +1,50 @@ +/* SPDX-License-Identifier: Unlicense + */ + +#include "vec.h" +#include "doctest/doctest.h" + +TEST_CASE("Push, access and pop trivial data") { + Vec<int> v{}; + CHECK_EQ(v.Size(), 0); + v.PushBack(10); + v.PushBack(11); + v.PushBack(12); + CHECK_EQ(v.Size(), 3); + CHECK_EQ(10, v[0]); + CHECK_EQ(11, v[1]); + CHECK_EQ(12, v[2]); + CHECK_EQ(12, v.PopBack()); + CHECK_EQ(11, v.PopBack()); + CHECK_EQ(10, v.PopBack()); + CHECK_EQ(v.Size(), 0); +} + +TEST_CASE("Copy constructor should copy") { + Vec<int> v{}; + v.PushBack(10); + Vec<int> v2(v); + CHECK_EQ(v2.Size(), 1); + CHECK_EQ(10, v[0]); + CHECK_EQ(v.Size(), 1); + CHECK_EQ(10, v[0]); + CHECK_EQ(v, v2); +} + +TEST_CASE("Push, access and pop vec of vecs") { + Vec<int> vi{}; + vi.PushBack(10); + Vec<Vec<int>> vv{}; + CHECK_EQ(vv.Size(), 0); + vv.PushBack(vi); + vv.PushBack(vi); + CHECK_EQ(vv.Size(), 2); + CHECK_EQ(vi, vv[1]); + CHECK_EQ(vi, vv[0]); + Vec<Vec<int>> vv2{vv}; + CHECK_EQ(vi.Size(), vv[0].Size()); + CHECK_EQ(vi, vv[0]); + const auto popvi = vv.PopBack(); + CHECK_EQ(vi.Size(), popvi.Size()); + CHECK_EQ(vv2.Size(), 2); +} |