Haskell-Things / HSlice

HSlice - A Haskell based slicer for 3D printing.
https://implicitcad.org/
GNU Affero General Public License v3.0
74 stars 5 forks source link

Flakey tests #73

Open julialongtin opened 2 years ago

julialongtin commented 2 years ago

The following tests are still flakey in master:

failed test results are below:


  tests/Math/PGA.hs:1503:5: 
  1) Contour facetization algorithms, Stability (Points), both of the points used to construct a PLine2 are within UlpSum of the PLine2
       uncaught exception: ErrorCall
       startPoint outside of expected range:
       distance1: 1.509903313490213e-13
       distance2: 1.509903313490213e-13
       ulpTotal1: Rounded @TowardInf 4.355565387526044e-14
       ulpTotal2: Rounded @TowardInf 4.355565387526044e-14
       distance1Err: Rounded @TowardInf 2.6423307986078988e-14
       distance2Err: Rounded @TowardInf 2.6423307986078988e-14
       PPoint1ULP: Rounded @TowardInf 1.7763568394002505e-15
       PPoint2ULP: Rounded @TowardInf 1.7763568394002505e-15
       PLine1ULP: Rounded @TowardInf 1.424207973776959e-14
       PLine: PLine2 (GVec [GVal {_real = -0.1530000000000058, _basis = fromList [GEZero (Fastℕ 1)]},GVal {_real = -3.000000000000025e-2, _basis = fromList [GEPlus (Fastℕ 2)]}])
       NPLine: NPLine2 (GVec [GVal {_real = -5.100000000000151, _basis = fromList [GEZero (Fastℕ 1)]},GVal {_real = -1.0, _basis = fromList [GEPlus (Fastℕ 2)]}])
       PPoint1: CPPoint2 (GVec [GVal {_real = -5.1, _basis = fromList [GEZero (Fastℕ 1),GEPlus (Fastℕ 1)]},GVal {_real = -6.37, _basis = fromList [GEZero (Fastℕ 1),GEPlus (Fastℕ 2)]},GVal {_real = 1.0, _basis = fromList [GEPlus (Fastℕ 1),GEPlus (Fastℕ 2)]}])
       PPoint2: CPPoint2 (GVec [GVal {_real = -5.1, _basis = fromList [GEZero (Fastℕ 1),GEPlus (Fastℕ 1)]},GVal {_real = -6.4, _basis = fromList [GEZero (Fastℕ 1),GEPlus (Fastℕ 2)]},GVal {_real = 1.0, _basis = fromList [GEPlus (Fastℕ 1),GEPlus (Fastℕ 2)]}])

       CallStack (from HasCallStack):
         error, called at tests/Math/PGA.hs:1294:40 in main:Math.PGA
       CallStack (from -prof):
         Math.PGA.prop_PLineWithinErrRange1 (tests/Math/PGA.hs:(1293,1)-(1325,33))
         Math.PGA.facetSpec (tests/Math/PGA.hs:(1499,1)-(1873,83))
         Test.Hspec.Core.Tree.bimapTree (src/Test/Hspec/Core/Tree.hs:(51,1)-(56,32))
         Test.Hspec.Core.Tree.bimapForest (src/Test/Hspec/Core/Tree.hs:48:1-37)
         Test.Hspec.Core.Clock.measure (src/Test/Hspec/Core/Clock.hs:(35,1)-(39,21))
         Control.Concurrent.Async.async (vendor/Control/Concurrent/Async.hs:260:1-35)
         Test.Hspec.Core.Runner.Eval.runFormatter (src/Test/Hspec/Core/Runner/Eval.hs:(128,1)-(151,46))
         Test.Hspec.Core.Runner.runSpecForest (src/Test/Hspec/Core/Runner.hs:(234,1)-(256,26))
         Test.Hspec.Core.Runner.hspec (src/Test/Hspec/Core/Runner.hs:(148,1)-(152,20))
         Main.main (tests/Main.hs:(34,1)-(47,37))
       (after 78208 tests and 20 shrinks)
         6.37
         -5.1
         6.4
         -5.1

  To rerun use: --match "/Contour facetization algorithms/Stability (Points)/both of the points used to construct a PLine2 are within UlpSum of the PLine2/"

  tests/Math/PGA.hs:1509:5: 
  2) Contour facetization algorithms, Stability (Points), a line constructed with the midpoint of a segment and a point on the perpendicular bisector is at 90 degrees to the initial segment
       uncaught exception: ErrorCall
       wrong angle?
       pline3Err: Rounded @TowardInf 2.429053323500102e-16
       norm3Err: Rounded @TowardInf 2.359495110737465e-16
       pline4Err: Rounded @TowardInf 2.3592239273284576e-16
       norm4Err: Rounded @TowardInf 7.927686285214008e-16
       errTotal3: Rounded @TowardInf 3.536318522360036e-15
       pline3: PLine2 (GVec [GVal {_real = -1.0049875621120571e-4, _basis = fromList [GEZero (Fastℕ 1)]},GVal {_real = 1.990074380419926e-4, _basis = fromList [GEPlus (Fastℕ 1)]},GVal {_real = -1.9900743804202037e-5, _basis = fromList [GEPlus (Fastℕ 2)]}])
       pline4: PLine2 (GVec [GVal {_real = -0.1, _basis = fromList [GEPlus (Fastℕ 1)]},GVal {_real = -1.0, _basis = fromList [GEPlus (Fastℕ 2)]}])
       distance: 2.0e-4
       angle2: 1.379452108096757e-14
       angle2Err: Rounded @TowardInf 2.775557561562892e-17

       CallStack (from HasCallStack):
         error, called at tests/Math/PGA.hs:389:17 in main:Math.PGA
       CallStack (from -prof):
         Math.PGA.prop_perpAt90Degrees (tests/Math/PGA.hs:(387,1)-(417,19))
         Math.PGA.facetSpec (tests/Math/PGA.hs:(1499,1)-(1873,83))
         Test.Hspec.Core.Tree.bimapTree (src/Test/Hspec/Core/Tree.hs:(51,1)-(56,32))
         Test.Hspec.Core.Tree.bimapForest (src/Test/Hspec/Core/Tree.hs:48:1-37)
         Test.Hspec.Core.Clock.measure (src/Test/Hspec/Core/Clock.hs:(35,1)-(39,21))
         Control.Concurrent.Async.async (vendor/Control/Concurrent/Async.hs:260:1-35)
         Test.Hspec.Core.Runner.Eval.runFormatter (src/Test/Hspec/Core/Runner/Eval.hs:(128,1)-(151,46))
         Test.Hspec.Core.Runner.runSpecForest (src/Test/Hspec/Core/Runner.hs:(234,1)-(256,26))
         Test.Hspec.Core.Runner.hspec (src/Test/Hspec/Core/Runner.hs:(148,1)-(152,20))
         Main.main (tests/Main.hs:(34,1)-(47,37))
       (after 46006 tests and 20 shrinks)
         0.0
         0.0
         Positive {getPositive = 1.0}
         -0.1
         NonZero {getNonZero = 2.0e-4}

  To rerun use: --match "/Contour facetization algorithms/Stability (Points)/a line constructed with the midpoint of a segment and a point on the perpendicular bisector is at 90 degrees to the initial segment/"

  tests/Math/PGA.hs:1519:5: 
  3) Contour facetization algorithms, Stability (Intersections), finds that the intersection of two PLines at an arbitrary point are within the returned UlpSum
       uncaught exception: ErrorCall
       wtf
       7.187184554179093e-12
       Rounded @TowardInf 4.145468798962009e-12
       CPPoint2 (GVec [GVal {_real = 25.3, _basis = fromList [GEZero (Fastℕ 1),GEPlus (Fastℕ 1)]},GVal {_real = 33.0, _basis = fromList [GEZero (Fastℕ 1),GEPlus (Fastℕ 2)]},GVal {_real = 1.0, _basis = fromList [GEPlus (Fastℕ 1),GEPlus (Fastℕ 2)]}])
       Rounded @TowardInf 1.0658141036401503e-14
       7.187184554179093e-12
       Rounded @TowardInf 2.4868995751605046e-13

       CallStack (from HasCallStack):
         error, called at tests/Math/PGA.hs:1473:17 in main:Math.PGA
       CallStack (from -prof):
         Math.PGA.prop_PLinesIntersectAtPoint (tests/Math/PGA.hs:(1471,1)-(1496,25))
         Math.PGA.facetSpec (tests/Math/PGA.hs:(1499,1)-(1873,83))
         Test.Hspec.Core.Tree.bimapTree (src/Test/Hspec/Core/Tree.hs:(51,1)-(56,32))
         Test.Hspec.Core.Tree.bimapForest (src/Test/Hspec/Core/Tree.hs:48:1-37)
         Test.Hspec.Core.Clock.measure (src/Test/Hspec/Core/Clock.hs:(35,1)-(39,21))
         Control.Concurrent.Async.async (vendor/Control/Concurrent/Async.hs:260:1-35)
         Test.Hspec.Core.Runner.Eval.runFormatter (src/Test/Hspec/Core/Runner/Eval.hs:(128,1)-(151,46))
         Test.Hspec.Core.Runner.runSpecForest (src/Test/Hspec/Core/Runner.hs:(234,1)-(256,26))
         Test.Hspec.Core.Runner.hspec (src/Test/Hspec/Core/Runner.hs:(148,1)-(152,20))
         Main.main (tests/Main.hs:(34,1)-(47,37))
       (after 1244 tests and 23 shrinks)
         NonZero {getNonZero = 11.0}
         -39.0
         NonZero {getNonZero = 0.1}
         -23.0
         NonZero {getNonZero = -33.0}
         NonZero {getNonZero = 25.3}

  To rerun use: --match "/Contour facetization algorithms/Stability (Intersections)/finds that the intersection of two PLines at an arbitrary point are within the returned UlpSum/"

  tests/Math/PGA.hs:1523:5: 
  4) Contour facetization algorithms, Stability (Intersections), finds endpoints and startpoints in equal quantities along the X1Y1 line
       uncaught exception: ErrorCall
       missed!
       x1y1 Point:Point2 (-2.0,-2.0)
       x1y1SegTo: (LineSeg {startPoint = Point2 (-1.0,-1.0), endPoint = Point2 (-2.0,-2.0)},UlpSum (Rounded @TowardInf 1.3322676295501878e-15))
       lineSegFrom: (LineSeg {startPoint = Point2 (-2.0,-2.0), endPoint = Point2 (0.0,0.1)},UlpSum (Rounded @TowardInf 9.020562075079399e-16))
       pline through x1y1: (PLine2 (GVec [GVal {_real = 2.0000000000131024e-4, _basis = fromList [GEZero (Fastℕ 1)]},GVal {_real = -8.0466, _basis = fromList [GEPlus (Fastℕ 1)]},GVal {_real = 8.046700000000001, _basis = fromList [GEPlus (Fastℕ 2)]}]),UlpSum (Rounded @TowardInf 7.105454462655314e-15))
       equivalent LineSeg: LineSeg {startPoint = Point2 (6.0467,6.0466), endPoint = Point2 (-2.0,-2.0)}
       Hit start.
       Missed end: Right (IntersectsIn (CPPoint2 (GVec [GVal {_real = -1.9999999999738591, _basis = fromList [GEZero (Fastℕ 1),GEPlus (Fastℕ 1)]},GVal {_real = 1.9999999999738591, _basis = fromList [GEZero (Fastℕ 1),GEPlus (Fastℕ 2)]},GVal {_real = 1.0, _basis = fromList [GEPlus (Fastℕ 1),GEPlus (Fastℕ 2)]}])) (UlpSum (Rounded @TowardInf 3.4406148971761095e-11),UlpSum (Rounded @TowardInf 3.4406148971761114e-11),UlpSum (Rounded @TowardInf 7.105454462655314e-15),UlpSum (Rounded @TowardInf 1.332267629550188e-15),UlpSum (Rounded @TowardInf 6.03406290116738e-14),UlpSum (Rounded @TowardInf 6.661338147750939e-16)))
       CPPoint2 (GVec [GVal {_real = -1.9999999999738591, _basis = fromList [GEZero (Fastℕ 1),GEPlus (Fastℕ 1)]},GVal {_real = 1.9999999999738591, _basis = fromList [GEZero (Fastℕ 1),GEPlus (Fastℕ 2)]},GVal {_real = 1.0, _basis = fromList [GEPlus (Fastℕ 1),GEPlus (Fastℕ 2)]}])
       Distance: (3.6968768995184694e-11,UlpSum (Rounded @TowardInf 2.220446049263238e-15))
       UlpSum:(UlpSum (Rounded @TowardInf 3.4406148971761095e-11),UlpSum (Rounded @TowardInf 3.4406148971761114e-11),UlpSum (Rounded @TowardInf 7.105454462655314e-15),UlpSum (Rounded @TowardInf 1.332267629550188e-15),UlpSum (Rounded @TowardInf 6.03406290116738e-14),UlpSum (Rounded @TowardInf 6.661338147750939e-16))

       CallStack (from HasCallStack):
         error, called at tests/Math/PGA.hs:635:17 in main:Math.PGA
       CallStack (from -prof):
         Math.PGA.prop_LineSegIntersectionStableAtX1Y1Point (tests/Math/PGA.hs:(633,1)-(688,33))
         Math.PGA.facetSpec (tests/Math/PGA.hs:(1499,1)-(1873,83))
         Test.Hspec.Core.Tree.bimapTree (src/Test/Hspec/Core/Tree.hs:(51,1)-(56,32))
         Test.Hspec.Core.Tree.bimapForest (src/Test/Hspec/Core/Tree.hs:48:1-37)
         Test.Hspec.Core.Clock.measure (src/Test/Hspec/Core/Clock.hs:(35,1)-(39,21))
         Control.Concurrent.Async.async (vendor/Control/Concurrent/Async.hs:260:1-35)
         Test.Hspec.Core.Runner.Eval.runFormatter (src/Test/Hspec/Core/Runner/Eval.hs:(128,1)-(151,46))
         Test.Hspec.Core.Runner.runSpecForest (src/Test/Hspec/Core/Runner.hs:(234,1)-(256,26))
         Test.Hspec.Core.Runner.hspec (src/Test/Hspec/Core/Runner.hs:(148,1)-(152,20))
         Main.main (tests/Main.hs:(34,1)-(47,37))
       (after 24508 tests and 13 shrinks)
         NonZero {getNonZero = -1.0}
         NonZero {getNonZero = -1.0}
         0.0
         0.0
         6.0467
         6.0466

  To rerun use: --match "/Contour facetization algorithms/Stability (Intersections)/finds endpoints and startpoints in equal quantities along the X1Y1 line/"

  tests/Math/Util.hs:37:3: 
  5) Contour facetization algorithms, Arcs (Skeleton/Concave), finds the outsideArc of two intersecting lines (makeINode)
       Falsifiable (after 2883 tests and 20 shrinks):
         -18.0
         27.0
         Positive {getPositive = 5.0}
         Radian {getRadian = 1.215}
         Positive {getPositive = 23.0}
         Radian {getRadian = 1.514}
         False
         False
       expected: (True,False)
        but got: (False,False)

  To rerun use: --match "/Contour facetization algorithms/Arcs (Skeleton/Concave)/finds the outsideArc of two intersecting lines (makeINode)/"

Randomized with seed 1442536824