diff --git a/test/append_test.sh b/test/append_test.sh new file mode 100755 index 0000000..e6ceb99 --- /dev/null +++ b/test/append_test.sh @@ -0,0 +1,15 @@ +#! /bin/bash + +testAppendToEmptyList() { + assertEquals 4 "$(list | append 4)" +} + +testAppendToOneElementList() { + assertEquals "1 4" "$(list 1 | append 4 | unlist)" +} + +testAppendToList() { + assertEquals "1 2 3 4 5 4" "$(list 1 2 3 4 5 | append 4 | unlist)" +} + +. ./shunit2-init.sh \ No newline at end of file diff --git a/test/drop_test.sh b/test/drop_test.sh old mode 100644 new mode 100755 diff --git a/test/head_test.sh b/test/head_test.sh old mode 100644 new mode 100755 diff --git a/test/lambda_test.sh b/test/lambda_test.sh new file mode 100755 index 0000000..4e035bd --- /dev/null +++ b/test/lambda_test.sh @@ -0,0 +1,30 @@ +#! /bin/bash + +testLambdaOneArgument() { + identity() { + lambda x . '$x' + } + assertEquals "hi there !" "$(identity <<< 'echo hi there !')" + assertEquals 3 $(lambda x . 'echo $(($x + 1))' <<< '2') + assertEquals "hi there !" "$(λ x . 'echo $x' <<< 'hi there !')" +} + +testLambdaSymbolTwoArguments() { + assertEquals 3 $(echo -e '1\n2' | lambda x y . 'echo $(($x + $y))') + assertEquals 5 $(echo -e '7\n2' | λ x y . 'echo $(($x - $y))') +} + +testLambdaSymbolManyArguments() { + assertEquals 5 $(echo -e '1\n2\n3\n4\n5' | lambda a b c d e . 'echo $(($a + $b + $c + $d - $e))') +} + +testLambdaSymbolManyArguments_ifInsufficientNumberOfArgumentsInLambda() { + assertEquals 6 $(echo -e '1\n2\n3\n4\n5' | lambda a b c . 'echo $(($a + $b + $c))') +} + +testLambdaSymbolManyArguments_ifInsufficientNumberOfInputArguments() { + echo -e '1\n2' | lambda a b c d e . 'echo $(($a + $b + $c + $d + $e))' 2> /dev/null \ + && fail "There should be syntax error" +} + +. ./shunit2-init.sh \ No newline at end of file diff --git a/test/last_test.sh b/test/last_test.sh old mode 100644 new mode 100755 diff --git a/test/list_test.sh b/test/list_test.sh old mode 100644 new mode 100755 diff --git a/test/prepend_test.sh b/test/prepend_test.sh new file mode 100755 index 0000000..8e9e3a0 --- /dev/null +++ b/test/prepend_test.sh @@ -0,0 +1,15 @@ +#! /bin/bash + +testPrependToEmptyList() { + assertEquals 4 "$(list | prepend 4)" +} + +testPrependToOneElementList() { + assertEquals "4 1" "$(list 1 | prepend 4 | unlist)" +} + +testPrependToList() { + assertEquals "4 1 2 3 4 5" "$(list 1 2 3 4 5 | prepend 4 | unlist)" +} + +. ./shunit2-init.sh \ No newline at end of file diff --git a/test/tail_test.sh b/test/tail_test.sh old mode 100644 new mode 100755 diff --git a/test/take_test.sh b/test/take_test.sh old mode 100644 new mode 100755 diff --git a/test/unlist_test.sh b/test/unlist_test.sh old mode 100644 new mode 100755