stats: Add a way to retrieve the standard deviation

Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
This commit is contained in:
Damien Lespiau
2015-06-25 23:59:21 +01:00
parent 05c10f940f
commit 515cec1210
6 changed files with 46 additions and 2 deletions
+1 -1
View File
@@ -15,5 +15,5 @@ AM_CFLAGS = $(DRM_CFLAGS) $(CWARNFLAGS) \
LDADD = ../libintel_tools.la $(PCIACCESS_LIBS) $(DRM_LIBS) $(LIBUNWIND_LIBS)
LDADD += $(CAIRO_LIBS) $(LIBUDEV_LIBS) $(GLIB_LIBS)
LDADD += $(CAIRO_LIBS) $(LIBUDEV_LIBS) $(GLIB_LIBS) -lm
AM_CFLAGS += $(CAIRO_CFLAGS) $(LIBUDEV_CFLAGS) $(GLIB_CFLAGS)
+33
View File
@@ -45,7 +45,40 @@ static void test_mean(void)
igt_stats_fini(&stats);
}
/*
* Taken from the "Basic examples" section of:
* https://en.wikipedia.org/wiki/Standard_deviation
*/
static void test_std_deviation(void)
{
igt_stats_t stats;
double mean, variance, std_deviation;
igt_stats_init(&stats, 8);
igt_stats_push(&stats, 2);
igt_stats_push(&stats, 4);
igt_stats_push(&stats, 4);
igt_stats_push(&stats, 4);
igt_stats_push(&stats, 5);
igt_stats_push(&stats, 5);
igt_stats_push(&stats, 7);
igt_stats_push(&stats, 9);
mean = igt_stats_get_mean(&stats);
igt_assert(mean == (2 + 3 * 4 + 2 * 5 + 7 + 9) / 8.);
variance = igt_stats_get_variance(&stats);
igt_assert(variance == 4);
std_deviation = igt_stats_get_std_deviation(&stats);
igt_assert(std_deviation == 2);
igt_stats_fini(&stats);
}
igt_simple_main
{
test_mean();
test_std_deviation();
}