@@ -69,17 +69,17 @@ TEST( MRMesh, MeshCollidePrecise )
69
69
const auto conv = getVectorConverters ( meshA, meshB );
70
70
71
71
const auto intersections = findCollidingEdgeTrisPrecise ( meshA, meshB, conv.toInt );
72
- // FIXME: the results are platform-dependent
73
- // EXPECT_EQ( intersections.edgesAtrisB.size(), 76 );
74
- // EXPECT_EQ( intersections.edgesBtrisA.size(), 76 );
72
+ EXPECT_EQ ( intersections.size (), 152 );
75
73
76
74
const auto contours = orderIntersectionContours ( meshA.topology , meshB.topology , intersections );
77
75
EXPECT_EQ ( contours.size (), 4 );
78
76
// FIXME: the results are platform-dependent
79
- // EXPECT_EQ( contours[0].size(), 71 );
80
- // EXPECT_EQ( contours[1].size(), 71 );
81
- // EXPECT_EQ( contours[2].size(), 7 );
82
- // EXPECT_EQ( contours[3].size(), 7 );
77
+ EXPECT_EQ ( contours[0 ].size (), 71 );
78
+ EXPECT_EQ ( contours[1 ].size (), 7 );
79
+ EXPECT_TRUE ( contours[2 ].size () == 69 || // without FMA instruction (default settings for x86 or old compilers for ARM)
80
+ contours[2 ].size () == 71 ); // with FMA instruction (modern compilers for ARM)
81
+ EXPECT_TRUE ( contours[3 ].size () == 9 || // without FMA instruction (default settings for x86 or old compilers for ARM)
82
+ contours[3 ].size () == 7 ); // with FMA instruction (modern compilers for ARM)
83
83
84
84
OneMeshContours meshAContours, meshBContours;
85
85
getOneMeshIntersectionContours ( meshA, meshB, contours, &meshAContours, &meshBContours, conv );
0 commit comments