mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-10 21:23:58 +01:00
Add unittests for finding the third quartile of a set.
This commit is contained in:
parent
8e39395199
commit
01800ea1e4
@ -689,5 +689,11 @@ median_int32(int32_t *array, int n_elements)
|
||||
return find_nth_int32(array, n_elements, (n_elements-1)/2);
|
||||
}
|
||||
|
||||
static INLINE uint32_t
|
||||
third_quartile_uint32(uint32_t *array, int n_elements)
|
||||
{
|
||||
return find_nth_uint32(array, n_elements, (n_elements*3)/4);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -1420,7 +1420,8 @@ dirserv_compute_performance_thresholds(routerlist_t *rl,
|
||||
/* (Now bandwidths is sorted.) */
|
||||
if (fast_bandwidth_kb < ROUTER_REQUIRED_MIN_BANDWIDTH/(2 * 1000))
|
||||
fast_bandwidth_kb = bandwidths_kb[n_active/4];
|
||||
guard_bandwidth_including_exits_kb = bandwidths_kb[n_active*3/4];
|
||||
guard_bandwidth_including_exits_kb =
|
||||
third_quartile_uint32(bandwidths_kb, n_active);
|
||||
guard_tk = find_nth_long(tks, n_active, n_active/8);
|
||||
}
|
||||
|
||||
|
@ -835,6 +835,7 @@ static void
|
||||
test_container_order_functions(void)
|
||||
{
|
||||
int lst[25], n = 0;
|
||||
unsigned int lst2[25];
|
||||
// int a=12,b=24,c=25,d=60,e=77;
|
||||
|
||||
#define median() median_int(lst, n)
|
||||
@ -856,6 +857,28 @@ test_container_order_functions(void)
|
||||
test_eq(25, median()); /* 12,12,24,25,60,77,77 */
|
||||
#undef median
|
||||
|
||||
#define third_quartile() third_quartile_uint32(lst2, n)
|
||||
|
||||
n = 0;
|
||||
lst2[n++] = 1;
|
||||
test_eq(1, third_quartile()); /* ~1~ */
|
||||
lst2[n++] = 2;
|
||||
test_eq(2, third_quartile()); /* 1, ~2~ */
|
||||
lst2[n++] = 3;
|
||||
lst2[n++] = 4;
|
||||
lst2[n++] = 5;
|
||||
test_eq(4, third_quartile()); /* 1, 2, 3, ~4~, 5 */
|
||||
lst2[n++] = 6;
|
||||
lst2[n++] = 7;
|
||||
lst2[n++] = 8;
|
||||
lst2[n++] = 9;
|
||||
test_eq(7, third_quartile()); /* 1, 2, 3, 4, 5, 6, ~7~, 8, 9 */
|
||||
lst2[n++] = 10;
|
||||
lst2[n++] = 11;
|
||||
test_eq(9, third_quartile()); /* 1, 2, 3, 4, 5, 6, 7, 8, ~9~, 10, 11 */
|
||||
|
||||
#undef third_quartile
|
||||
|
||||
done:
|
||||
;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user