From 78df97907e9e5758b03fb11f556f24ebb12a740c Mon Sep 17 00:00:00 2001 From: Adrian Kummerlaender Date: Mon, 19 Jan 2015 20:35:14 +0100 Subject: Indented test cases to improve readability --- test.cc | 210 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 180 insertions(+), 30 deletions(-) diff --git a/test.cc b/test.cc index 8ae99a7..19c279c 100644 --- a/test.cc +++ b/test.cc @@ -12,155 +12,288 @@ int main(int, char **) { } // equality static_assert( - std::is_same, tav::EqualType, tav::Int<2>>>::value, + std::is_same< + tav::Boolean, + tav::EqualType, tav::Int<2>> + >::value, "(EqualType 1 2) != #t" ); static_assert( - std::is_same, tav::EqualType, tav::Size<1>>>::value, + std::is_same< + tav::Boolean, + tav::EqualType, tav::Size<1>> + >::value, "(EqualType (int 1) (size 2)) != #f" ); static_assert( - std::is_same, tav::EqualValue, tav::Size<1>>>::value, + std::is_same< + tav::Boolean, + tav::EqualValue, tav::Size<1>> + >::value, "(equal? (int 1) (size 1)) != #t" ); static_assert( - std::is_same, tav::EqualValue, tav::Int<2>>>::value, + std::is_same< + tav::Boolean, + tav::EqualValue, tav::Int<2>> + >::value, "(equal? 1 2) != #f" ); // basic math operations static_assert( - std::is_same, tav::Add, tav::Int<2>>>::value, + std::is_same< + tav::Int<3>, + tav::Add, tav::Int<2>> + >::value, "(+ 1 2) != 3" ); static_assert( - std::is_same, tav::Substract, tav::Int<6>>>::value, + std::is_same< + tav::Int<4>, + tav::Substract, tav::Int<6>> + >::value, "(- 10 6) != 4" ); static_assert( - std::is_same, tav::Multiply, tav::Int<21>>>::value, + std::is_same< + tav::Int<42>, + tav::Multiply, tav::Int<21>> + >::value, "(* 2 21) != 42" ); static_assert( - std::is_same, tav::Divide, tav::Int<2>>>::value, + std::is_same< + tav::Int<5>, + tav::Divide, tav::Int<2>> + >::value, "(/ 10 2) != 42" ); // conditionals static_assert( - std::is_same, tav::If, tav::Int<2>>::type>::value, + std::is_same< + tav::Int<1>, + tav::If, tav::Int<2>>::type + >::value, "(if #t 1 2) != 1" ); static_assert( - std::is_same, tav::If, tav::Int<2>>::type>::value, + std::is_same< + tav::Int<2>, + tav::If, tav::Int<2>>::type + >::value, "(if #f 1 2) != 2" ); // cons static_assert( - std::is_same, tav::Car, void>>>::value, + std::is_same< + tav::Int<1>, + tav::Car< + tav::Cons, void> + > + >::value, "(car (cons 1 void)) != 1" ); static_assert( - std::is_same, tav::Car, tav::Int<2>>>>::value, + std::is_same< + tav::Int<1>, + tav::Car< + tav::Cons, tav::Int<2>> + > + >::value, "(car (cons 1 2)) != 1" ); static_assert( - std::is_same, tav::Cdr, tav::Int<2>>>>::value, + std::is_same< + tav::Int<2>, + tav::Cdr< + tav::Cons, tav::Int<2>> + > + >::value, "(cdr (cons 1 2)) != 2" ); static_assert( - std::is_same, tav::Car, tav::Cons, tav::Int<3>>>>>>::value, + std::is_same< + tav::Int<2>, + tav::Car< + tav::Cdr< + tav::Cons, tav::Cons, tav::Int<3>>> + > + > + >::value, "(car (cdr (cons 1 (cons 2 3)))) != 2" ); // list static_assert( - std::is_same, void>, tav::List>::type>::value, + std::is_same< + tav::Cons, void>, + tav::List>::type + >::value, "(list 1) != (cons 1 void)" ); static_assert( - std::is_same, tav::Cons, void>>, tav::List, tav::Int<2>>::type>::value, + std::is_same< + tav::Cons, tav::Cons, void>>, + tav::List, tav::Int<2>>::type + >::value, "(list 1 2) != (cons 1 (cons 2 void))" ); // list length static_assert( - std::is_same, tav::Length>::type>::type>::value, + std::is_same< + tav::Size<1>, + tav::Length< + tav::List>::type + >::type + >::value, "(length (list 1)) != 1" ); static_assert( - std::is_same, tav::Length, tav::Int<2>>::type>::type>::value, + std::is_same< + tav::Size<2>, + tav::Length< + tav::List, tav::Int<2>>::type + >::type + >::value, "(length (list 1 2)) != 2" ); // list nth static_assert( - std::is_same, tav::Nth, tav::List>::type>::type>::value, + std::is_same< + tav::Int<1>, + tav::Nth< + tav::Size<0>, + tav::List>::type + >::type + >::value, "(nth 0 (list 1)) != 1" ); static_assert( - std::is_same, tav::Nth, tav::List, tav::Int<2>>::type>::type>::value, + std::is_same< + tav::Int<1>, + tav::Nth< + tav::Size<0>, + tav::List, tav::Int<2>>::type + >::type + >::value, "(nth 0 (list 1 2)) != 1" ); static_assert( - std::is_same, tav::Nth, tav::List, tav::Int<2>>::type>::type>::value, + std::is_same< + tav::Int<2>, + tav::Nth< + tav::Size<1>, + tav::List, tav::Int<2>>::type + >::type + >::value, "(nth 1 (list 1 2)) != 2" ); // list take static_assert( - std::is_same, tav::Length, tav::List, tav::Int<2>>::type>::type>::type>::value, + std::is_same< + tav::Size<1>, + tav::Length< + tav::Take< + tav::Size<1>, + tav::List, tav::Int<2>>::type + >::type + >::type + >::value, "(length (take 1 (list 1 2))) != 1" ); static_assert( - std::is_same, tav::Length, tav::List, tav::Int<2>>::type>::type>::type>::value, + std::is_same< + tav::Size<2>, + tav::Length< + tav::Take< + tav::Size<2>, + tav::List, tav::Int<2>>::type + >::type + >::type + >::value, "(length (take 2 (list 1 2))) != 2" ); static_assert( - std::is_same, tav::Length, tav::List, tav::Int<2>>::type>::type>::type>::value, + std::is_same< + tav::Size<2>, + tav::Length< + tav::Take< + tav::Size<3>, + tav::List, tav::Int<2>>::type + >::type + >::type + >::value, "(length (take 3 (list 1 2))) != 2" ); // list concatenate static_assert( - std::is_same, tav::Length>::type, tav::List>::type>::type>::type>::value, + std::is_same< + tav::Size<2>, + tav::Length< + tav::Concatenate< + tav::List>::type, + tav::List>::type + >::type + >::type + >::value, "(length (concatenate (list 1) (list 2))) != 2" ); static_assert( - std::is_same, tav::Length, tav::Int<2>>::type, tav::List, tav::Int<4>>::type>::type>::type>::value, + std::is_same< + tav::Size<4>, + tav::Length< + tav::Concatenate< + tav::List, tav::Int<2>>::type, + tav::List, tav::Int<4>>::type + >::type + >::type + >::value, "(length (concatenate (list 1 2) (list 3 4))) != 4" ); // list fold static_assert( - std::is_same, tav::Fold, tav::List, tav::Int<2>, tav::Int<3>>::type>::type>::value, + std::is_same< + tav::Int<6>, + tav::Fold< + tav::Add, + tav::Int<0>, + tav::List, tav::Int<2>, tav::Int<3>>::type + >::type + >::value, "(fold + 0 (list 1 2 3)) != 6" ); @@ -170,20 +303,37 @@ template using quadruple = tav::Multiply, Element>; static_assert( - std::is_same, tav::Int<8>, tav::Int<12>>::type, tav::Map, tav::Int<2>, tav::Int<3>>::type>::type>::value, + std::is_same< + tav::List, tav::Int<8>, tav::Int<12>>::type, + tav::Map< + quadruple, + tav::List, tav::Int<2>, tav::Int<3>>::type + >::type + >::value, "(map quadruple (list 1 2 3)) != (list 4 8 12)" ); // list filter static_assert( - std::is_same, tav::Int<3>>::type, tav::Filter, tav::Int<2>, tav::Int<3>>::type>::type>::value, + std::is_same< + tav::List, tav::Int<3>>::type, + tav::Filter< + tav::Odd, + tav::List, tav::Int<2>, tav::Int<3>>::type + >::type + >::value, "(filter odd (list 1 2 3)) != (list 1 3)" ); // list reverse static_assert( - std::is_same, tav::Int<2>, tav::Int<1>>::type, tav::Reverse, tav::Int<2>, tav::Int<3>>::type>::type>::value, + std::is_same< + tav::List, tav::Int<2>, tav::Int<1>>::type, + tav::Reverse< + tav::List, tav::Int<2>, tav::Int<3>>::type + >::type + >::value, "(reverse (list 1 2 3)) != (list 3 2 1)" ); -- cgit v1.2.3