summaryrefslogtreecommitdiff
path: root/asl/tests/span_tests.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'asl/tests/span_tests.cpp')
-rw-r--r--asl/tests/span_tests.cpp28
1 files changed, 28 insertions, 0 deletions
diff --git a/asl/tests/span_tests.cpp b/asl/tests/span_tests.cpp
new file mode 100644
index 0000000..276d50a
--- /dev/null
+++ b/asl/tests/span_tests.cpp
@@ -0,0 +1,28 @@
+#include "asl/span.hpp"
+#include "asl/testing/testing.hpp"
+#include "asl/tests/test_types.hpp"
+
+static_assert(asl::trivially_destructible<asl::span<int>>);
+static_assert(asl::trivially_destructible<asl::span<HasDestructor>>);
+
+static_assert(asl::trivially_copyable<asl::span<int>>);
+static_assert(asl::trivially_copyable<asl::span<NonCopyConstructible>>);
+
+static_assert(asl::size_of<asl::span<int>> == asl::size_of<void*> * 2);
+static_assert(asl::size_of<asl::span<int, 2>> == asl::size_of<void*>);
+
+ASL_TEST(empty_dynamic)
+{
+ asl::span<int> s;
+ ASL_TEST_EXPECT(s.size() == 0);
+ ASL_TEST_EXPECT(s.size_bytes() == 0);
+ ASL_TEST_EXPECT(s.is_empty());
+}
+
+ASL_TEST(empty_static)
+{
+ asl::span<int, 0> s;
+ ASL_TEST_EXPECT(s.size() == 0);
+ ASL_TEST_EXPECT(s.size_bytes() == 0);
+ ASL_TEST_EXPECT(s.is_empty());
+}