mirror of
https://github.com/johnkerl/miller.git
synced 2026-07-27 01:36:10 +00:00
null-value aggregators UT
This commit is contained in:
parent
8acce40a23
commit
b71763ee7b
3 changed files with 114 additions and 20 deletions
|
|
@ -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),
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue