1616#include < array>
1717#include < cmath>
1818#include < functional>
19+ #include < limits>
1920#include < memory>
2021#include < utility>
2122#include < vector>
@@ -303,10 +304,9 @@ TrackletSnapshot runFixture(o2::detectors::DetID::ID detector,
303304 // TrackerTraits::initialiseTimeFrame(), see TrackletFinding.h).
304305 // Exercised here for both Cylinder and Disk through the
305306 // existing fixture rather than a separate harness. Beyond finiteness, each
306- // entry is checked bit-for-bit against computeLegacyEdgeMSAndPhiCut's
307- // independent oracle -- the only replay-grade acceptance evidence for the
308- // common Cylinder path, since no real-geometry common-CA ITS
309- // replay exists yet.
307+ // entry is checked against computeLegacyEdgeMSAndPhiCut's independent oracle.
308+ // Allow a small relative rounding difference in the independently evaluated
309+ // phi cuts, which can differ by one float ULP on ARM.
310310 {
311311 const auto preparedTopology = layoutView;
312312 const auto & msAngles = tf.getEdgeMSAngles ();
@@ -328,7 +328,7 @@ TrackletSnapshot runFixture(o2::detectors::DetID::ID detector,
328328 BOOST_REQUIRE_EQUAL (expectedPhiCuts.size (), phiCuts.size ());
329329 for (int id = 0 ; id < preparedTopology.nEdges ; ++id) {
330330 BOOST_CHECK_EQUAL (msAngles[id], expectedMSAngles[id]);
331- BOOST_CHECK_EQUAL (phiCuts[id], expectedPhiCuts[id]);
331+ BOOST_CHECK_CLOSE_FRACTION (phiCuts[id], expectedPhiCuts[id], 4 . f * std::numeric_limits< float >:: epsilon () );
332332 }
333333 }
334334
0 commit comments