Skip to content

Commit

Permalink
added one more test
Browse files Browse the repository at this point in the history
  • Loading branch information
noinia committed Dec 15, 2024
1 parent 0dbfb1e commit 78e7914
Show file tree
Hide file tree
Showing 2 changed files with 200 additions and 0 deletions.
178 changes: 178 additions & 0 deletions hgeometry/data/test-with-ipe/VoronoiDiagram/possibleBugPoints.ipe
Original file line number Diff line number Diff line change
@@ -0,0 +1,178 @@
<?xml version="1.0" encoding="UTF-8"?>
<ipe version="70005" creator="HGeometry"><ipestyle name="basic">
<color name="red" value="1 0 0"/>
<color name="green" value="0 1 0"/>
<color name="blue" value="0 0 1"/>
<color name="yellow" value="1 1 0"/>
<color name="orange" value="1 0.647 0"/>
<color name="gold" value="1 0.843 0"/>
<color name="purple" value="0.627 0.125 0.941"/>
<color name="gray" value="0.745 0.745 0.745"/>
<color name="brown" value="0.647 0.165 0.165"/>
<color name="navy" value="0 0 0.502"/>
<color name="pink" value="1 0.753 0.796"/>
<color name="seagreen" value="0.18 0.545 0.341"/>
<color name="turquoise" value="0.251 0.878 0.816"/>
<color name="violet" value="0.933 0.51 0.933"/>
<color name="darkblue" value="0 0 0.545"/>
<color name="darkcyan" value="0 0.545 0.545"/>
<color name="darkgray" value="0.663 0.663 0.663"/>
<color name="darkgreen" value="0 0.392 0"/>
<color name="darkmagenta" value="0.545 0 0.545"/>
<color name="darkorange" value="1 0.549 0"/>
<color name="darkred" value="0.545 0 0"/>
<color name="lightblue" value="0.678 0.847 0.902"/>
<color name="lightcyan" value="0.878 1 1"/>
<color name="lightgray" value="0.827 0.827 0.827"/>
<color name="lightgreen" value="0.565 0.933 0.565"/>
<color name="lightyellow" value="1 1 0.878"/>
<dashstyle name="dashed" value="[4] 0"/>
<dashstyle name="dotted" value="[1 3] 0"/>
<dashstyle name="dash dotted" value="[4 2 1 2] 0"/>
<dashstyle name="dash dot dotted" value="[4 2 1 2 1 2] 0"/>
<pen name="heavier" value="0.8"/>
<pen name="fat" value="1.2"/>
<pen name="ultrafat" value="2"/>
<textsize name="large" value="\large"/>
<textsize name="Large" value="\Large"/>
<textsize name="LARGE" value="\LARGE"/>
<textsize name="huge" value="\huge"/>
<textsize name="Huge" value="\Huge"/>
<textsize name="small" value="\small"/>
<textsize name="footnote" value="\footnotesize"/>
<textsize name="tiny" value="\tiny"/>
<symbolsize name="small" value="2"/>
<symbolsize name="tiny" value="1.1"/>
<symbolsize name="large" value="5"/>
<arrowsize name="small" value="5"/>
<arrowsize name="tiny" value="3"/>
<arrowsize name="large" value="10"/>
<gridsize name="4 pts" value="4"/>
<gridsize name="8 pts (~3 mm)" value="8"/>
<gridsize name="16 pts (~6 mm)" value="16"/>
<gridsize name="32 pts (~12 mm)" value="32"/>
<gridsize name="10 pts (~3.5 mm)" value="10"/>
<gridsize name="20 pts (~7 mm)" value="20"/>
<gridsize name="14 pts (~5 mm)" value="14"/>
<gridsize name="28 pts (~10 mm)" value="28"/>
<gridsize name="56 pts (~20 mm)" value="56"/>
<anglesize name="90 deg" value="90"/>
<anglesize name="60 deg" value="60"/>
<anglesize name="45 deg" value="45"/>
<anglesize name="30 deg" value="30"/>
<anglesize name="22.5 deg" value="22.5"/>
<symbol name="mark/circle(sx)" transformations="translations">
<path fill="sym-stroke">
0.6 0 0 0.6 0 0 e 0.4 0 0 0.4 0 0 e
</path></symbol>
<symbol name="mark/disk(sx)" transformations="translations">
<path fill="sym-stroke">
0.6 0 0 0.6 0 0 e
</path></symbol>
<symbol name="mark/fdisk(sfx)" transformations="translations">
<group><path fill="sym-fill">
0.5 0 0 0.5 0 0 e
</path><path fill="sym-stroke" fillrule="eofill">
0.6 0 0 0.6 0 0 e 0.4 0 0 0.4 0 0 e
</path></group></symbol>
<symbol name="mark/box(sx)" transformations="translations">
<path fill="sym-stroke" fillrule="eofill">
-0.6 -0.6 m 0.6 -0.6 l 0.6 0.6 l -0.6 0.6 l h
-0.4 -0.4 m 0.4 -0.4 l 0.4 0.4 l -0.4 0.4 l h</path></symbol>
<symbol name="mark/square(sx)" transformations="translations">
<path fill="sym-stroke">
-0.6 -0.6 m 0.6 -0.6 l 0.6 0.6 l -0.6 0.6 l h</path></symbol>
<symbol name="mark/fsquare(sfx)" transformations="translations">
<group><path fill="sym-fill">
-0.5 -0.5 m 0.5 -0.5 l 0.5 0.5 l -0.5 0.5 l h</path>
<path fill="sym-stroke" fillrule="eofill">
-0.6 -0.6 m 0.6 -0.6 l 0.6 0.6 l -0.6 0.6 l h
-0.4 -0.4 m 0.4 -0.4 l 0.4 0.4 l -0.4 0.4 l h</path></group></symbol>
<symbol name="mark/cross(sx)" transformations="translations">
<group><path fill="sym-stroke">
-0.43 -0.57 m 0.57 0.43 l 0.43 0.57 l -0.57 -0.43 l h</path>
<path fill="sym-stroke">
-0.43 0.57 m 0.57 -0.43 l 0.43 -0.57 l -0.57 0.43 l h</path>
</group></symbol>
<symbol name="arrow/arc(spx)">
<path pen="sym-pen" stroke="sym-stroke" fill="sym-stroke">
0 0 m -1.0 0.333 l -1.0 -0.333 l h</path></symbol>
<symbol name="arrow/farc(spx)">
<path pen="sym-pen" stroke="sym-stroke" fill="white">
0 0 m -1.0 0.333 l -1.0 -0.333 l h</path></symbol>
<symbol name="arrow/ptarc(spx)">
<path pen="sym-pen" stroke="sym-stroke" fill="sym-stroke">
0 0 m -1.0 0.333 l -0.8 0 l -1.0 -0.333 l h</path></symbol>
<symbol name="arrow/fptarc(spx)">
<path pen="sym-pen" stroke="sym-stroke" fill="white">
0 0 m -1.0 0.333 l -0.8 0 l -1.0 -0.333 l h</path></symbol>
<symbol name="arrow/fnormal(spx)">
<path pen="sym-pen" stroke="sym-stroke" fill="white">
0 0 m -1.0 0.333 l -1.0 -0.333 l h</path></symbol>
<symbol name="arrow/pointed(spx)">
<path pen="sym-pen" stroke="sym-stroke" fill="sym-stroke">
0 0 m -1.0 0.333 l -0.8 0 l -1.0 -0.333 l h</path></symbol>
<symbol name="arrow/fpointed(spx)">
<path pen="sym-pen" stroke="sym-stroke" fill="white">
0 0 m -1.0 0.333 l -0.8 0 l -1.0 -0.333 l h</path></symbol>
<symbol name="arrow/linear(spx)">
<path pen="sym-pen" stroke="sym-stroke">
-1.0 0.333 m 0 0 l -1.0 -0.333 l</path></symbol>
<symbol name="arrow/fdouble(spx)">
<path pen="sym-pen" stroke="sym-stroke" fill="white">
0 0 m -1.0 0.333 l -1.0 -0.333 l h
-1 0 m -2.0 0.333 l -2.0 -0.333 l h
</path></symbol>
<symbol name="arrow/double(spx)">
<path pen="sym-pen" stroke="sym-stroke" fill="sym-stroke">
0 0 m -1.0 0.333 l -1.0 -0.333 l h
-1 0 m -2.0 0.333 l -2.0 -0.333 l h
</path></symbol>
<tiling name="falling" angle="-60" width="1" step="4"/>
<tiling name="rising" angle="30" width="1" step="4"/>
<textstyle name="center" begin="\begin{center}" end="\end{center}"/>
<textstyle name="itemize" begin="\begin{itemize}" end="\end{itemize}"/>
<textstyle name="item" begin="\begin{itemize}\item{}" end="\end{itemize}"/>
</ipestyle><page><layer name="alpha"/><view layers="alpha" active="alpha"/><group><use pos="16.000000000000 80.000000000000" name="mark/disk(sx)"/><use pos="64.000000000000 48.000000000000" name="mark/disk(sx)"/><use pos="208.000000000000 128.000000000000" name="mark/disk(sx)"/><use pos="176.000000000000 48.000000000000" name="mark/disk(sx)"/><use pos="96.000000000000 112.000000000000" name="mark/disk(sx)"/><use pos="128.000000000000 80.000000000000" name="mark/disk(sx)"/><use pos="48.000000000000 144.000000000000" name="mark/disk(sx)"/></group><group><group><use stroke="green" pos="16.000000000000 80.000000000000" name="mark/disk(sx)"/><path fill="green" opacity="10%">-946.000000000000 601.000000000000 m
-946.000000000000 -909.000000000000 l
-608.666666666667 -909.000000000000 l
58.000000000000 91.000000000000 l
54.000000000000 101.000000000000 l
h
</path></group><group><use stroke="blue" pos="48.000000000000 144.000000000000" name="mark/disk(sx)"/><path fill="blue" opacity="10%">236.941176470588 1225.411764705882 m
-946.000000000000 1225.411764705882 l
-946.000000000000 601.000000000000 l
54.000000000000 101.000000000000 l
136.941176470588 225.411764705882 l
h
</path></group><group><use stroke="yellow" pos="64.000000000000 48.000000000000" name="mark/disk(sx)"/><path fill="yellow" opacity="10%">-658.666666666667 -984.000000000000 m
120.000000000000 -984.000000000000 l
120.000000000000 16.000000000000 l
90.666666666666 74.666666666666 l
58.000000000000 91.000000000000 l
h
</path></group><group><use stroke="orange" pos="96.000000000000 112.000000000000" name="mark/disk(sx)"/><path fill="orange" opacity="10%">150.000000000000 134.000000000000 m
136.941176470588 225.411764705882 l
54.000000000000 101.000000000000 l
58.000000000000 91.000000000000 l
90.666666666666 74.666666666666 l
h
</path></group><group><use stroke="gold" pos="128.000000000000 80.000000000000" name="mark/disk(sx)"/><path fill="gold" opacity="10%">173.052631578947 95.578947368421 m
150.000000000000 134.000000000000 l
90.666666666666 74.666666666666 l
120.000000000000 16.000000000000 l
h
</path></group><group><use stroke="purple" pos="176.000000000000 48.000000000000" name="mark/disk(sx)"/><path fill="purple" opacity="10%">120.000000000000 -984.000000000000 m
1173.052631578947 -984.000000000000 l
1173.052631578947 -304.421052631579 l
173.052631578947 95.578947368421 l
120.000000000000 16.000000000000 l
h
</path></group><group><use stroke="gray" pos="208.000000000000 128.000000000000" name="mark/disk(sx)"/><path fill="gray" opacity="10%">1173.052631578947 -304.421052631579 m
1173.052631578947 1225.411764705882 l
236.941176470588 1225.411764705882 l
136.941176470588 225.411764705882 l
150.000000000000 134.000000000000 l
173.052631578947 95.578947368421 l
h
</path></group></group></page></ipe>
22 changes: 22 additions & 0 deletions hgeometry/test-with-ipe/test/VoronoiDiagram/VoronoiSpec.hs
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,15 @@ spec = describe "Voronoi diagram tests" $ do
testIpe [osp|buggy.ipe|]
[osp|buggy_out|]


goldenWith [osp|data/test-with-ipe/VoronoiDiagram/|]
(ipeContentGolden { name = [osp|possibleBugPoints|] })
[ iO' possibleBugPoints
, iO' $ voronoiDiagram possibleBugPoints
]



degenerateTests :: Spec
degenerateTests = describe "degnereate inputs" $ do
it "single point diagram" $
Expand Down Expand Up @@ -241,3 +250,16 @@ testIpe inFp outFp = do
goldenWith [osp|data/test-with-ipe/VoronoiDiagram/|]
(ipeFileGolden { name = outFp })
(addStyleSheet opacitiesStyle $ singlePageFromContent out)



possibleBugPoints :: NonEmpty (Point 2 R)
possibleBugPoints = NonEmpty.fromList $
[ Point2 16 80
, Point2 64 48
, Point2 208 128
, Point2 176 48
, Point2 96 112
, Point2 128 80
, Point2 48 144
]

0 comments on commit 78e7914

Please sign in to comment.