is-type predicate UT cases

This commit is contained in:
John Kerl 2016-12-19 08:10:51 -05:00
parent c7c899ce21
commit cc5e9a95ef
4 changed files with 165 additions and 1 deletions

View file

@ -59,7 +59,7 @@ static inline boxed_xval_t b_x_ismap_xfunc(boxed_xval_t* pbxval1) {
static inline boxed_xval_t b_x_isnotmap_xfunc(boxed_xval_t* pbxval1) {
return box_ephemeral_val(
mv_from_bool(
pbxval1->xval.is_terminal && mv_is_present(&pbxval1->xval.terminal_mlrval)
pbxval1->xval.is_terminal
)
);
}

View file

@ -18063,6 +18063,150 @@ b 5 - - true
b - 6 - true
b - - - true
mlr --opprint put $f=ismap($x) ./reg_test/input/nullvals.dkvp
a x y z f
b 1 2 - false
b 3 4 - false
b 5 - - false
b - 6 - false
b - - - false
mlr --opprint put $f=ismap($y) ./reg_test/input/nullvals.dkvp
a x y z f
b 1 2 - false
b 3 4 - false
b 5 - - false
b - 6 - false
b - - - false
mlr --opprint put $f=ismap($z) ./reg_test/input/nullvals.dkvp
a x y z f
b 1 2 - false
b 3 4 - false
b 5 - - false
b - 6 - false
b - - - false
mlr --opprint put $f=ismap($nosuch) ./reg_test/input/nullvals.dkvp
a x y z f
b 1 2 - false
b 3 4 - false
b 5 - - false
b - 6 - false
b - - - false
mlr --opprint put $f=ismap(@nosuch) ./reg_test/input/nullvals.dkvp
a x y z f
b 1 2 - false
b 3 4 - false
b 5 - - false
b - 6 - false
b - - - false
mlr --opprint put $f=ismap($*) ./reg_test/input/nullvals.dkvp
a x y z f
b 1 2 - true
b 3 4 - true
b 5 - - true
b - 6 - true
b - - - true
mlr --opprint put $f=ismap({1:2}) ./reg_test/input/nullvals.dkvp
a x y z f
b 1 2 - true
b 3 4 - true
b 5 - - true
b - 6 - true
b - - - true
mlr --opprint put $f=ismap({}) ./reg_test/input/nullvals.dkvp
a x y z f
b 1 2 - true
b 3 4 - true
b 5 - - true
b - 6 - true
b - - - true
mlr --opprint put @somesuch=1;$f=ismap(@somesuch) ./reg_test/input/nullvals.dkvp
a x y z f
b 1 2 - false
b 3 4 - false
b 5 - - false
b - 6 - false
b - - - false
mlr --opprint put $f=isnotmap($x) ./reg_test/input/nullvals.dkvp
a x y z f
b 1 2 - true
b 3 4 - true
b 5 - - true
b - 6 - true
b - - - true
mlr --opprint put $f=isnotmap($y) ./reg_test/input/nullvals.dkvp
a x y z f
b 1 2 - true
b 3 4 - true
b 5 - - true
b - 6 - true
b - - - true
mlr --opprint put $f=isnotmap($z) ./reg_test/input/nullvals.dkvp
a x y z f
b 1 2 - true
b 3 4 - true
b 5 - - true
b - 6 - true
b - - - true
mlr --opprint put $f=isnotmap($nosuch) ./reg_test/input/nullvals.dkvp
a x y z f
b 1 2 - true
b 3 4 - true
b 5 - - true
b - 6 - true
b - - - true
mlr --opprint put $f=isnotmap(@nosuch) ./reg_test/input/nullvals.dkvp
a x y z f
b 1 2 - true
b 3 4 - true
b 5 - - true
b - 6 - true
b - - - true
mlr --opprint put $f=isnotmap($*) ./reg_test/input/nullvals.dkvp
a x y z f
b 1 2 - false
b 3 4 - false
b 5 - - false
b - 6 - false
b - - - false
mlr --opprint put $f=isnotmap({1:2}) ./reg_test/input/nullvals.dkvp
a x y z f
b 1 2 - false
b 3 4 - false
b 5 - - false
b - 6 - false
b - - - false
mlr --opprint put $f=isnotmap({}) ./reg_test/input/nullvals.dkvp
a x y z f
b 1 2 - false
b 3 4 - false
b 5 - - false
b - 6 - false
b - - - false
mlr --opprint put @somesuch=1;$f=isnotmap(@somesuch) ./reg_test/input/nullvals.dkvp
a x y z f
b 1 2 - true
b 3 4 - true
b 5 - - true
b - 6 - true
b - - - true
mlr --opprint put $f=isemptymap($x) ./reg_test/input/nullvals.dkvp
a x y z f
b 1 2 - false

View file

@ -1217,6 +1217,25 @@ run_mlr --opprint put '$f=isnotempty($*)' $indir/nullvals.
run_mlr --opprint put '$f=isnotempty({1:2})' $indir/nullvals.dkvp
run_mlr --opprint put '@somesuch=1;$f=isnotempty(@somesuch)' $indir/nullvals.dkvp
run_mlr --opprint put '$f=ismap($x)' $indir/nullvals.dkvp
run_mlr --opprint put '$f=ismap($y)' $indir/nullvals.dkvp
run_mlr --opprint put '$f=ismap($z)' $indir/nullvals.dkvp
run_mlr --opprint put '$f=ismap($nosuch)' $indir/nullvals.dkvp
run_mlr --opprint put '$f=ismap(@nosuch)' $indir/nullvals.dkvp
run_mlr --opprint put '$f=ismap($*)' $indir/nullvals.dkvp
run_mlr --opprint put '$f=ismap({1:2})' $indir/nullvals.dkvp
run_mlr --opprint put '$f=ismap({})' $indir/nullvals.dkvp
run_mlr --opprint put '@somesuch=1;$f=ismap(@somesuch)' $indir/nullvals.dkvp
run_mlr --opprint put '$f=isnotmap($x)' $indir/nullvals.dkvp
run_mlr --opprint put '$f=isnotmap($y)' $indir/nullvals.dkvp
run_mlr --opprint put '$f=isnotmap($z)' $indir/nullvals.dkvp
run_mlr --opprint put '$f=isnotmap($nosuch)' $indir/nullvals.dkvp
run_mlr --opprint put '$f=isnotmap(@nosuch)' $indir/nullvals.dkvp
run_mlr --opprint put '$f=isnotmap($*)' $indir/nullvals.dkvp
run_mlr --opprint put '$f=isnotmap({1:2})' $indir/nullvals.dkvp
run_mlr --opprint put '$f=isnotmap({})' $indir/nullvals.dkvp
run_mlr --opprint put '@somesuch=1;$f=isnotmap(@somesuch)' $indir/nullvals.dkvp
run_mlr --opprint put '$f=isemptymap($x)' $indir/nullvals.dkvp
run_mlr --opprint put '$f=isemptymap($y)' $indir/nullvals.dkvp
run_mlr --opprint put '$f=isemptymap($z)' $indir/nullvals.dkvp

View file

@ -31,6 +31,7 @@ OTHER:
MAPVAR CHECKLIST:
! UT cases detailed below
-> ismap(absent) & isnotmap(absent) both false ?!?
! memmgt for ephemeral boxed xvals