From a141c401f78467bc15f62882fca5d55a007cacbb Mon Sep 17 00:00:00 2001 From: Steven Le Rouzic Date: Mon, 17 Feb 2025 00:21:48 +0100 Subject: Reorganize everything --- asl/tests/box_tests.cpp | 102 ------------------------------------------------ 1 file changed, 102 deletions(-) delete mode 100644 asl/tests/box_tests.cpp (limited to 'asl/tests/box_tests.cpp') diff --git a/asl/tests/box_tests.cpp b/asl/tests/box_tests.cpp deleted file mode 100644 index 3faf121..0000000 --- a/asl/tests/box_tests.cpp +++ /dev/null @@ -1,102 +0,0 @@ -#include "asl/box.hpp" -#include "asl/option.hpp" - -#include "asl/testing/testing.hpp" -#include "asl/tests/test_types.hpp" - -static_assert(sizeof(asl::box) == sizeof(int*)); -static_assert(!asl::copyable>); -static_assert(asl::moveable>); -static_assert(asl::has_niche>); -static_assert(sizeof(asl::option>) == sizeof(int*)); - -ASL_TEST(destructor) -{ - bool d = false; - - { - auto box = asl::make_box(&d); - ASL_TEST_ASSERT(!d); - - - auto box3 = ASL_MOVE(box); - ASL_TEST_ASSERT(!d); - } - - ASL_TEST_ASSERT(d); -} - -ASL_TEST(value) -{ - auto b = asl::make_box(24); - ASL_TEST_EXPECT(*b == 24); - - auto b2 = ASL_MOVE(b); - ASL_TEST_EXPECT(*b2 == 24); -} - -ASL_TEST(ptr) -{ - auto b = asl::make_box(24); - auto* ptr1 = b.get(); - - auto b2 = ASL_MOVE(b); - auto* ptr2 = b2.get(); - ASL_TEST_EXPECT(ptr1 == ptr2); -} - -struct Struct { int a; }; - -ASL_TEST(arrow) -{ - auto b = asl::make_box(45); - ASL_TEST_EXPECT(b->a == 45); -} - -ASL_TEST(niche) -{ - static_assert(sizeof(asl::box) == sizeof(asl::option>)); - - asl::option> opt; - ASL_TEST_EXPECT(!opt.has_value()); - - opt = asl::make_box(66); - ASL_TEST_EXPECT(opt.has_value()); - ASL_TEST_EXPECT(*opt.value() == 66); - - opt = asl::nullopt; - ASL_TEST_EXPECT(!opt.has_value()); - - bool destroyed = false; - asl::option opt2 = asl::make_box(&destroyed); - ASL_TEST_EXPECT(opt2.has_value()); - ASL_TEST_EXPECT(!destroyed); - - opt2.reset(); - ASL_TEST_EXPECT(!opt2.has_value()); - ASL_TEST_EXPECT(destroyed); -} - -class Base -{ -public: - virtual ~Base() = default; - virtual int number() { return 1; } -}; - -class Derived : public Base -{ -public: - int number() override { return 2; } -}; - -static_assert(asl::convertible_from, asl::box>); -static_assert(asl::convertible_from, asl::box>); -static_assert(!asl::convertible_from, asl::box>); -static_assert(!asl::convertible_from, asl::box>); - -ASL_TEST(derived) -{ - asl::box obj = asl::make_box(); - ASL_TEST_ASSERT(obj->number() == 2); -} -- cgit