mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-08-05 17:05:57 +08:00
refs #552 Fixed broken SubdivisionConverter2, and added a test to verify.
This commit is contained in:
@@ -146,12 +146,11 @@ namespace BlackMisc
|
||||
{
|
||||
using BlackMisc::Math::CMathUtils;
|
||||
double part1 = CMathUtils::trunc(factor / FactorPolicy::factor());
|
||||
double remaining = std::fmod(factor, FactorPolicy::factor());
|
||||
double part2 = CMathUtils::trunc(remaining / SubdivPolicy::subfactor());
|
||||
remaining = std::fmod(remaining, SubdivPolicy::subfactor());
|
||||
double part3 = CMathUtils::trunc(remaining / SubdivPolicy::subfactor());
|
||||
remaining = std::fmod(remaining, SubdivPolicy::subfactor());
|
||||
return part1 + part2 / SubdivPolicy::fraction() + (part3 + remaining) / (SubdivPolicy::fraction() * SubdivPolicy::fraction());
|
||||
double remaining = std::fmod(factor / FactorPolicy::factor(), 1.0);
|
||||
double part2 = CMathUtils::trunc(remaining * SubdivPolicy::subfactor());
|
||||
remaining = std::fmod(remaining * SubdivPolicy::subfactor(), 1.0);
|
||||
double part3 = remaining * SubdivPolicy::subfactor();
|
||||
return part1 + part2 / SubdivPolicy::fraction() + part3 / (SubdivPolicy::fraction() * SubdivPolicy::fraction());
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -105,6 +105,12 @@ namespace BlackMiscTest
|
||||
QVERIFY2(CMathUtils::epsilonEqual(a3.valueRounded(CAngleUnit::deg()), 35.73), "Expecting 35.73");
|
||||
QVERIFY2(CMathUtils::epsilonEqual(a4.valueRounded(CAngleUnit::deg()), 35.73), "Expecting 35.73");
|
||||
QVERIFY2(CMathUtils::epsilonEqual(a5.valueRounded(CAngleUnit::deg(), 4), -60.5042), "Expecting -60.5042");
|
||||
|
||||
// issue #552
|
||||
CAngle a6(48.07063588, CAngleUnit::sexagesimalDeg());
|
||||
CAngle a7(a6);
|
||||
a7.switchUnit(CAngleUnit::rad());
|
||||
QVERIFY2(CMathUtils::epsilonEqual(a6.value(CAngleUnit::sexagesimalDeg()), a7.value(CAngleUnit::sexagesimalDeg())), "Conversion via radians yields same answer");
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user