From cb9eff8b817573d543f37e9379cb53539e8a13b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C5=82awomir=20=C5=9Aled=C5=BA?= Date: Wed, 14 Feb 2018 00:11:27 +0100 Subject: [PATCH] More tests... --- test/lambda_test.sh | 8 ++++++++ test/map_test.sh | 33 +++++++++++++++++++++++++++++++++ test/shunit2-init.sh | 2 ++ 3 files changed, 43 insertions(+) create mode 100755 test/map_test.sh diff --git a/test/lambda_test.sh b/test/lambda_test.sh index 4e035bd..4f05094 100755 --- a/test/lambda_test.sh +++ b/test/lambda_test.sh @@ -1,5 +1,13 @@ #! /bin/bash +testLambdaNoArguments_ifNoInput() { + assertEquals 'Hi there' "$(echo | lambda . 'echo Hi there')" +} + +testLambdaNoArguments_ifSomeInputArguments() { + assertEquals 'Hi there' "$(echo 'xx\nyy\nzz' | lambda . 'echo Hi there')" +} + testLambdaOneArgument() { identity() { lambda x . '$x' diff --git a/test/map_test.sh b/test/map_test.sh new file mode 100755 index 0000000..b34217c --- /dev/null +++ b/test/map_test.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +testMapEmptyList() { + assertEquals "" "$(list | map lambda x . 'echo $(($x + 1))')" +} + +testMapEmptyList_ifNoArgumentsInLambda() { + assertEquals "" "$(list | map lambda . 'echo 3')" +} + +testMapOneElementList() { + assertEquals "3" "$(list 2 | map lambda x . 'echo $(($x + 1))')" +} + +testMapList() { + assertEquals "2 3 4 5 6" "$(list {1..5} | map lambda x . 'echo $(($x + 1))' | unlist)" +} + +testMapList_ifNoArgumentsInLambda() { + assertEquals "9 9 9 9 9" "$(list {1..5} | map lambda . 'echo 9' | unlist)" +} + +testMapList_ifManyArgumentsInLambda() { + list {1..5} | map lambda x y . 'echo $(($x + $y))' 2> /dev/null \ + && fail "There should be syntax error, because map is an one argument operation" +} + +testFlatMap() { + assertEquals "1 2 3 2 3 3" "$(list {1..3} | map lambda x . 'seq $x 3' | unlist)" + assertEquals "d e h l l l o o r w" "$(list hello world | map lambda x . 'command fold -w 1 <<< $x' | sort | unlist)" +} + +. ./shunit2-init.sh \ No newline at end of file diff --git a/test/shunit2-init.sh b/test/shunit2-init.sh index 516513b..68c42ca 100644 --- a/test/shunit2-init.sh +++ b/test/shunit2-init.sh @@ -1,3 +1,5 @@ +#!/bin/bash + oneTimeSetUp() { . ../src/fun.sh }