24 #include "cheetah/utils/test/BinMapTest.h" 25 #include "cheetah/utils/BinMap.h" 34 BinMapTest::BinMapTest()
39 BinMapTest::~BinMapTest()
43 void BinMapTest::SetUp()
47 void BinMapTest::TearDown()
51 TEST_F(BinMapTest, test_hash)
55 BinMap<double> map1(32*256);
56 BinMap<double> map2(32*256);
57 std::size_t id1=std::hash<utils::BinMap<double>>()(map1);
58 std::size_t id2=std::hash<utils::BinMap<double>>()(map2);
60 map2.set_lower_bound(10030.012);
61 ASSERT_NE(id1, std::hash<utils::BinMap<double>>()(map2));
62 map1.set_lower_bound(10030.012);
63 id1=std::hash<utils::BinMap<double>>()(map1);
64 ASSERT_EQ(id1, std::hash<utils::BinMap<double>>()(map2));
67 TEST_F(BinMapTest, test_double_map)
69 utils::BinMap<double> map(32*256);
70 double start = 142.779541;
71 double width = 0.006104;
72 map.set_lower_bound(start);
73 map.set_bin_width(width);
74 ASSERT_DOUBLE_EQ( start + width/2.0, map.bin_assignment_number(0));
75 ASSERT_DOUBLE_EQ( start , map.bin_start(0));
76 ASSERT_DOUBLE_EQ( start , map.lower_bound());
77 ASSERT_DOUBLE_EQ( start + width , map.bin_end(0));
78 ASSERT_DOUBLE_EQ( start + width/2.0 + width , map.bin_assignment_number(1));
79 ASSERT_DOUBLE_EQ( start + width/2.0 + 2*width , map.bin_assignment_number(2));
80 ASSERT_EQ( 0U , map.bin_index(start) );
81 ASSERT_EQ( 1U , map.bin_index(start + width) );
84 TEST_F(BinMapTest, test_negative_width)
86 utils::BinMap<double> map(32*256);
87 double start = 142.779541;
88 double width = 0.006104;
89 map.set_lower_bound(start);
90 map.set_bin_width(-1.0*width);
91 ASSERT_DOUBLE_EQ( start - width/2.0, map.bin_assignment_number(0));
92 ASSERT_DOUBLE_EQ( start , map.bin_start(0));
93 ASSERT_DOUBLE_EQ( start , map.lower_bound());
94 ASSERT_DOUBLE_EQ( start - width , map.bin_end(0));
95 ASSERT_DOUBLE_EQ( start - width/2.0 - width , map.bin_assignment_number(1));
96 ASSERT_DOUBLE_EQ( start - width/2.0 - 2*width , map.bin_assignment_number(2));
97 ASSERT_EQ( 0U , map.bin_index(start) );
98 ASSERT_EQ( 1U , map.bin_index(start - width) );
101 TEST_F(BinMapTest, test_bin_width)
104 utils::BinMap<int> map(1);
106 map.set_lower_bound(start);
108 map.set_bin_width(width);
109 ASSERT_EQ(width, map.bin_width());
112 utils::BinMap<int> map(1);
115 int end = start + width;
116 map.set_lower_bound(start);
117 map.set_upper_bound(end);
118 ASSERT_EQ(width, map.bin_width());
Some limits and constants for FLDO.