xrpld
Loading...
Searching...
No Matches
Histogram_test.cpp
1#include <test/csf/Histogram.h>
2
3#include <xrpl/beast/unit_test/suite.h>
4
5namespace xrpl::test {
6
8{
9public:
10 void
11 run() override
12 {
13 using namespace csf;
14 Histogram<int> hist;
15
16 BEAST_EXPECT(hist.size() == 0);
17 BEAST_EXPECT(hist.numBins() == 0);
18 BEAST_EXPECT(hist.minValue() == 0);
19 BEAST_EXPECT(hist.maxValue() == 0);
20 BEAST_EXPECT(hist.avg() == 0);
21 BEAST_EXPECT(hist.percentile(0.0f) == hist.minValue());
22 BEAST_EXPECT(hist.percentile(0.5f) == 0);
23 BEAST_EXPECT(hist.percentile(0.9f) == 0);
24 BEAST_EXPECT(hist.percentile(1.0f) == hist.maxValue());
25
26 hist.insert(1);
27
28 BEAST_EXPECT(hist.size() == 1);
29 BEAST_EXPECT(hist.numBins() == 1);
30 BEAST_EXPECT(hist.minValue() == 1);
31 BEAST_EXPECT(hist.maxValue() == 1);
32 BEAST_EXPECT(hist.avg() == 1);
33 BEAST_EXPECT(hist.percentile(0.0f) == hist.minValue());
34 BEAST_EXPECT(hist.percentile(0.5f) == 1);
35 BEAST_EXPECT(hist.percentile(0.9f) == 1);
36 BEAST_EXPECT(hist.percentile(1.0f) == hist.maxValue());
37
38 hist.insert(9);
39
40 BEAST_EXPECT(hist.size() == 2);
41 BEAST_EXPECT(hist.numBins() == 2);
42 BEAST_EXPECT(hist.minValue() == 1);
43 BEAST_EXPECT(hist.maxValue() == 9);
44 BEAST_EXPECT(hist.avg() == 5);
45 BEAST_EXPECT(hist.percentile(0.0f) == hist.minValue());
46 BEAST_EXPECT(hist.percentile(0.5f) == 1);
47 BEAST_EXPECT(hist.percentile(0.9f) == 9);
48 BEAST_EXPECT(hist.percentile(1.0f) == hist.maxValue());
49
50 hist.insert(1);
51
52 BEAST_EXPECT(hist.size() == 3);
53 BEAST_EXPECT(hist.numBins() == 2);
54 BEAST_EXPECT(hist.minValue() == 1);
55 BEAST_EXPECT(hist.maxValue() == 9);
56 BEAST_EXPECT(hist.avg() == 11 / 3);
57 BEAST_EXPECT(hist.percentile(0.0f) == hist.minValue());
58 BEAST_EXPECT(hist.percentile(0.5f) == 1);
59 BEAST_EXPECT(hist.percentile(0.9f) == 9);
60 BEAST_EXPECT(hist.percentile(1.0f) == hist.maxValue());
61 }
62};
63
65
66} // namespace xrpl::test
A testsuite class.
Definition suite.h:50
void run() override
Runs the suite.
BEAST_DEFINE_TESTSUITE(AMMClawback, app, xrpl)
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:5