summaryrefslogtreecommitdiff
path: root/lib/tests
diff options
context:
space:
mode:
authorDamien Lespiau <damien.lespiau@intel.com>2015-06-26 00:20:44 +0100
committerDamien Lespiau <damien.lespiau@intel.com>2015-06-27 16:03:27 +0100
commit76ea7b913373d1291a95706dfede7e48a812777e (patch)
tree1f77410c80ec48262550731d006f9462e05f6152 /lib/tests
parent515cec1210764241153f5d46d70ba5e943201b14 (diff)
tests/stats: Make sure we properly invalidate the cached mean
Sure, that's an implementation details, but make sure we do recompute the mean when we add a new value. Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Diffstat (limited to 'lib/tests')
-rw-r--r--lib/tests/igt_stats.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/lib/tests/igt_stats.c b/lib/tests/igt_stats.c
index 172e4b32..f9081c76 100644
--- a/lib/tests/igt_stats.c
+++ b/lib/tests/igt_stats.c
@@ -45,6 +45,30 @@ static void test_mean(void)
igt_stats_fini(&stats);
}
+static void test_invalidate_mean(void)
+{
+ igt_stats_t stats;
+ double mean1, mean2;
+
+ igt_stats_init(&stats, 6);
+
+ igt_stats_push(&stats, 2);
+ igt_stats_push(&stats, 4);
+ igt_stats_push(&stats, 6);
+ igt_stats_push(&stats, 8);
+ igt_stats_push(&stats, 10);
+
+ mean1 = igt_stats_get_mean(&stats);
+ igt_assert(mean1 == (2 + 4 + 6 + 8 + 10) / 5.);
+
+ igt_stats_push(&stats, 100);
+
+ mean2 = igt_stats_get_mean(&stats);
+ igt_assert(mean1 != mean2);
+
+ igt_stats_fini(&stats);
+}
+
/*
* Taken from the "Basic examples" section of:
* https://en.wikipedia.org/wiki/Standard_deviation
@@ -80,5 +104,6 @@ static void test_std_deviation(void)
igt_simple_main
{
test_mean();
+ test_invalidate_mean();
test_std_deviation();
}