From 515cec1210764241153f5d46d70ba5e943201b14 Mon Sep 17 00:00:00 2001 From: Damien Lespiau Date: Thu, 25 Jun 2015 23:59:21 +0100 Subject: stats: Add a way to retrieve the standard deviation Signed-off-by: Damien Lespiau --- lib/tests/igt_stats.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'lib/tests/igt_stats.c') diff --git a/lib/tests/igt_stats.c b/lib/tests/igt_stats.c index c20b4537..172e4b32 100644 --- a/lib/tests/igt_stats.c +++ b/lib/tests/igt_stats.c @@ -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(); } -- cgit v1.2.3