// ---------------------------------------------------------------- static char* test_percentile_keeper() { percentile_keeper_t* ppercentile_keeper = percentile_keeper_alloc(); percentile_keeper_ingest(ppercentile_keeper, 1.0); percentile_keeper_ingest(ppercentile_keeper, 2.0); percentile_keeper_ingest(ppercentile_keeper, 3.0); percentile_keeper_ingest(ppercentile_keeper, 4.0); percentile_keeper_ingest(ppercentile_keeper, 5.0); percentile_keeper_print(ppercentile_keeper); double p, q; p = 0.0; q = percentile_keeper_emit(ppercentile_keeper, p); printf("%4.2lf -> %7.4lf\n", p, q); mu_assert_lf(q == 1.0); p = 10.0; q = percentile_keeper_emit(ppercentile_keeper, p); printf("%4.2lf -> %7.4lf\n", p, q); mu_assert_lf(q == 1.0); p = 50.0; q = percentile_keeper_emit(ppercentile_keeper, p); printf("%4.2lf -> %7.4lf\n", p, q); mu_assert_lf(q == 3.0); p = 90.0; q = percentile_keeper_emit(ppercentile_keeper, p); printf("%4.2lf -> %7.4lf\n", p, q); mu_assert_lf(q == 5.0); p = 100.0; q = percentile_keeper_emit(ppercentile_keeper, p); printf("%4.2lf -> %7.4lf\n", p, q); mu_assert_lf(q == 5.0); percentile_keeper_free(ppercentile_keeper); return NULL; }
static void acc_percentile_dingest(void* pvstate, double val) { acc_percentile_state_t* pstate = pvstate; percentile_keeper_ingest(pstate->ppercentile_keeper, val); }
static void stats1_percentile_ningest(void* pvstate, mv_t* pval) { stats1_percentile_state_t* pstate = pvstate; percentile_keeper_ingest(pstate->ppercentile_keeper, *pval); }