//This test is known to be failing. Disabled until double-mathematics algorithm implementation public void MeasureToolTests_FloatPrecision() { var precision = 0.01f; //claimed precision is 0.01 var x = 999999.9f; var position1 = new Vector3(x, 0, 0); var position2 = new Vector3(precision * 2, 0, 0); var anchor1 = GetPointAnchor(position1, Vector3.up); var anchor2 = GetPointAnchor(position2, Vector3.up); var distance = RawMeasure.GetDistanceBetweenAnchors(anchor1, anchor2); Assert.AreNotEqual(distance, x); Assert.IsTrue(Mathf.Approximately(position1.x - position2.x, distance)); }
void AssertCalculation(PointAnchor anchor1, PointAnchor anchor2, System.Action <float> assertDelegate) { var distance = RawMeasure.GetDistanceBetweenAnchors(anchor1, anchor2); var position1 = anchor1.position; var normal1 = anchor1.normal; var position2 = anchor2.position; var normal2 = anchor2.normal; try { assertDelegate?.Invoke(distance); } catch (AssertionException e) { var msg = e.Message + $"Anchors are:\nposition1:{position1.x}, {position1.y}, {position1.z};\nnormal1:{normal1.x}, {normal1.y}, {normal1.z};" + $"\nposition2:{position2.x}, {position2.y}, {position2.z};\nnormal2:{normal2.x}, {normal2.y}, {normal2.z}"; throw new AssertionException(msg, e); } }