1
+ #include " gtest/gtest.h"
2
+
3
+ #include < PolyUtil.hpp>
4
+
5
+
6
+ TEST (SphericalUtil, computeAngleBetween) {
7
+ LatLng up (90 , 0 );
8
+ LatLng down (-90 , 0 );
9
+ LatLng front (0 , 0 );
10
+ LatLng right (0 , 90 );
11
+ LatLng back (0 , -180 );
12
+ LatLng left (0 , -90 );
13
+
14
+ EXPECT_NEAR (SphericalUtil::computeAngleBetween (up, up), 0 , 1e-6 );
15
+ EXPECT_NEAR (SphericalUtil::computeAngleBetween (down, down), 0 , 1e-6 );
16
+ EXPECT_NEAR (SphericalUtil::computeAngleBetween (left, left), 0 , 1e-6 );
17
+ EXPECT_NEAR (SphericalUtil::computeAngleBetween (right, right), 0 , 1e-6 );
18
+ EXPECT_NEAR (SphericalUtil::computeAngleBetween (front, front), 0 , 1e-6 );
19
+ EXPECT_NEAR (SphericalUtil::computeAngleBetween (back, back), 0 , 1e-6 );
20
+
21
+ // Adjacent vertices
22
+ EXPECT_NEAR (SphericalUtil::computeAngleBetween (up, front), M_PI / 2 , 1e-6 );
23
+ EXPECT_NEAR (SphericalUtil::computeAngleBetween (up, right), M_PI / 2 , 1e-6 );
24
+ EXPECT_NEAR (SphericalUtil::computeAngleBetween (up, back), M_PI / 2 , 1e-6 );
25
+ EXPECT_NEAR (SphericalUtil::computeAngleBetween (up, left), M_PI / 2 , 1e-6 );
26
+
27
+ EXPECT_NEAR (SphericalUtil::computeAngleBetween (down, front), M_PI / 2 , 1e-6 );
28
+ EXPECT_NEAR (SphericalUtil::computeAngleBetween (down, right), M_PI / 2 , 1e-6 );
29
+ EXPECT_NEAR (SphericalUtil::computeAngleBetween (down, back), M_PI / 2 , 1e-6 );
30
+ EXPECT_NEAR (SphericalUtil::computeAngleBetween (down, left), M_PI / 2 , 1e-6 );
31
+
32
+ EXPECT_NEAR (SphericalUtil::computeAngleBetween (back, up), M_PI / 2 , 1e-6 );
33
+ EXPECT_NEAR (SphericalUtil::computeAngleBetween (back, right), M_PI / 2 , 1e-6 );
34
+ EXPECT_NEAR (SphericalUtil::computeAngleBetween (back, down), M_PI / 2 , 1e-6 );
35
+ EXPECT_NEAR (SphericalUtil::computeAngleBetween (back, left), M_PI / 2 , 1e-6 );
36
+
37
+ // Opposite vertices
38
+ EXPECT_NEAR (SphericalUtil::computeAngleBetween (up, down), M_PI, 1e-6 );
39
+ EXPECT_NEAR (SphericalUtil::computeAngleBetween (front, back), M_PI, 1e-6 );
40
+ EXPECT_NEAR (SphericalUtil::computeAngleBetween (left, right), M_PI, 1e-6 );
41
+ }
0 commit comments