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 <>
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);
}

View File

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