Fix a math error in StillnessDetector::areNear()
The method used to determine the angular distance has been outright
wrong. Using a slightly more expensive, but accurate method instead.
Tightened up the test.
Test: atest --host libheadtracking-test:StillnessDetectorTest --rerun-until-failure 1000
Change-Id: I0f6b01340b6666b95ad032da8cd09ac1a33a8b41
diff --git a/media/libheadtracking/StillnessDetector-test.cpp b/media/libheadtracking/StillnessDetector-test.cpp
index a53ba8c..29b036e 100644
--- a/media/libheadtracking/StillnessDetector-test.cpp
+++ b/media/libheadtracking/StillnessDetector-test.cpp
@@ -84,8 +84,8 @@
const Pose3f baseline(Vector3f{1, 2, 3}, Quaternionf::UnitRandom());
const Pose3f withinThreshold =
- baseline * Pose3f(Vector3f(0.3, -0.3, 0), rotateX(0.01) * rotateY(-0.01));
- const Pose3f outsideThreshold = baseline * Pose3f(rotateZ(0.08));
+ baseline * Pose3f(Vector3f(0.3, -0.3, 0), rotateX(0.03) * rotateY(-0.03));
+ const Pose3f outsideThreshold = baseline * Pose3f(rotateZ(0.06));
EXPECT_FALSE(detector.calculate(0));
detector.setInput(0, baseline);
EXPECT_FALSE(detector.calculate(0));