10 #include "gtest/gtest.h"
14 TEST(FunctionalExpansionsTest, hashPoint)
16 const Point location(0.9780619323, 0.2136556650, 0.3509044429);
17 const Point location_mirror(location);
18 Point location_twiddle_limit(location);
19 Point location_twiddle_nochange(location);
21 location_twiddle_limit(0) += 6e-17;
22 location_twiddle_nochange(0) += 5e-17;
30 EXPECT_EQ(result, result_mirror);
31 EXPECT_NE(result, result_twiddle_limit);
32 EXPECT_EQ(result, result_twiddle_nochange);
35 TEST(FunctionalExpansionsTest, hashPointAndTime)
37 const Real time = 0.5049258208;
38 const Point location(0.8392988091, 0.8482835642, 0.2509438471);
39 const Point location_mirror(location);
40 Point location_twiddle_limit(location);
41 Point location_twiddle_nochange(location);
43 location_twiddle_limit(0) += 6e-17;
44 location_twiddle_nochange(0) += 5e-17;
53 EXPECT_EQ(result, result_mirror);
54 EXPECT_NE(result, result_twiddle_limit);
55 EXPECT_EQ(result, result_twiddle_nochange);
58 TEST(FunctionalExpansionsTest, hashIntVector)
60 const std::vector<int> vector = {{351, 456, 49, 140, 491, -482, 86, 314, -442, 154,
61 430, 231, 47, -261, -64, -126, -187, 12, 61, -171,
62 -145, 76, -470, -100, 367, 1, 485, 458, 88, 112,
63 -212, 357, -403, 467, 127, 138, 388, -244, -479, -239,
64 -354, 475, -453, -36, -365, -248, -95, 93, -286, 436}};
65 const std::vector<int> vector_mirror(vector.begin(), vector.end());
66 const std::vector<int> vector_chopped(vector.begin(), --vector.end());
67 std::vector<int> vector_twiddle(vector.begin(), vector.end());
75 EXPECT_EQ(result, result_mirror);
76 EXPECT_NE(result, result_chopped);
77 EXPECT_NE(result, result_twiddle);
80 TEST(FunctionalExpansionsTest, hashRealVector)
82 const std::vector<Real> vector = {
83 {0.7436426667, 0.6962231856, 0.7257906803, 0.8084661009, 0.2137680124, 0.1470705959,
84 0.3657163957, 0.8818058481, 0.5513600342, 0.1984376524, 0.4276321100, 0.4177158632,
85 0.5599816732, 0.5976773302, 0.0534853375, 0.7162077056, 0.9344288478, 0.4947189992,
86 0.6393245755, 0.6877651005, 0.9567775877, 0.8757637166, 0.3850183877, 0.6800440879,
87 0.5090953855, 0.7779340857, 0.2310272569, 0.7807447395, 0.3012011716, 0.2879436719,
88 0.9785884888, 0.1201041026, 0.6422951422, 0.8657404100, 0.2686119524, 0.4199450789,
89 0.2437974613, 0.3544349330, 0.5725840559, 0.2903856081, 0.0055479019, 0.6819050123,
90 0.5512080507, 0.7301519914, 0.0077125671, 0.5284511770, 0.6894292950, 0.5014027958,
91 0.9773264137, 0.8477810277}};
92 const std::vector<Real> vector_mirror(vector.begin(), vector.end());
93 const std::vector<Real> vector_chopped(vector.begin(), --vector.end());
94 std::vector<Real> vector_twiddle_limit(vector.begin(), vector.end());
95 std::vector<Real> vector_twiddle_nochange(vector.begin(), vector.end());
97 vector_twiddle_limit[0] += 6e-17;
98 vector_twiddle_nochange[0] += 5e-17;
107 EXPECT_EQ(result, result_mirror);
108 EXPECT_NE(result, result_chopped);
109 EXPECT_NE(result, result_twiddle_limit);
110 EXPECT_EQ(result, result_twiddle_nochange);
113 TEST(FunctionalExpansionsTest, hashVararg)
116 hashing::HashValue additional_small, additional_regular, additional_large, original_mirror;
170 additional_small = additional_regular = additional_large = original_mirror = original;
175 EXPECT_EQ(original, original_mirror);
176 EXPECT_NE(original, additional_small);
177 EXPECT_NE(original, additional_regular);
178 EXPECT_NE(original, additional_large);