@@ -0,0 +1,28 @@
1+module VerifyAttributes where
5+import Graphics.Vty.Attributes(MaybeDefault(Default, KeepCurrent, SetTo))
7+instance Arbitrary a => Arbitrary (MaybeDefault a) where
8+ arbitrary = oneof [pure Default, pure KeepCurrent, SetTo <$> arbitrary]
10+oldSem :: MaybeDefault a -> MaybeDefault a -> MaybeDefault a
11+oldSem Default Default = Default
12+oldSem Default KeepCurrent = Default
13+oldSem Default (SetTo v) = SetTo v
14+oldSem KeepCurrent Default = Default
15+oldSem KeepCurrent KeepCurrent = KeepCurrent
16+oldSem KeepCurrent (SetTo v) = SetTo v
17+oldSem (SetTo _v) Default = Default
18+oldSem (SetTo v) KeepCurrent = SetTo v
19+oldSem (SetTo _) (SetTo v) = SetTo v
21+sameSemigroupValue :: MaybeDefault Int -> MaybeDefault Int -> Bool
22+sameSemigroupValue xa xb = xa <> xb == oldSem xa xb
26+ [ verify "check that the new Semigroup of MaybeDefault is equivalent to the old one" sameSemigroupValue