aboutsummaryrefslogtreecommitdiff
path: root/test.cc
diff options
context:
space:
mode:
authorAdrian Kummerlaender2015-01-17 17:28:02 +0100
committerAdrian Kummerlaender2015-01-17 17:28:02 +0100
commit385c51950644121d7b6e04718374b1af63209ac7 (patch)
tree4d386aadebbb4b1e28ac835f4e5e6736c05ed5dd /test.cc
parentd975c2365730644a7eb15b88e02ec0e92b1fe7b1 (diff)
downloadTypeAsValue-385c51950644121d7b6e04718374b1af63209ac7.tar
TypeAsValue-385c51950644121d7b6e04718374b1af63209ac7.tar.gz
TypeAsValue-385c51950644121d7b6e04718374b1af63209ac7.tar.bz2
TypeAsValue-385c51950644121d7b6e04718374b1af63209ac7.tar.lz
TypeAsValue-385c51950644121d7b6e04718374b1af63209ac7.tar.xz
TypeAsValue-385c51950644121d7b6e04718374b1af63209ac7.tar.zst
TypeAsValue-385c51950644121d7b6e04718374b1af63209ac7.zip
Implemented `Length` function
* as its name implies this function returns the length of a given _Cons_ structure * result type is `Size<Length>` which wraps `std::size_t` to match the `sizeof` operator
Diffstat (limited to 'test.cc')
-rw-r--r--test.cc14
1 files changed, 12 insertions, 2 deletions
diff --git a/test.cc b/test.cc
index 390804b..6ce3691 100644
--- a/test.cc
+++ b/test.cc
@@ -21,9 +21,9 @@ TEST_F(TypeAsValueTest, BasicMath) {
TEST_F(TypeAsValueTest, Conditional) {
// (if #t 1 2)
- EXPECT_EQ(1, ( tav::If<true, tav::Int<1>, tav::Int<2>>::value ));
+ EXPECT_EQ(1, ( tav::If<true, tav::Int<1>, tav::Int<2>>::type::value ));
// (if #f 1 2)
- EXPECT_EQ(2, ( tav::If<false, tav::Int<1>, tav::Int<2>>::value ));
+ EXPECT_EQ(2, ( tav::If<false, tav::Int<1>, tav::Int<2>>::type::value ));
}
TEST_F(TypeAsValueTest, Cons) {
@@ -38,6 +38,11 @@ TEST_F(TypeAsValueTest, Cons) {
}
TEST_F(TypeAsValueTest, List) {
+ // (length (list 1))
+ EXPECT_EQ(1, ( tav::Length<tav::List<tav::Int<1>>::type>::type::value ));
+ // (length (list 1 2))
+ EXPECT_EQ(2, ( tav::Length<tav::List<tav::Int<1>, tav::Int<2>>::type>::type::value ));
+
// (head (list 1))
EXPECT_EQ(1, ( tav::Head<tav::List<tav::Int<1>>::type>::value ));
// (head (list 1 2))
@@ -49,6 +54,11 @@ TEST_F(TypeAsValueTest, List) {
}
TEST_F(TypeAsValueTest, ListConcatenate) {
+ // (length (concatenate (list 1) (list 2)))
+ EXPECT_EQ(2, ( tav::Length<tav::Concatenate<tav::List<tav::Int<1>>::type, tav::List<tav::Int<2>>::type>::type>::type::value ));
+ // (length (concatenate (list 1 2) (list 3 4)))
+ EXPECT_EQ(4, ( tav::Length<tav::Concatenate<tav::List<tav::Int<1>, tav::Int<2>>::type, tav::List<tav::Int<3>, tav::Int<4>>::type>::type>::type::value ));
+
// (head (concatenate (list 1) (list 2)))
EXPECT_EQ(1, ( tav::Head<tav::Concatenate<tav::List<tav::Int<1>>::type, tav::List<tav::Int<2>>::type>::type>::value ));
// (head (tail (concatenate (list 1) (list 2))))