miller/xtodo.txt
John Kerl 0493a0debd
Fatal-on-data-error mlr -x option (#1373)
* Fatal-on-data-error `mlr -x` option [WIP]

* arithmetic.go error-reason propagation

* more

* more

* more

* renames

* doc page

* namefix

* fix broken test

* make dev
2023-08-30 19:39:22 -04:00

70 lines
2.2 KiB
Text

----------------------------------------------------------------
* look at: mr -vvv test/cases/io-spec-tsv/0004/cmd
----------------------------------------------------------------
func (keeper *PercentileKeeper) EmitNamed(name string) *mlrval.Mlrval {
if name == "min" {
return keeper.EmitNonInterpolated(0.0)
} else if name == "p25" {
return keeper.EmitNonInterpolated(25.0)
} else if name == "median" {
return keeper.EmitNonInterpolated(50.0)
} else if name == "p75" {
return keeper.EmitNonInterpolated(75.0)
} else if name == "max" {
return keeper.EmitNonInterpolated(100.0)
} else if name == "iqr" {
p25 := keeper.EmitNonInterpolated(25.0)
p75 := keeper.EmitNonInterpolated(75.0)
if p25.IsNumeric() && p75.IsNumeric() {
return bifs.BIF_minus_binary(p75, p25)
} else {
return mlrval.VOID
}
} else if name == "lof" {
p25 := keeper.EmitNonInterpolated(25.0)
iqr := keeper.EmitNamed("iqr")
if p25.IsNumeric() && iqr.IsNumeric() {
return bifs.BIF_minus_binary(p25, bifs.BIF_times(fenceOuterK, iqr))
} else {
return mlrval.VOID
}
} else if name == "lif" {
p25 := keeper.EmitNonInterpolated(25.0)
iqr := keeper.EmitNamed("iqr")
if p25.IsNumeric() && iqr.IsNumeric() {
return bifs.BIF_minus_binary(p25, bifs.BIF_times(fenceInnerK, iqr))
} else {
return mlrval.VOID
}
} else if name == "uif" {
p75 := keeper.EmitNonInterpolated(75.0)
iqr := keeper.EmitNamed("iqr")
if p75.IsNumeric() && iqr.IsNumeric() {
return bifs.BIF_plus_binary(p75, bifs.BIF_times(fenceInnerK, iqr))
} else {
return mlrval.VOID
}
} else if name == "uof" {
p75 := keeper.EmitNonInterpolated(75.0)
iqr := keeper.EmitNamed("iqr")
if p75.IsNumeric() && iqr.IsNumeric() {
return bifs.BIF_plus_binary(p75, bifs.BIF_times(fenceOuterK, iqr))
} else {
return mlrval.VOID
}
} else {
return mlrval.FromError(
errors.New(
"stats1: unrecognized
),
)
}
}