From fa9b7db9d5b17b556240fb6b75eefc484002bcb8 Mon Sep 17 00:00:00 2001 From: Mateusz Pusz Date: Sun, 1 Dec 2019 19:56:23 +0100 Subject: [PATCH] type_list_test enabled --- test/unit_test/static/CMakeLists.txt | 2 +- test/unit_test/static/type_list_test.cpp | 107 ++++++++++++----------- 2 files changed, 57 insertions(+), 52 deletions(-) diff --git a/test/unit_test/static/CMakeLists.txt b/test/unit_test/static/CMakeLists.txt index b793ab17..7f4cb00d 100644 --- a/test/unit_test/static/CMakeLists.txt +++ b/test/unit_test/static/CMakeLists.txt @@ -30,7 +30,7 @@ add_library(unit_tests_static # quantity_test.cpp ratio_test.cpp # si_test.cpp -# type_list_test.cpp + type_list_test.cpp unit_test.cpp ) target_link_libraries(unit_tests_static diff --git a/test/unit_test/static/type_list_test.cpp b/test/unit_test/static/type_list_test.cpp index 12d89c50..6ee9688f 100644 --- a/test/unit_test/static/type_list_test.cpp +++ b/test/unit_test/static/type_list_test.cpp @@ -21,83 +21,88 @@ // SOFTWARE. #include "units/bits/type_list.h" -#include "units/dimension.h" +#include "units/derived_dimension.h" +#include "units/unit.h" #include namespace { - using namespace units; +using namespace units; - template - struct type_list; +template +struct type_list; - // type_list_push_front +// type_list_push_front - static_assert(std::is_same_v, int>, type_list>); - static_assert(std::is_same_v, int, long, double>, type_list>); - static_assert(std::is_same_v, int, long>, type_list>); +static_assert(std::is_same_v, int>, type_list>); +static_assert(std::is_same_v, int, long, double>, type_list>); +static_assert(std::is_same_v, int, long>, type_list>); - // type_list_push_back +// type_list_push_back - static_assert(std::is_same_v, int>, type_list>); - static_assert(std::is_same_v, int, long, double>, type_list>); - static_assert(std::is_same_v, int, long>, type_list>); +static_assert(std::is_same_v, int>, type_list>); +static_assert(std::is_same_v, int, long, double>, type_list>); +static_assert(std::is_same_v, int, long>, type_list>); - // type_list_split +// type_list_split - static_assert(std::is_same_v, 0>::first_list, type_list<>>); - static_assert(std::is_same_v, 0>::second_list, type_list>); +static_assert(std::is_same_v, 0>::first_list, type_list<>>); +static_assert(std::is_same_v, 0>::second_list, type_list>); - static_assert(std::is_same_v, 1>::first_list, type_list>); - static_assert(std::is_same_v, 1>::second_list, type_list<>>); +static_assert(std::is_same_v, 1>::first_list, type_list>); +static_assert(std::is_same_v, 1>::second_list, type_list<>>); - static_assert(std::is_same_v, 0>::first_list, type_list<>>); - static_assert(std::is_same_v, 0>::second_list, type_list>); +static_assert(std::is_same_v, 0>::first_list, type_list<>>); +static_assert(std::is_same_v, 0>::second_list, type_list>); - static_assert(std::is_same_v, 1>::first_list, type_list>); - static_assert(std::is_same_v, 1>::second_list, type_list>); +static_assert(std::is_same_v, 1>::first_list, type_list>); +static_assert(std::is_same_v, 1>::second_list, type_list>); - static_assert(std::is_same_v, 2>::first_list, type_list>); - static_assert(std::is_same_v, 2>::second_list, type_list<>>); +static_assert(std::is_same_v, 2>::first_list, type_list>); +static_assert(std::is_same_v, 2>::second_list, type_list<>>); - static_assert(std::is_same_v, 1>::first_list, type_list>); - static_assert(std::is_same_v, 1>::second_list, type_list>); +static_assert(std::is_same_v, 1>::first_list, type_list>); +static_assert(std::is_same_v, 1>::second_list, type_list>); - static_assert(std::is_same_v, 2>::first_list, type_list>); - static_assert(std::is_same_v, 2>::second_list, type_list>); +static_assert(std::is_same_v, 2>::first_list, type_list>); +static_assert(std::is_same_v, 2>::second_list, type_list>); - // type_list_split_half +// type_list_split_half - static_assert(std::is_same_v>::first_list, type_list>); - static_assert(std::is_same_v>::second_list, type_list<>>); +static_assert(std::is_same_v>::first_list, type_list>); +static_assert(std::is_same_v>::second_list, type_list<>>); - static_assert(std::is_same_v>::first_list, type_list>); - static_assert(std::is_same_v>::second_list, type_list>); +static_assert(std::is_same_v>::first_list, type_list>); +static_assert(std::is_same_v>::second_list, type_list>); - static_assert(std::is_same_v>::first_list, type_list>); - static_assert(std::is_same_v>::second_list, type_list>); +static_assert(std::is_same_v>::first_list, type_list>); +static_assert(std::is_same_v>::second_list, type_list>); - static_assert( - std::is_same_v>::first_list, type_list>); - static_assert( - std::is_same_v>::second_list, type_list>); +static_assert( + std::is_same_v>::first_list, type_list>); +static_assert( + std::is_same_v>::second_list, type_list>); - // type_list_merge_sorted - struct d0 : base_dimension<"d0", ""> {}; - struct d1 : base_dimension<"d1", ""> {}; +// type_list_merge_sorted +struct u0 : unit {}; +struct d0 : base_dimension<"d0", u0> {}; +struct u1 : unit {}; +struct d1 : base_dimension<"d1", u1> {}; - static_assert(std::is_same_v>, type_list>, exp_less>, - type_list, exp>>); - static_assert(std::is_same_v>, type_list>, exp_less>, - type_list, exp>>); +static_assert(std::is_same_v>, type_list>, exp_less>, + type_list, exp>>); +static_assert(std::is_same_v>, type_list>, exp_less>, + type_list, exp>>); - // type_list_sort +// type_list_sort - template - using exp_sort = type_list_sort; +template +using exp_sort = type_list_sort; - static_assert(std::is_same_v>>, dimension>>); - static_assert(std::is_same_v, exp>>, dimension, exp>>); - static_assert(std::is_same_v, exp>>, dimension, exp>>); +static_assert(std::is_same_v>>, derived_dimension>>); +static_assert( + std::is_same_v, exp>>, derived_dimension, exp>>); +static_assert( + std::is_same_v, exp>>, derived_dimension, exp>>); } // namespace