summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/Jamfile.jam1
-rw-r--r--test/test-pack.cpp41
2 files changed, 42 insertions, 0 deletions
diff --git a/test/Jamfile.jam b/test/Jamfile.jam
index fb9a996..3b4e891 100644
--- a/test/Jamfile.jam
+++ b/test/Jamfile.jam
@@ -59,6 +59,7 @@ run perf-persistence.cpp : -- : test-persistence : <library>benchmark <library>t
run test-worker.cpp ;
run test-instancing.cpp : : : <library>test ;
run test-glContainer.cpp : : : <library>test ;
+run test-pack.cpp : : : <library>test ;
compile test-static-enumDetails.cpp ;
compile test-static-stream_support.cpp ;
explicit perf-assetFactory ;
diff --git a/test/test-pack.cpp b/test/test-pack.cpp
new file mode 100644
index 0000000..1f9f061
--- /dev/null
+++ b/test/test-pack.cpp
@@ -0,0 +1,41 @@
+#define BOOST_TEST_MODULE pack
+
+#include <boost/test/data/test_case.hpp>
+#include <boost/test/unit_test.hpp>
+
+#include "pack.h"
+#include <vector>
+
+using IntegerVectorPack = pack<int, std::vector>;
+
+BOOST_FIXTURE_TEST_SUITE(pint, IntegerVectorPack)
+
+BOOST_AUTO_TEST_CASE(basics)
+{
+ BOOST_CHECK_EQUAL(size(), 0);
+ BOOST_CHECK_NO_THROW(emplace(1));
+ BOOST_CHECK_NO_THROW(emplace(2));
+ BOOST_CHECK_NO_THROW(emplace(3));
+ BOOST_CHECK_NO_THROW(emplace(4));
+ BOOST_CHECK_EQUAL(size(), 4);
+ {
+ std::array expected1 {1, 2, 3, 4};
+ BOOST_CHECK_EQUAL_COLLECTIONS(begin(), end(), expected1.begin(), expected1.end());
+ }
+
+ BOOST_CHECK_NO_THROW(erase(begin() + 1));
+ BOOST_CHECK_EQUAL(size(), 3);
+ {
+ std::array expected1 {1, 4, 3};
+ BOOST_CHECK_EQUAL_COLLECTIONS(begin(), end(), expected1.begin(), expected1.end());
+ }
+
+ BOOST_CHECK_NO_THROW(erase(--end()));
+ BOOST_CHECK_EQUAL(size(), 2);
+ {
+ std::array expected1 {1, 4};
+ BOOST_CHECK_EQUAL_COLLECTIONS(begin(), end(), expected1.begin(), expected1.end());
+ }
+}
+
+BOOST_AUTO_TEST_SUITE_END()