==> 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}