null-value aggregators UT

This commit is contained in:
John Kerl 2016-01-09 13:38:30 +00:00
parent 8acce40a23
commit b71763ee7b
3 changed files with 114 additions and 20 deletions

View file

@ -189,11 +189,6 @@ static void mapper_top_ingest(lrec_t* pinrec, mapper_top_state_t* pstate) {
char* value_field_sval = pb->value;
if (value_field_sval == NULL) // Key not present
continue;
if (*value_field_sval == 0) // Key present with null value
continue;
mv_t value_field_nval = pstate->allow_int_float
? mv_scan_number_or_die(value_field_sval)
: mv_from_float(mlr_double_from_string_or_die(value_field_sval));
top_keeper_t* ptop_keeper_for_group = lhmsv_get(group_to_acc_field, value_field_name);
if (ptop_keeper_for_group == NULL) {
@ -201,6 +196,13 @@ static void mapper_top_ingest(lrec_t* pinrec, mapper_top_state_t* pstate) {
lhmsv_put(group_to_acc_field, value_field_name, ptop_keeper_for_group, NO_FREE);
}
if (*value_field_sval == 0) // Key present with null value
continue;
mv_t value_field_nval = pstate->allow_int_float
? mv_scan_number_or_die(value_field_sval)
: mv_from_float(mlr_double_from_string_or_die(value_field_sval));
// The top-keeper object will free the record if it isn't retained, or
// keep it if it is.
top_keeper_add(ptop_keeper_for_group, pstate->pmaybe_sign_flipper(&value_field_nval),

View file

@ -10308,6 +10308,98 @@ a b
mlr --oxtab stats2 -a cov -f y,z -g a ./reg_test/input/nullvals.dkvp
a b
mlr --opprint top -n 5 -f x ./reg_test/input/nullvals.dkvp
top_idx x_top
1 5
2 3
3 1
4 -
5 -
mlr --opprint top -n 5 -f y ./reg_test/input/nullvals.dkvp
top_idx y_top
1 6
2 4
3 2
4 -
5 -
mlr --opprint top -n 5 -f z ./reg_test/input/nullvals.dkvp
top_idx z_top
- -
- -
- -
- -
- -
mlr --opprint top -n 5 -f x,y,z ./reg_test/input/nullvals.dkvp
top_idx x_top y_top z_top
- 5 6 -
- 3 4 -
- 1 2 -
- - - -
- - - -
mlr --opprint top -n 5 -f x -g a ./reg_test/input/nullvals.dkvp
a top_idx x_top
b 1 5
b 2 3
b 3 1
b 4 -
b 5 -
mlr --opprint top -n 5 -f y -g a ./reg_test/input/nullvals.dkvp
a top_idx y_top
b 1 6
b 2 4
b 3 2
b 4 -
b 5 -
mlr --opprint top -n 5 -f z -g a ./reg_test/input/nullvals.dkvp
a top_idx z_top
b - -
b - -
b - -
b - -
b - -
mlr --opprint top -n 5 -f x,y,z -g a ./reg_test/input/nullvals.dkvp
a top_idx x_top y_top z_top
b - 5 6 -
b - 3 4 -
b - 1 2 -
b - - - -
b - - - -
mlr --opprint top -a -n 5 -f x ./reg_test/input/nullvals.dkvp
a x y z
b 5 - -
b 3 4 -
b 1 2 -
mlr --opprint top -a -n 5 -f y ./reg_test/input/nullvals.dkvp
a x y z
b - 6 -
b 3 4 -
b 1 2 -
mlr --opprint top -a -n 5 -f z ./reg_test/input/nullvals.dkvp
mlr --opprint top -a -n 5 -f x -g a ./reg_test/input/nullvals.dkvp
a x y z
b 5 - -
b 3 4 -
b 1 2 -
mlr --opprint top -a -n 5 -f y -g a ./reg_test/input/nullvals.dkvp
a x y z
b - 6 -
b 3 4 -
b 1 2 -
mlr --opprint top -a -n 5 -f z -g a ./reg_test/input/nullvals.dkvp
mlr --opprint step -a counter,rsum -f x ./reg_test/input/nullvals.dkvp
a x y z x_counter x_rsum
b 1 2 - 1 1

View file

@ -1079,21 +1079,21 @@ run_mlr --oxtab stats2 -a cov -f x,y -g a $indir/nullvals.dkvp
run_mlr --oxtab stats2 -a cov -f x,z -g a $indir/nullvals.dkvp
run_mlr --oxtab stats2 -a cov -f y,z -g a $indir/nullvals.dkvp
#run_mlr --opprint top -n 5 -f x $indir/nullvals.dkvp
#run_mlr --opprint top -n 5 -f y $indir/nullvals.dkvp
#run_mlr --opprint top -n 5 -f z $indir/nullvals.dkvp
#run_mlr --opprint top -n 5 -f x,y,z $indir/nullvals.dkvp
#run_mlr --opprint top -n 5 -f x -g a $indir/nullvals.dkvp
#run_mlr --opprint top -n 5 -f y -g a $indir/nullvals.dkvp
#run_mlr --opprint top -n 5 -f z -g a $indir/nullvals.dkvp
#run_mlr --opprint top -n 5 -f x,y,z -g a $indir/nullvals.dkvp
#
#run_mlr --opprint top -a -n 5 -f x $indir/nullvals.dkvp
#run_mlr --opprint top -a -n 5 -f y $indir/nullvals.dkvp
#run_mlr --opprint top -a -n 5 -f z $indir/nullvals.dkvp
#run_mlr --opprint top -a -n 5 -f x -g a $indir/nullvals.dkvp
#run_mlr --opprint top -a -n 5 -f y -g a $indir/nullvals.dkvp
#run_mlr --opprint top -a -n 5 -f z -g a $indir/nullvals.dkvp
run_mlr --opprint top -n 5 -f x $indir/nullvals.dkvp
run_mlr --opprint top -n 5 -f y $indir/nullvals.dkvp
run_mlr --opprint top -n 5 -f z $indir/nullvals.dkvp
run_mlr --opprint top -n 5 -f x,y,z $indir/nullvals.dkvp
run_mlr --opprint top -n 5 -f x -g a $indir/nullvals.dkvp
run_mlr --opprint top -n 5 -f y -g a $indir/nullvals.dkvp
run_mlr --opprint top -n 5 -f z -g a $indir/nullvals.dkvp
run_mlr --opprint top -n 5 -f x,y,z -g a $indir/nullvals.dkvp
run_mlr --opprint top -a -n 5 -f x $indir/nullvals.dkvp
run_mlr --opprint top -a -n 5 -f y $indir/nullvals.dkvp
run_mlr --opprint top -a -n 5 -f z $indir/nullvals.dkvp
run_mlr --opprint top -a -n 5 -f x -g a $indir/nullvals.dkvp
run_mlr --opprint top -a -n 5 -f y -g a $indir/nullvals.dkvp
run_mlr --opprint top -a -n 5 -f z -g a $indir/nullvals.dkvp
run_mlr --opprint step -a counter,rsum -f x $indir/nullvals.dkvp
run_mlr --opprint step -a counter,rsum -f y $indir/nullvals.dkvp