stats: Add a getter for the population property

Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
This commit is contained in:
Damien Lespiau 2015-06-26 18:04:34 +01:00
parent 3a5cf84317
commit da123adeae
3 changed files with 30 additions and 0 deletions

View File

@ -91,6 +91,20 @@ void igt_stats_fini(igt_stats_t *stats)
free(stats->values); 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: * igt_stats_set_population:
* @stats: An #igt_stats_t instance * @stats: An #igt_stats_t instance

View File

@ -26,6 +26,7 @@
#define __IGT_STATS_H__ #define __IGT_STATS_H__
#include <stdint.h> #include <stdint.h>
#include <stdbool.h>
/** /**
* igt_stats_t: * igt_stats_t:
@ -45,6 +46,7 @@ typedef struct {
void igt_stats_init(igt_stats_t *stats, unsigned int capacity); void igt_stats_init(igt_stats_t *stats, unsigned int capacity);
void igt_stats_fini(igt_stats_t *stats); 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_set_population(igt_stats_t *stats, bool full_population);
void igt_stats_push(igt_stats_t *stats, uint64_t value); void igt_stats_push(igt_stats_t *stats, uint64_t value);
double igt_stats_get_mean(igt_stats_t *stats); double igt_stats_get_mean(igt_stats_t *stats);

View File

@ -35,6 +35,19 @@ static void test_init_zero(void)
igt_assert(stats.mean == 0.); 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) static void test_mean(void)
{ {
igt_stats_t stats; igt_stats_t stats;
@ -115,6 +128,7 @@ static void test_std_deviation(void)
igt_simple_main igt_simple_main
{ {
test_init_zero(); test_init_zero();
test_init();
test_mean(); test_mean();
test_invalidate_mean(); test_invalidate_mean();
test_std_deviation(); test_std_deviation();