tvl-depot/test/Xanthous/Util/GraphicsSpec.hs

47 lines
1.3 KiB
Haskell
Raw Normal View History

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)
]
]