diff options
Diffstat (limited to 'cli/cli.go')
| -rw-r--r-- | cli/cli.go | 13 |
1 files changed, 10 insertions, 3 deletions
@@ -32,7 +32,10 @@ var ( backtest = flag.Bool("backtest", false, "run data benchmarks comparing computed values against stored reference values") ) -const backtestMinimumDistanceM = 10_000 +const ( + backtestMinimumDistanceM = 10_000 + backtestMinimumMovingRatio = 0.8 +) func Run(db *sql.DB, configPath string, appConfig config.Config) { switch { @@ -134,12 +137,16 @@ func runBacktest(db *sql.DB) error { fmt.Fprintf(table, "p%g\t%.1f\n", p, distribution[p]) } table.Flush() - slog.Info("Moving time backtest", "rides", len(samples), "min_distance_m", backtestMinimumDistanceM, "mean_err_pct", math.Round(meanAbsErr(absErrors)*10)/10, "stderr_pct", math.Round(stdErrAbsErr(absErrors)*10)/10) + slog.Info("Moving time backtest", "rides", len(samples), "min_distance_m", backtestMinimumDistanceM, "min_moving_ratio", backtestMinimumMovingRatio, "mean_err_pct", math.Round(meanAbsErr(absErrors)*10)/10, "stderr_pct", math.Round(stdErrAbsErr(absErrors)*10)/10) return nil } func isBacktestEligible(item rides.Ride) bool { - return item.GPXPath != "" && item.DistanceM >= backtestMinimumDistanceM && item.MovingTimeS > 0 + return item.GPXPath != "" && + item.DistanceM >= backtestMinimumDistanceM && + item.MovingTimeS > 0 && + item.ElapsedTimeS > 0 && + float64(item.MovingTimeS)/float64(item.ElapsedTimeS) >= backtestMinimumMovingRatio } func meanAbsErr(absErrors []float64) float64 { |
