}
TEST(Histogram, Position) {
- {
- pow2_hist_t h;
- uint64_t lb, ub;
- h.add(0);
- ASSERT_EQ(-1, h.get_position_micro(-20, &lb, &ub));
- }
- {
- pow2_hist_t h;
- h.add(0);
- uint64_t lb, ub;
- h.get_position_micro(0, &lb, &ub);
- ASSERT_EQ(0u, lb);
- ASSERT_EQ(1000000u, ub);
- h.add(0);
- h.add(0);
- h.add(0);
- h.get_position_micro(0, &lb, &ub);
- ASSERT_EQ(0u, lb);
- ASSERT_EQ(1000000u, ub);
- }
- {
- pow2_hist_t h;
- h.add(1);
- h.add(1);
- uint64_t lb, ub;
- h.get_position_micro(0, &lb, &ub);
- ASSERT_EQ(0u, lb);
- ASSERT_EQ(0u, ub);
- h.add(0);
- h.get_position_micro(0, &lb, &ub);
- ASSERT_EQ(0u, lb);
- ASSERT_EQ(333333u, ub);
- h.get_position_micro(1, &lb, &ub);
- ASSERT_EQ(333333u, lb);
- ASSERT_EQ(1000000u, ub);
- }
- {
- pow2_hist_t h;
- h.h.resize(10, 0);
- h.h[0] = 1;
- h.h[5] = 1;
- uint64_t lb, ub;
- h.get_position_micro(4, &lb, &ub);
- ASSERT_EQ(500000u, lb);
- ASSERT_EQ(500000u, ub);
- }
+ pow2_hist_t h;
+ uint64_t lb, ub;
+ h.add(0);
+ ASSERT_EQ(-1, h.get_position_micro(-20, &lb, &ub));
+}
+
+TEST(Histogram, Position1) {
+ pow2_hist_t h;
+ h.add(0);
+ uint64_t lb, ub;
+ h.get_position_micro(0, &lb, &ub);
+ ASSERT_EQ(0u, lb);
+ ASSERT_EQ(1000000u, ub);
+ h.add(0);
+ h.add(0);
+ h.add(0);
+ h.get_position_micro(0, &lb, &ub);
+ ASSERT_EQ(0u, lb);
+ ASSERT_EQ(1000000u, ub);
}
TEST(Histogram, Position2) {
+ pow2_hist_t h;
+ h.add(1);
+ h.add(1);
+ uint64_t lb, ub;
+ h.get_position_micro(0, &lb, &ub);
+ ASSERT_EQ(0u, lb);
+ ASSERT_EQ(0u, ub);
+ h.add(0);
+ h.get_position_micro(0, &lb, &ub);
+ ASSERT_EQ(0u, lb);
+ ASSERT_EQ(333333u, ub);
+ h.get_position_micro(1, &lb, &ub);
+ ASSERT_EQ(333333u, lb);
+ ASSERT_EQ(1000000u, ub);
+}
+
+TEST(Histogram, Position3) {
pow2_hist_t h;
h.h.resize(10, 0);
- h.h[0] = UINT_MAX;
- h.h[5] = UINT_MAX;
+ h.h[0] = 1;
+ h.h[5] = 1;
uint64_t lb, ub;
h.get_position_micro(4, &lb, &ub);
ASSERT_EQ(500000u, lb);
ASSERT_EQ(500000u, ub);
}
+TEST(Histogram, Position4) {
+ pow2_hist_t h;
+ h.h.resize(10, 0);
+ h.h[0] = UINT_MAX;
+ h.h[5] = UINT_MAX;
+ uint64_t lb, ub;
+ h.get_position_micro(4, &lb, &ub);
+ ASSERT_EQ(0u, lb);
+ ASSERT_EQ(0u, ub);
+}
+
TEST(Histogram, Decay) {
pow2_hist_t h;
h.set_bin(0, 123);