@@ -91,6 +91,20 @@ void igt_stats_fini(igt_stats_t *stats)
free(stats->values);
}
+
+/**
+ * igt_stats_is_population:
+ * @stats: An #igt_stats_t instance
+ *
+ * Returns: #true if @stats represents a population, #false if only a sample.
+ *
+ * See igt_stats_set_population() for more details.
+ */
+bool igt_stats_is_population(igt_stats_t *stats)
+{
+ return stats->is_population;
+}
+
/**
* igt_stats_set_population:
* @stats: An #igt_stats_t instance
@@ -26,6 +26,7 @@
#define __IGT_STATS_H__
#include <stdint.h>
+#include <stdbool.h>
/**
* igt_stats_t:
@@ -45,6 +46,7 @@ typedef struct {
void igt_stats_init(igt_stats_t *stats, unsigned int capacity);
void igt_stats_fini(igt_stats_t *stats);
+bool igt_stats_is_population(igt_stats_t *stats);
void igt_stats_set_population(igt_stats_t *stats, bool full_population);
void igt_stats_push(igt_stats_t *stats, uint64_t value);
double igt_stats_get_mean(igt_stats_t *stats);
@@ -35,6 +35,19 @@ static void test_init_zero(void)
igt_assert(stats.mean == 0.);
}
+static void test_init(void)
+{
+ igt_stats_t stats;
+
+ igt_stats_init(&stats, 2);
+
+ /*
+ * Make sure we default to representing only a sample of a bigger
+ * population.
+ */
+ igt_assert(igt_stats_is_population(&stats) == false);
+}
+
static void test_mean(void)
{
igt_stats_t stats;
@@ -115,6 +128,7 @@ static void test_std_deviation(void)
igt_simple_main
{
test_init_zero();
+ test_init();
test_mean();
test_invalidate_mean();
test_std_deviation();
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com> --- lib/igt_stats.c | 14 ++++++++++++++ lib/igt_stats.h | 2 ++ lib/tests/igt_stats.c | 14 ++++++++++++++ 3 files changed, 30 insertions(+)