skip to content
==> tests/golden.c <==
1/* @ajax/hist-quantile's functions against vectors the Rust computed (alpha-rust-mesh, the same inputs). */
2#include "hist_quantile.h"
3#include "mesh/check.h"
4
5#include <stdint.h>
6
7int main(void) {
8    { const uint32_t h[] = {0u, 2u, 1u, 1u}; CHECK_U(hist_quantile(h, 4, UINT64_C(0)), 1u); }
9    { const uint32_t h[] = {0u, 2u, 1u, 1u}; CHECK_U(hist_quantile(h, 4, UINT64_C(1)), 1u); }
10    { const uint32_t h[] = {0u, 2u, 1u, 1u}; CHECK_U(hist_quantile(h, 4, UINT64_C(500)), 1u); }
11    { const uint32_t h[] = {0u, 2u, 1u, 1u}; CHECK_U(hist_quantile(h, 4, UINT64_C(900)), 3u); }
12    { const uint32_t h[] = {0u, 2u, 1u, 1u}; CHECK_U(hist_quantile(h, 4, UINT64_C(990)), 3u); }
13    { const uint32_t h[] = {0u, 2u, 1u, 1u}; CHECK_U(hist_quantile(h, 4, UINT64_C(999)), 3u); }
14    { const uint32_t h[] = {0u, 2u, 1u, 1u}; CHECK_U(hist_quantile(h, 4, UINT64_C(1000)), 3u); }
15    { const uint32_t h[] = {0u, 2u, 1u, 1u}; CHECK_U(hist_quantile(h, 4, UINT64_C(5000)), 3u); }
16    { const uint32_t h[] = {0u, 2u, 1u, 1u}; CHECK_U(hist_quantile(h, 4, UINT64_C(18446744073709551615)), 3u); }
17    { const uint32_t h[] = {0u, 0u, 0u, 0u}; CHECK_U(hist_quantile(h, 4, UINT64_C(0)), 0u); }
18    { const uint32_t h[] = {0u, 0u, 0u, 0u}; CHECK_U(hist_quantile(h, 4, UINT64_C(1)), 0u); }
19    { const uint32_t h[] = {0u, 0u, 0u, 0u}; CHECK_U(hist_quantile(h, 4, UINT64_C(500)), 0u); }
20    { const uint32_t h[] = {0u, 0u, 0u, 0u}; CHECK_U(hist_quantile(h, 4, UINT64_C(900)), 0u); }
21    { const uint32_t h[] = {0u, 0u, 0u, 0u}; CHECK_U(hist_quantile(h, 4, UINT64_C(990)), 0u); }
22    { const uint32_t h[] = {0u, 0u, 0u, 0u}; CHECK_U(hist_quantile(h, 4, UINT64_C(999)), 0u); }
23    { const uint32_t h[] = {0u, 0u, 0u, 0u}; CHECK_U(hist_quantile(h, 4, UINT64_C(1000)), 0u); }
24    { const uint32_t h[] = {0u, 0u, 0u, 0u}; CHECK_U(hist_quantile(h, 4, UINT64_C(5000)), 0u); }
25    { const uint32_t h[] = {0u, 0u, 0u, 0u}; CHECK_U(hist_quantile(h, 4, UINT64_C(18446744073709551615)), 0u); }
26    { const uint32_t h[] = {5u}; CHECK_U(hist_quantile(h, 1, UINT64_C(0)), 0u); }
27    { const uint32_t h[] = {5u}; CHECK_U(hist_quantile(h, 1, UINT64_C(1)), 0u); }
28    { const uint32_t h[] = {5u}; CHECK_U(hist_quantile(h, 1, UINT64_C(500)), 0u); }
29    { const uint32_t h[] = {5u}; CHECK_U(hist_quantile(h, 1, UINT64_C(900)), 0u); }
30    { const uint32_t h[] = {5u}; CHECK_U(hist_quantile(h, 1, UINT64_C(990)), 0u); }
31    { const uint32_t h[] = {5u}; CHECK_U(hist_quantile(h, 1, UINT64_C(999)), 0u); }
32    { const uint32_t h[] = {5u}; CHECK_U(hist_quantile(h, 1, UINT64_C(1000)), 0u); }
33    { const uint32_t h[] = {5u}; CHECK_U(hist_quantile(h, 1, UINT64_C(5000)), 0u); }
34    { const uint32_t h[] = {5u}; CHECK_U(hist_quantile(h, 1, UINT64_C(18446744073709551615)), 0u); }
35    { const uint32_t h[] = {1u, 0u, 0u, 0u, 0u, 9u}; CHECK_U(hist_quantile(h, 6, UINT64_C(0)), 0u); }
36    { const uint32_t h[] = {1u, 0u, 0u, 0u, 0u, 9u}; CHECK_U(hist_quantile(h, 6, UINT64_C(1)), 0u); }
37    { const uint32_t h[] = {1u, 0u, 0u, 0u, 0u, 9u}; CHECK_U(hist_quantile(h, 6, UINT64_C(500)), 5u); }
38    { const uint32_t h[] = {1u, 0u, 0u, 0u, 0u, 9u}; CHECK_U(hist_quantile(h, 6, UINT64_C(900)), 5u); }
39    { const uint32_t h[] = {1u, 0u, 0u, 0u, 0u, 9u}; CHECK_U(hist_quantile(h, 6, UINT64_C(990)), 5u); }
40    { const uint32_t h[] = {1u, 0u, 0u, 0u, 0u, 9u}; CHECK_U(hist_quantile(h, 6, UINT64_C(999)), 5u); }
41    { const uint32_t h[] = {1u, 0u, 0u, 0u, 0u, 9u}; CHECK_U(hist_quantile(h, 6, UINT64_C(1000)), 5u); }
42    { const uint32_t h[] = {1u, 0u, 0u, 0u, 0u, 9u}; CHECK_U(hist_quantile(h, 6, UINT64_C(5000)), 5u); }
43    { const uint32_t h[] = {1u, 0u, 0u, 0u, 0u, 9u}; CHECK_U(hist_quantile(h, 6, UINT64_C(18446744073709551615)), 5u); }
44    { const uint32_t h[] = {4294967295u, 4294967295u, 3u}; CHECK_U(hist_quantile(h, 3, UINT64_C(0)), 0u); }
45    { const uint32_t h[] = {4294967295u, 4294967295u, 3u}; CHECK_U(hist_quantile(h, 3, UINT64_C(1)), 0u); }
46    { const uint32_t h[] = {4294967295u, 4294967295u, 3u}; CHECK_U(hist_quantile(h, 3, UINT64_C(500)), 1u); }
47    { const uint32_t h[] = {4294967295u, 4294967295u, 3u}; CHECK_U(hist_quantile(h, 3, UINT64_C(900)), 1u); }
48    { const uint32_t h[] = {4294967295u, 4294967295u, 3u}; CHECK_U(hist_quantile(h, 3, UINT64_C(990)), 1u); }
49    { const uint32_t h[] = {4294967295u, 4294967295u, 3u}; CHECK_U(hist_quantile(h, 3, UINT64_C(999)), 1u); }
50    { const uint32_t h[] = {4294967295u, 4294967295u, 3u}; CHECK_U(hist_quantile(h, 3, UINT64_C(1000)), 2u); }
51    { const uint32_t h[] = {4294967295u, 4294967295u, 3u}; CHECK_U(hist_quantile(h, 3, UINT64_C(5000)), 2u); }
52    { const uint32_t h[] = {4294967295u, 4294967295u, 3u}; CHECK_U(hist_quantile(h, 3, UINT64_C(18446744073709551615)), 2u); }
53    { const uint32_t h[] = {0u, 0u, 0u, 1u}; CHECK_U(hist_quantile(h, 4, UINT64_C(0)), 3u); }
54    { const uint32_t h[] = {0u, 0u, 0u, 1u}; CHECK_U(hist_quantile(h, 4, UINT64_C(1)), 3u); }
55    { const uint32_t h[] = {0u, 0u, 0u, 1u}; CHECK_U(hist_quantile(h, 4, UINT64_C(500)), 3u); }
56    { const uint32_t h[] = {0u, 0u, 0u, 1u}; CHECK_U(hist_quantile(h, 4, UINT64_C(900)), 3u); }
57    { const uint32_t h[] = {0u, 0u, 0u, 1u}; CHECK_U(hist_quantile(h, 4, UINT64_C(990)), 3u); }
58    { const uint32_t h[] = {0u, 0u, 0u, 1u}; CHECK_U(hist_quantile(h, 4, UINT64_C(999)), 3u); }
59    { const uint32_t h[] = {0u, 0u, 0u, 1u}; CHECK_U(hist_quantile(h, 4, UINT64_C(1000)), 3u); }
60    { const uint32_t h[] = {0u, 0u, 0u, 1u}; CHECK_U(hist_quantile(h, 4, UINT64_C(5000)), 3u); }
61    { const uint32_t h[] = {0u, 0u, 0u, 1u}; CHECK_U(hist_quantile(h, 4, UINT64_C(18446744073709551615)), 3u); }
62    return mesh_check_done();
63}