Simplified, shellchecked, and name deconflicted for personal use
This commit is contained in:
parent
142e1bade4
commit
46722c9b5d
17 changed files with 540 additions and 774 deletions
|
@ -1,15 +1,15 @@
|
|||
#! /bin/bash
|
||||
|
||||
testAppendToEmptyList() {
|
||||
assertEquals 4 "$(list | append 4)"
|
||||
assertEquals 4 "$(list | list_append 4)"
|
||||
}
|
||||
|
||||
testAppendToOneElementList() {
|
||||
assertEquals "1 4" "$(list 1 | append 4 | unlist)"
|
||||
assertEquals "1 4" "$(list 1 | list_append 4 | unlist)"
|
||||
}
|
||||
|
||||
testAppendToList() {
|
||||
assertEquals "1 2 3 4 5 4" "$(list 1 2 3 4 5 | append 4 | unlist)"
|
||||
assertEquals "1 2 3 4 5 4" "$(list 1 2 3 4 5 | list_append 4 | unlist)"
|
||||
}
|
||||
|
||||
. ./shunit2-init.sh
|
|
@ -1,19 +0,0 @@
|
|||
#! /bin/bash
|
||||
|
||||
testCatchIfSuccess() {
|
||||
assertEquals 1 "$(echo 'expr 2 / 2' | catch lambda cmd status val . '[[ $status -eq 0 ]] && tupl $val || echo 0')"
|
||||
}
|
||||
|
||||
testCatchIfError() {
|
||||
assertEquals 0 $(echo 'expr 2 / 0' | catch lambda cmd status val . '[[ $status -eq 0 ]] && tupl $val || echo 0')
|
||||
assertEquals 'cmd=expr 2 / 0,status=2,val=(expr:,division,by,zero)' "$(echo 'expr 2 / 0' | echo 'expr 2 / 0' | LANG=en catch lambda cmd status val . 'echo cmd=$cmd,status=$status,val=$val')"
|
||||
}
|
||||
|
||||
testCatchEdgeCases() {
|
||||
assertEquals 1 "$(echo 'expr 2 / 2' | catch lambda _ _ val . 'tupl $val')"
|
||||
assertEquals 'expr 2 / 2' "$(echo 'expr 2 / 2' | catch lambda cmd . 'ret $cmd')"
|
||||
assertEquals 'expr 2 / 2,0' "$(echo 'expr 2 / 2' | catch lambda cmd status . 'ret $cmd,$status')"
|
||||
assertEquals 'expr 2 / 0,2' "$(echo 'expr 2 / 0' | catch lambda cmd status . 'ret $cmd,$status')"
|
||||
}
|
||||
|
||||
. ./shunit2-init.sh
|
|
@ -1,23 +1,23 @@
|
|||
#! /bin/bash
|
||||
|
||||
testDrop9From10() {
|
||||
assertEquals 10 $(list {1..10} | drop 9)
|
||||
assertEquals 10 $(list {1..10} | list_drop 9)
|
||||
}
|
||||
|
||||
testDrop8From10() {
|
||||
assertEquals "9 10" "$(list {1..10} | drop 8 | unlist)"
|
||||
assertEquals "9 10" "$(list {1..10} | list_drop 8 | unlist)"
|
||||
}
|
||||
|
||||
testDropAll() {
|
||||
assertEquals "" "$(list {1..10} | drop 10)"
|
||||
assertEquals "" "$(list {1..10} | list_drop 10)"
|
||||
}
|
||||
|
||||
testDropMoreThanAvailable() {
|
||||
assertEquals "" "$(list {1..10} | drop 15)"
|
||||
assertEquals "" "$(list {1..10} | list_drop 15)"
|
||||
}
|
||||
|
||||
testDropZero() {
|
||||
assertEquals "1 2 3 4 5 6 7 8 9 10" "$(list {1..10} | drop 0 | unlist)"
|
||||
assertEquals "1 2 3 4 5 6 7 8 9 10" "$(list {1..10} | list_drop 0 | unlist)"
|
||||
}
|
||||
|
||||
. ./shunit2-init.sh
|
|
@ -1,16 +1,16 @@
|
|||
#! /bin/bash
|
||||
|
||||
testLHeadFromList() {
|
||||
assertEquals 1 $(list {1..10} | lhead)
|
||||
assertEquals 5 $(list 5 6 7 | lhead)
|
||||
assertEquals 1 $(list {1..10} | list_head)
|
||||
assertEquals 5 $(list 5 6 7 | list_head)
|
||||
}
|
||||
|
||||
testLHeadFromOneElementList() {
|
||||
assertEquals 1 $(list 1 | lhead)
|
||||
assertEquals 1 $(list 1 | list_head)
|
||||
}
|
||||
|
||||
testLHeadFromEmptyList() {
|
||||
assertEquals "" "$(list | lhead)"
|
||||
assertEquals "" "$(list | list_head)"
|
||||
}
|
||||
|
||||
. ./shunit2-init.sh
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
#! /bin/bash
|
||||
|
||||
testLastFromList() {
|
||||
assertEquals 10 $(list {1..10} | last)
|
||||
assertEquals 7 $(list 5 6 7 | last)
|
||||
assertEquals 10 $(list {1..10} | list_last)
|
||||
assertEquals 7 $(list 5 6 7 | list_last)
|
||||
}
|
||||
|
||||
testLastFromOneElementList() {
|
||||
assertEquals 1 $(list 1 | last)
|
||||
assertEquals 1 $(list 1 | list_last)
|
||||
}
|
||||
|
||||
testLastFromEmptyList() {
|
||||
assertEquals "" "$(list | last)"
|
||||
assertEquals "" "$(list | list_last)"
|
||||
}
|
||||
|
||||
. ./shunit2-init.sh
|
|
@ -1,38 +1,33 @@
|
|||
#!/bin/bash
|
||||
|
||||
testMapEmptyList() {
|
||||
assertEquals "" "$(list | map lambda x . 'echo $(($x + 1))')"
|
||||
assertEquals "" "$(list | list_map lambda x . 'echo $(($x + 1))')"
|
||||
}
|
||||
|
||||
testMapEmptyList_ifNoArgumentsInLambda() {
|
||||
assertEquals "" "$(list | map lambda . 'echo 3')"
|
||||
assertEquals "" "$(list | list_map lambda . 'echo 3')"
|
||||
}
|
||||
|
||||
testMapOneElementList() {
|
||||
assertEquals "3" "$(list 2 | map lambda x . 'echo $(($x + 1))')"
|
||||
assertEquals "3" "$(list 2 | list_map lambda x . 'echo $(($x + 1))')"
|
||||
}
|
||||
|
||||
testMapList() {
|
||||
assertEquals "2 3 4 5 6" "$(list {1..5} | map lambda x . 'echo $(($x + 1))' | unlist)"
|
||||
assertEquals "2 3 4 5 6" "$(list {1..5} | list_map lambda x . 'echo $(($x + 1))' | unlist)"
|
||||
}
|
||||
|
||||
testMapList_ifNoArgumentsInLambda() {
|
||||
assertEquals "9 9 9 9 9" "$(list {1..5} | map lambda . 'echo 9' | unlist)"
|
||||
assertEquals "9 9 9 9 9" "$(list {1..5} | list_map lambda . 'echo 9' | unlist)"
|
||||
}
|
||||
|
||||
testMapList_ifManyArgumentsInLambda() {
|
||||
list {1..5} | map lambda x y . 'echo $(($x + $y))' 2> /dev/null \
|
||||
list {1..5} | list_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)"
|
||||
}
|
||||
|
||||
testMapNoLambdaSyntax() {
|
||||
assertEquals "1 2 3" "$(list 1 2 3 | map echo | unlist)"
|
||||
assertEquals "1 is a number 2 is a number 3 is a number" "$(list 1 2 3 | map 'echo $ is a number' | unlist)"
|
||||
assertEquals "1 2 3 2 3 3" "$(list {1..3} | list_map lambda x . 'seq $x 3' | unlist)"
|
||||
assertEquals "d e h l l l o o r w" "$(list hello world | list_map lambda x . 'command fold -w 1 <<< $x' | sort | unlist)"
|
||||
}
|
||||
|
||||
. ./shunit2-init.sh
|
|
@ -1,29 +0,0 @@
|
|||
#! /bin/bash
|
||||
|
||||
testMaybe() {
|
||||
assertEquals '(Just,1)' "$(maybe 1)"
|
||||
assertEquals '(Just,1)' "$(echo 1 | maybe)"
|
||||
assertEquals '(Nothing)' "$(maybe '')"
|
||||
assertEquals '(Nothing)' "$(maybe ' ')"
|
||||
assertEquals '(Nothing)' "$(maybe ' ' ' ' ' ')"
|
||||
assertEquals '(Nothing)' "$(echo | maybe)"
|
||||
assertEquals '(Just,1 2 3)' "$(maybe 1 2 3)"
|
||||
assertEquals '(Just,1 2 3)' "$(echo 1 2 3 | maybe)"
|
||||
}
|
||||
|
||||
testMaybemap() {
|
||||
assertEquals '(Just,3)' "$(echo 1 | maybe | maybemap lambda a . 'echo $(( a + 1 ))' | maybemap lambda a . 'echo $(( a + 1 ))')"
|
||||
assertEquals '(Nothing)' "$(echo | maybe | maybemap lambda a . 'echo $(( a + 1 ))' | maybemap lambda a . 'echo $(( a + 1 ))')"
|
||||
|
||||
assertEquals '(Nothing)' "$(echo 1 | maybe | maybemap lambda a . 'echo $(( a + 1 ))' | maybemap lambda a . 'echo')"
|
||||
assertEquals '(Nothing)' "$(echo 1 | maybe | maybemap lambda a . 'echo $(( a + 1 ))' | maybemap lambda a . 'echo' | maybemap lambda a . 'echo $(( a + 1 ))')"
|
||||
}
|
||||
|
||||
testMaybevalue() {
|
||||
assertEquals 3 "$(echo 1 | maybe | maybemap lambda a . 'echo $(( a + 1 ))' | maybemap lambda a . 'echo $(( a + 1 ))' | maybevalue 0)"
|
||||
assertEquals 0 "$(echo | maybe | maybemap lambda a . 'echo $(( a + 1 ))' | maybemap lambda a . 'echo $(( a + 1 ))' | maybevalue 0)"
|
||||
assertEquals 'a b c' "$(echo | maybe | maybemap lambda a . 'echo $(( a + 1 ))' | maybemap lambda a . 'echo $(( a + 1 ))' | maybevalue a b c)"
|
||||
}
|
||||
|
||||
|
||||
. ./shunit2-init.sh
|
|
@ -8,16 +8,16 @@ testIsint() {
|
|||
assertEquals '1 2 3 4 5' "$(list 1 a 2 b 3 c 4 d 5 e | filter lambda x . 'isint $x' | unlist )"
|
||||
assertEquals '1 2' "$(list 1 a 2 b 3 c 4 d 5 e | filter lambda x . '($(isint $x) && [[ $x -le 2 ]] && ret true) || ret false ' | unlist )"
|
||||
|
||||
assertEquals 'false' $(not isint 1)
|
||||
assertEquals 'true' $(not isint a)
|
||||
assertEquals 'false' $(not "isint 1")
|
||||
assertEquals 'true' $(not "isint a")
|
||||
}
|
||||
|
||||
testIsempty() {
|
||||
assertEquals 'true' $(isempty "")
|
||||
assertEquals 'false' $(isempty a)
|
||||
|
||||
assertEquals 'true' $(not isempty a)
|
||||
assertEquals 'false' $(not isempty "")
|
||||
assertEquals 'true' $(not "isempty a")
|
||||
assertEquals 'false' $(not "isempty \"\"")
|
||||
}
|
||||
|
||||
testIsfile() {
|
||||
|
@ -26,7 +26,7 @@ testIsfile() {
|
|||
assertEquals 'true' $(isfile $f)
|
||||
assertEquals 'false' $(isfile $f.xxx)
|
||||
assertEquals 'false' $(isfile "")
|
||||
assertEquals 'true' $(not isfile $f.xxx)
|
||||
assertEquals 'true' $(not "isfile $f.xxx")
|
||||
|
||||
assertEquals 'false' $(isnonzerofile $f)
|
||||
echo hello world >$f
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
#! /bin/bash
|
||||
|
||||
testPrependToEmptyList() {
|
||||
assertEquals 4 "$(list | prepend 4)"
|
||||
assertEquals 4 "$(list | list_prepend 4)"
|
||||
}
|
||||
|
||||
testPrependToOneElementList() {
|
||||
assertEquals "4 1" "$(list 1 | prepend 4 | unlist)"
|
||||
assertEquals "4 1" "$(list 1 | list_prepend 4 | unlist)"
|
||||
}
|
||||
|
||||
testPrependToList() {
|
||||
assertEquals "4 1 2 3 4 5" "$(list 1 2 3 4 5 | prepend 4 | unlist)"
|
||||
assertEquals "4 1 2 3 4 5" "$(list 1 2 3 4 5 | list_prepend 4 | unlist)"
|
||||
}
|
||||
|
||||
. ./shunit2-init.sh
|
|
@ -1,15 +1,15 @@
|
|||
#! /bin/bash
|
||||
|
||||
testLTailFrom10() {
|
||||
assertEquals "2 3 4 5 6 7 8 9 10" "$(list {1..10} | ltail | unlist)"
|
||||
assertEquals "2 3 4 5 6 7 8 9 10" "$(list {1..10} | list_tail | unlist)"
|
||||
}
|
||||
|
||||
testLTailFromOneElementList() {
|
||||
assertEquals "" "$(list 1 | ltail)"
|
||||
assertEquals "" "$(list 1 | list_tail)"
|
||||
}
|
||||
|
||||
testLTailFromEmptyList() {
|
||||
assertEquals "" "$(list | ltail)"
|
||||
assertEquals "" "$(list | list_tail)"
|
||||
}
|
||||
|
||||
. ./shunit2-init.sh
|
||||
|
|
|
@ -1,23 +1,23 @@
|
|||
#! /bin/bash
|
||||
|
||||
testTake9From10() {
|
||||
assertEquals "1 2 3 4 5 6 7 8 9" "$(list {1..10} | take 9 | unlist)"
|
||||
assertEquals "1 2 3 4 5 6 7 8 9" "$(list {1..10} | list_take 9 | unlist)"
|
||||
}
|
||||
|
||||
testTake8From10() {
|
||||
assertEquals "1 2 3 4 5 6 7 8" "$(list {1..10} | take 8 | unlist)"
|
||||
assertEquals "1 2 3 4 5 6 7 8" "$(list {1..10} | list_take 8 | unlist)"
|
||||
}
|
||||
|
||||
testTakeAll() {
|
||||
assertEquals "1 2 3 4 5 6 7 8 9 10" "$(list {1..10} | take 10 | unlist)"
|
||||
assertEquals "1 2 3 4 5 6 7 8 9 10" "$(list {1..10} | list_take 10 | unlist)"
|
||||
}
|
||||
|
||||
testTakeMoreThanAvailable() {
|
||||
assertEquals "1 2 3 4 5 6 7 8 9 10" "$(list {1..10} | take 15 | unlist)"
|
||||
assertEquals "1 2 3 4 5 6 7 8 9 10" "$(list {1..10} | list_take 15 | unlist)"
|
||||
}
|
||||
|
||||
testTakeZero() {
|
||||
assertEquals "" "$(list {1..10} | take 0 | unlist)"
|
||||
assertEquals "" "$(list {1..10} | list_take 0 | unlist)"
|
||||
}
|
||||
|
||||
. ./shunit2-init.sh
|
|
@ -1,11 +0,0 @@
|
|||
#! /bin/bash
|
||||
|
||||
testTry() {
|
||||
assertEquals 1 "$(echo 'expr 2 / 2' | try lambda _ . 'ret 0')"
|
||||
assertEquals 0 "$(echo 'expr 2 / 0' | try lambda _ . 'ret 0')"
|
||||
assertEquals 2 "$(echo 'expr 2 / 0' | try lambda status . 'ret $status')"
|
||||
assertEquals 'already up to date' "$(echo 'echo already up to date' | try lambda _ . 'ret error')"
|
||||
assertEquals 'error exit 1' "$(try λ _ . 'echo "error"; echo exit 1' < <(echo fgit pull) | unlist)"
|
||||
}
|
||||
|
||||
. ./shunit2-init.sh
|
|
@ -8,8 +8,8 @@ testTupIfOneElement() {
|
|||
assertEquals '(1)' $(tup 1)
|
||||
assertEquals '(")' $(tup '"')
|
||||
assertEquals "(')" $(tup "'")
|
||||
assertEquals "(u002c)" $(tup ",")
|
||||
assertEquals "(u002cu002c)" $(tup ",,")
|
||||
assertEquals "(,)" $(tup ",")
|
||||
assertEquals "(,,)" $(tup ",,")
|
||||
assertEquals "(()" $(tup "(")
|
||||
assertEquals "())" $(tup ")")
|
||||
}
|
||||
|
@ -20,42 +20,10 @@ testTupHappyPath() {
|
|||
assertEquals '(a b,c d e,f)' "$(tup 'a b' 'c d e' 'f')"
|
||||
}
|
||||
|
||||
testTupxHappyPath() {
|
||||
assertEquals '4' $(tup 4 5 1 4 | tupx 1)
|
||||
assertEquals '5' $(tup 4 5 1 4 | tupx 2)
|
||||
assertEquals '1' $(tup 4 5 1 4 | tupx 3)
|
||||
assertEquals '4' $(tup 4 5 1 4 | tupx 4)
|
||||
|
||||
}
|
||||
|
||||
testTupxIfEmpty() {
|
||||
assertEquals '' "$(tup '' | tupx 1)"
|
||||
assertEquals '' "$(tup '' | tupx 5)"
|
||||
}
|
||||
|
||||
testTupxIfZeroIndex() {
|
||||
assertEquals '' "$(tup 1 3 | tupx 0 2>/dev/null)"
|
||||
}
|
||||
|
||||
testTupxIfSpecialChars() {
|
||||
assertEquals ',' "$(tup ',' | tupx 1)"
|
||||
assertEquals ',,' "$(tup ',,' | tupx 1)"
|
||||
assertEquals '(' "$(tup '(' | tupx 1)"
|
||||
assertEquals ')' "$(tup ')' | tupx 1)"
|
||||
assertEquals '()' "$(tup '()' | tupx 1)"
|
||||
assertEquals '(' "$(tup '(' ')' | tupx 1)"
|
||||
assertEquals '(' "$(tup '(' '(' | tupx 1)"
|
||||
assertEquals ')' "$(tup ')' ')' | tupx 1)"
|
||||
assertEquals ',' "$(tup 'u002c' | tupx 1)"
|
||||
assertEquals ',,' "$(tup 'u002cu002c' | tupx 1)"
|
||||
}
|
||||
|
||||
testTupxRange() {
|
||||
assertEquals '4 5' "$(tup 4 5 1 4 | tupx 1-2 | unlist)"
|
||||
assertEquals '4 4' "$(tup 4 5 1 4 | tupx 1,4 | unlist)"
|
||||
assertEquals '4 5 4' "$(tup 4 5 1 4 | tupx 1,2,4 | unlist)"
|
||||
}
|
||||
|
||||
testTupl() {
|
||||
assertEquals '4' "$(tup 4 5 | tupl)"
|
||||
assertEquals '4' "$(tup 4 5 6 | tupl)"
|
||||
|
@ -69,16 +37,4 @@ testTupr() {
|
|||
assertEquals '5' "$(tup 5 | tupr)"
|
||||
}
|
||||
|
||||
testNTup() {
|
||||
assertEquals '(KFlRbz0sWWdvPSkK,Ywo=)' "$(ntup $(ntup a b) c)"
|
||||
assertEquals '(YQo=,Ygo=)' "$(ntupl '(KFlRbz0sWWdvPSkK,Ywo=)')"
|
||||
assertEquals 'a' "$(ntupl '(YQo=,Ygo=)')"
|
||||
assertEquals 'b' "$(ntupr '(YQo=,Ygo=)')"
|
||||
assertEquals 'c' "$(ntupr '(KFlRbz0sWWdvPSkK,Ywo=)')"
|
||||
assertEquals 'a' "$(ntup $(ntup a b) c | ntupx 1 | ntupx 1)"
|
||||
assertEquals 'b' "$(ntup $(ntup a b) c | ntupx 1 | ntupx 2)"
|
||||
assertEquals 'c' "$(ntup $(ntup a b) c | ntupx 2)"
|
||||
assertEquals 'a b' "$(ntup $(ntup a b) c | ntupx 1 | ntupx 1,2 | unlist)"
|
||||
}
|
||||
|
||||
. ./shunit2-init.sh
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue