refs #552 Fixed broken SubdivisionConverter, and added another test to verify.

This commit is contained in:
Mathew Sutcliffe
2015-12-12 18:20:57 +00:00
parent 1f36f07bed
commit c1d57b8971
2 changed files with 7 additions and 4 deletions

View File

@@ -119,10 +119,9 @@ 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());
return part1 + (part2 + remaining) / SubdivPolicy::fraction();
double remaining = std::fmod(factor / FactorPolicy::factor(), 1.0);
double part2 = remaining * SubdivPolicy::subfactor();
return part1 + part2 / SubdivPolicy::fraction();
}
};

View File

@@ -111,6 +111,10 @@ namespace BlackMiscTest
CAngle a7(a6);
a7.switchUnit(CAngleUnit::rad());
QVERIFY2(CMathUtils::epsilonEqual(a6.value(CAngleUnit::sexagesimalDeg()), a7.value(CAngleUnit::sexagesimalDeg())), "Conversion via radians yields same answer");
CAngle a8(48.07063588, CAngleUnit::sexagesimalDegMin());
CAngle a9(a8);
a9.switchUnit(CAngleUnit::rad());
QVERIFY2(CMathUtils::epsilonEqual(a8.value(CAngleUnit::sexagesimalDegMin()), a9.value(CAngleUnit::sexagesimalDegMin())), "Conversion via radians yields same answer");
}
/*