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/meta_tests.cpp | 289 ----------------------------------------------- 1 file changed, 289 deletions(-) delete mode 100644 asl/tests/meta_tests.cpp (limited to 'asl/tests/meta_tests.cpp') diff --git a/asl/tests/meta_tests.cpp b/asl/tests/meta_tests.cpp deleted file mode 100644 index b015eb6..0000000 --- a/asl/tests/meta_tests.cpp +++ /dev/null @@ -1,289 +0,0 @@ -#include "asl/meta.hpp" -#include "asl/tests/test_types.hpp" -#include "asl/testing/testing.hpp" -#include "asl/box.hpp" - -struct Struct {}; -union Union {}; -enum Enum : uint8_t { EnumVariant = 0, }; -enum class EnumClass : uint8_t { Variant = 0, }; - -static_assert(!asl::same_as); -static_assert(asl::same_as); - -static_assert(asl::same_as, float>); -static_assert(asl::same_as, int>); - -static_assert(asl::default_constructible); -static_assert(asl::default_constructible); -static_assert(asl::default_constructible); - -static_assert(asl::trivially_default_constructible); -static_assert(asl::trivially_default_constructible); -static_assert(!asl::trivially_default_constructible); - -static_assert(asl::copy_constructible); -static_assert(asl::copy_constructible); -static_assert(asl::copy_constructible); -static_assert(!asl::copy_constructible); -static_assert(!asl::copy_constructible); - -static_assert(asl::trivially_copy_constructible); -static_assert(asl::trivially_copy_constructible); -static_assert(asl::trivially_copy_constructible); -static_assert(!asl::trivially_copy_constructible); -static_assert(!asl::trivially_copy_constructible); -static_assert(!asl::trivially_copy_constructible); -static_assert(!asl::trivially_copy_constructible); - -static_assert(asl::move_constructible); -static_assert(asl::move_constructible); -static_assert(asl::move_constructible); -static_assert(asl::move_constructible); -static_assert(!asl::move_constructible); - -static_assert(asl::trivially_move_constructible); -static_assert(asl::trivially_move_constructible); -static_assert(asl::trivially_move_constructible); -static_assert(!asl::trivially_move_constructible); -static_assert(!asl::trivially_move_constructible); -static_assert(!asl::trivially_move_constructible); -static_assert(!asl::trivially_move_constructible); - -static_assert(asl::copy_assignable); -static_assert(asl::copy_assignable); -static_assert(asl::copy_assignable); -static_assert(!asl::copy_assignable); -static_assert(!asl::copy_assignable); - -static_assert(asl::trivially_copy_assignable); -static_assert(asl::trivially_copy_assignable); -static_assert(asl::trivially_copy_assignable); -static_assert(asl::trivially_copy_assignable); -static_assert(!asl::trivially_copy_assignable); -static_assert(!asl::trivially_copy_assignable); -static_assert(!asl::trivially_copy_assignable); - -static_assert(asl::copyable); -static_assert(asl::copyable); -static_assert(asl::copyable); -static_assert(!asl::copyable); -static_assert(!asl::copyable); - -static_assert(asl::moveable); -static_assert(asl::moveable); -static_assert(asl::moveable); -static_assert(asl::moveable); -static_assert(!asl::moveable); - -static_assert(asl::move_assignable); -static_assert(asl::move_assignable); -static_assert(asl::move_assignable); -static_assert(asl::move_assignable); -static_assert(!asl::move_assignable); - -static_assert(asl::trivially_move_assignable); -static_assert(asl::trivially_move_assignable); -static_assert(asl::trivially_move_assignable); -static_assert(asl::trivially_move_assignable); -static_assert(!asl::trivially_move_assignable); -static_assert(!asl::trivially_move_assignable); -static_assert(!asl::trivially_move_assignable); - -static_assert(asl::trivially_destructible); -static_assert(asl::trivially_destructible); -static_assert(asl::trivially_destructible); -static_assert(!asl::trivially_destructible); -static_assert(asl::trivially_destructible); -static_assert(asl::trivially_destructible); -static_assert(asl::trivially_destructible); - -static_assert(asl::same_as>); -static_assert(asl::same_as>); -static_assert(asl::same_as>); - -static_assert(asl::same_as>); -static_assert(asl::same_as>); -static_assert(asl::same_as>); - -static_assert(asl::same_as>); -static_assert(asl::same_as>); -static_assert(asl::same_as>); -static_assert(asl::same_as>); - -static_assert(asl::is_void); -static_assert(asl::is_void); -static_assert(asl::is_void); -static_assert(asl::is_void); -static_assert(!asl::is_void); -static_assert(!asl::is_void); -static_assert(!asl::is_void); -static_assert(!asl::is_void); -static_assert(!asl::is_void); -static_assert(!asl::is_void); - -static_assert(asl::is_ref); -static_assert(asl::is_ref); -static_assert(asl::is_ref); -static_assert(asl::is_ref); -static_assert(!asl::is_ref); -static_assert(!asl::is_ref); -static_assert(!asl::is_ref); -static_assert(!asl::is_ref); - -static_assert(asl::is_ptr); -static_assert(asl::is_ptr); -static_assert(asl::is_ptr); -static_assert(!asl::is_ptr); -static_assert(!asl::is_ptr); -static_assert(!asl::is_ptr); -static_assert(!asl::is_ptr); - -static_assert(asl::same_as>); -static_assert(asl::same_as>); -static_assert(asl::same_as>); -static_assert(asl::same_as>); -static_assert(asl::same_as>); -static_assert(asl::same_as>); -static_assert(asl::same_as>); -static_assert(asl::same_as>); - -static_assert(asl::is_func); -static_assert(asl::is_func); -static_assert(asl::is_func); -static_assert(asl::is_func); -static_assert(asl::is_func); -static_assert(asl::is_func); -static_assert(!asl::is_func); -static_assert(!asl::is_func); -static_assert(!asl::is_func); -static_assert(!asl::is_func); - -static_assert(asl::is_object); -static_assert(asl::is_object); -static_assert(asl::is_object); -static_assert(asl::is_object); -static_assert(asl::is_object); -static_assert(asl::is_object); -static_assert(asl::is_object); -static_assert(asl::is_object); -static_assert(!asl::is_object); -static_assert(!asl::is_object); -static_assert(!asl::is_object); -static_assert(!asl::is_object); - -static_assert(!asl::is_array); -static_assert(!asl::is_array); -static_assert(!asl::is_array); -static_assert(!asl::is_array); -static_assert(!asl::is_array); -static_assert(asl::is_array); -static_assert(asl::is_array); -static_assert(!asl::is_array); -static_assert(!asl::is_array); -static_assert(!asl::is_array); -static_assert(!asl::is_array); -static_assert(!asl::is_array); - -static_assert(asl::same_as>); -static_assert(asl::same_as>); -static_assert(asl::same_as>); -static_assert(asl::same_as>); - -static_assert(asl::types_count == 2); -static_assert(asl::types_count == 2); -static_assert(asl::types_count == 1); -static_assert(asl::types_count<> == 0); - -class Base {}; -class Derived : public Base {}; -class C {}; -class D { public: operator C() { return c; } C c; }; // NOLINT -class E { public: template E(T&&) {} }; // NOLINT - -static_assert(asl::convertible_from); -static_assert(!asl::convertible_from); -static_assert(asl::convertible_from); -static_assert(!asl::convertible_from); -static_assert(asl::convertible_from); - -static_assert(!asl::convertible_from); -static_assert(asl::convertible_from); -static_assert(asl::convertible_from); -static_assert(asl::convertible_from); -static_assert(!asl::convertible_from); -static_assert(!asl::convertible_from); -static_assert(!asl::convertible_from); - -static_assert(asl::derived_from); -static_assert(!asl::derived_from); -static_assert(!asl::derived_from); -static_assert(!asl::derived_from); -static_assert(!asl::derived_from); -static_assert(!asl::derived_from); -static_assert(!asl::derived_from); - -static_assert(!asl::is_const); -static_assert(asl::is_const); -static_assert(!asl::is_const); -static_assert(asl::is_const); - -static_assert(asl::is_floating_point); -static_assert(asl::is_floating_point); -static_assert(asl::is_floating_point); -static_assert(!asl::is_floating_point); -static_assert(!asl::is_floating_point); -static_assert(!asl::is_floating_point); - -static_assert(asl::uniquely_represented); -static_assert(asl::uniquely_represented); -static_assert(!asl::uniquely_represented); - -enum Enum1 {}; -enum class Enum2 {}; - -static_assert(asl::uniquely_represented); -static_assert(asl::uniquely_represented); - -static_assert(!asl::is_enum); -static_assert(asl::is_enum); -static_assert(asl::is_enum); - -static_assert(asl::derefs_as); -static_assert(asl::derefs_as); -static_assert(asl::derefs_as); -static_assert(asl::derefs_as, int>); - -static_assert(asl::derefs_as); -static_assert(asl::derefs_as); -static_assert(asl::derefs_as); -static_assert(asl::derefs_as, Base>); - -static void wants_int(int) {} -static void wants_base(Base&) {} -static void wants_base_ptr(Base*) {} - -ASL_TEST(deref) -{ - int a = 4; - auto b = asl::make_box(5); - - wants_int(asl::deref(5)); - wants_int(asl::deref(a)); - wants_int(asl::deref(&a)); - wants_int(asl::deref(b)); - - Derived c{}; - auto d = asl::make_box(); - - wants_base(asl::deref(Derived{})); - wants_base(asl::deref(c)); - wants_base(asl::deref(&c)); - wants_base(asl::deref(d)); - - wants_base_ptr(&asl::deref(Derived{})); - wants_base_ptr(&asl::deref(c)); - wants_base_ptr(&asl::deref(&c)); - wants_base_ptr(&asl::deref(d)); -} - -- cgit