From cb96278e25140cfcc1afc22df2102bcf3b6ae38c Mon Sep 17 00:00:00 2001 From: Oxore Date: Fri, 3 Jan 2025 17:07:00 +0300 Subject: Impl extended trace table format parser --- src/vec_tests.cpp | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 src/vec_tests.cpp (limited to 'src/vec_tests.cpp') 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 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 v{}; + v.PushBack(10); + Vec 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 vi{}; + vi.PushBack(10); + Vec> 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> 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); +} -- cgit v1.2.3