Fix precision error

This commit is contained in:
Pascal Serrarens 2024-08-02 14:27:42 +02:00
parent 4591aef901
commit 608c45c1a7
2 changed files with 5 additions and 5 deletions

View File

@ -8,7 +8,7 @@
template <> template <>
AngleOf<signed short>::AngleOf(int angle) { AngleOf<signed short>::AngleOf(int angle) {
signed long long_angle = (signed short)angle * 65535; signed long long_angle = (signed short)angle * 65536;
this->value = (signed short)(long_angle / 360); this->value = (signed short)(long_angle / 360);
} }

View File

@ -146,15 +146,15 @@ TEST(Spherical16, Addition) {
v2 = Spherical16(1, -45, 0); v2 = Spherical16(1, -45, 0);
r = v1 + v2; r = v1 + v2;
EXPECT_NEAR(r.distance, sqrtf(2), 1.0e-02) << "Addition(1 -45 0)"; EXPECT_FLOAT_EQ(r.distance, sqrtf(2)) << "Addition(1 -45 0)";
EXPECT_FLOAT_EQ(r.horizontalAngle, 0) << "Addition(1 -45 0)"; EXPECT_FLOAT_EQ(r.horizontalAngle, 0) << "Addition(1 -45 0)";
EXPECT_FLOAT_EQ(r.verticalAngle, 0) << "Addition(1 -45 0)"; EXPECT_FLOAT_EQ(r.verticalAngle, 0) << "Addition(1 -45 0)";
v2 = Spherical16(1, 0, 90); v2 = Spherical16(1, 0, 90);
r = v1 + v2; r = v1 + v2;
EXPECT_NEAR(r.distance, sqrtf(2), 1.0e-02) << "Addition(1 0 90)"; EXPECT_FLOAT_EQ(r.distance, sqrtf(2)) << "Addition(1 0 90)";
EXPECT_NEAR(r.horizontalAngle, 45, 1.0e-01) << "Addition(1 0 90)"; EXPECT_FLOAT_EQ(r.horizontalAngle, 45) << "Addition(1 0 90)";
EXPECT_NEAR(r.verticalAngle, 45, 1.0e-02) << "Addition(1 0 90)"; EXPECT_FLOAT_EQ(r.verticalAngle, 45) << "Addition(1 0 90)";
} }
#endif #endif