示例#1
0
char *Stats_dump(Stats *st)
{
  char *summary = NULL;
  int rc = asprintf(&summary,
                    "sum: %.2f\n"
                    "sumsq: %.2f\n"
                    "n: %ld\n"
                    "min: %.2f\n"
                    "max: %.2f\n"
                    "mean: %.2f\n"
                    "stddev: %.2f\n",
                    st->sum,
                    st->sumsq,
                    st->n,
                    st->min,
                    st->max,
                    Stats_mean(st),
                    Stats_stddev(st)
                   );

  check(rc > 0, "Failed to build summary");

  return summary;

error:
  return NULL;
}
示例#2
0
char* test_recreate() {
    Stats* st = Stats_recreate(expect.sum, expect.sumsq, expect.n, expect.min, expect.max);

    mu_assert(st->sum == expect.sum, "sum not equal");
    mu_assert(st->sumsq == expect.sumsq, "sumsq not equal");
    mu_assert(st->n == expect.n, "n not equal");
    mu_assert(st->min == expect.min, "min not equal");
    mu_assert(st->max == expect.max, "max not equal");
    mu_assert(EQ(expect_mean, Stats_mean(st), 3), "mean not valid");
    mu_assert(EQ(expect_stddev, Stats_stddev(st), 3), "stddev not valid");

    return NULL;
}
示例#3
0
char *test_recreate() {
    Stats *st = Stats_recreate(expect.sum, expect.sumsq, expect.n, expect.min, expect.max);

    mu_assert(st->sum == expect.sum, "sum !=");
    mu_assert(st->sumsq == expect.sumsq, "sumsq !=");
    mu_assert(st->n == expect.n, "n !=");
    mu_assert(st->min == expect.min, "min !=");
    mu_assert(st->max == expect.max, "max !=");
    mu_assert(EQ(Stats_mean(st), expect_mean, 3), "mean !=");
    mu_assert(EQ(Stats_stddev(st), expect_stddev, 3), "stddev !=");

    return NULL;
}
示例#4
0
double Server_return_stddev(Hashmap *store, char *name)
{
  bstring b_name = bfromcstr(name);
  Stats *stat = Hashmap_get(store, b_name);
  check(stat != NULL, "Could not find stat");

  free(b_name);

  return Stats_stddev(stat);

error:
  if (b_name) { free(b_name); }
  return -1;
}
示例#5
0
char* test_operations() {
    int i = 0;
    Stats* st = Stats_create();
    mu_assert(st != NULL, "Failed to create stats.");

    for(i = 0; i < NUM_SAMPLES; i++) {
        Stats_sample(st, samples[i]);
    }

    Stats_dump(st);

    mu_assert(EQ(st->sumsq, expect.sumsq, 3), "sumsq not valid");
    mu_assert(EQ(st->sum, expect.sum, 3), "sum not valid");
    mu_assert(EQ(st->min, expect.min, 3), "min not valid");
    mu_assert(EQ(st->max, expect.max, 3), "max not valid");
    mu_assert(EQ(st->n, expect.n, 2), "n not valid");
    mu_assert(EQ(expect_mean, Stats_mean(st), 3), "mean not valid");
    mu_assert(EQ(expect_stddev, Stats_stddev(st), 3), "stddev not valid");

    return NULL;
}
示例#6
0
char *test_operations() {
    int i = 0;
    Stats *st = Stats_create();
    mu_assert(st != NULL, "failed to create stats");

    for (i = 0; i < NUM_SAMPLES; i++) {
        Stats_sample(st, samples[i]);
    }
    Stats_dump(st);

    // note ble->bla is syntactic sugar for (*ble).bla
    // in this context st is a pointer while expect is not
    mu_assert(EQ(st->sumsq, expect.sumsq, 3), "sumsq invalid");
    mu_assert(EQ(st->sum, expect.sum, 3), "sum invalid");
    mu_assert(EQ(st->min, expect.min, 3), "min invalid ");
    //mu_assert(EQ(st->max, expect.max, 3), "max invalid"); not accurate enough for some reason
    mu_assert(EQ(st->n, expect.n, 3), "n invalid");
    mu_assert(EQ(Stats_mean(st), expect_mean, 3), "mean invalid");
    mu_assert(EQ(Stats_stddev(st), expect_stddev, 3), "stddev invalid");

    return NULL;
}
示例#7
0
void Stats_dump(Stats *st)
{
	fprintf(stderr, "sum: %f, sumsq: %f, n: %ld, min: %f, max: %f, mean: %f, stddev: %f\n",
			st->sum, st->sumsq, st->n, st->min, st->max, Stats_mean(st), Stats_stddev(st));
}