tvl-depot/test/Xanthous/Util/GraphicsSpec.hs
Griffin Smith 6f427fe4d6 Fix circle rendering, add filled circle
Make raster circle rendering use the Rasterific package instead of
attempting desperately to hand-roll it, and add a method for generating
filled circles.
2019-12-30 11:24:34 -05:00

46 lines
1.3 KiB
Haskell
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

module Xanthous.Util.GraphicsSpec (main, test) where
--------------------------------------------------------------------------------
import Test.Prelude hiding (head)
--------------------------------------------------------------------------------
import Xanthous.Util.Graphics
import Xanthous.Util
import Data.List (head)
--------------------------------------------------------------------------------
main :: IO ()
main = defaultMain test
test :: TestTree
test = testGroup "Xanthous.Util.Graphics"
[ testGroup "circle"
[ testCase "radius 12, origin 0"
$ (sort . unique @[] @[_]) (circle @Int (0, 0) 12)
@?= [ (1,12)
, (2,12)
, (3,12)
, (4,12)
, (5,12)
, (6,11)
, (7,10)
, (7,11)
, (8,10)
, (9,9)
, (10,7)
, (10,8)
, (11,6)
, (11,7)
, (12,1)
, (12,2)
, (12,3)
, (12,4)
, (12,5)
]
]
, testGroup "line"
[ testProperty "starts and ends at the start and end points" $ \start end ->
let = line @Int start end
in counterexample ("line: " <> show )
$ length > 2 ==> (head === start) .&&. (head (reverse ) === end)
]
]