Safe Haskell | None |
---|---|
Language | Haskell2010 |
Standard test Spec
s for optics
You will need TypeApplications
to use these.
Synopsis
- lensSpecOnValid :: forall s b. (Show b, Eq b, GenValid b, Show s, Eq s, GenValid s) => Lens s s b b -> Spec
- lensSpec :: forall s b. (Show b, Eq b, GenUnchecked b, Show s, Eq s, GenUnchecked s) => Lens s s b b -> Spec
- lensSpecOnArbitrary :: forall s b. (Show b, Eq b, Arbitrary b, Show s, Eq s, Arbitrary s) => Lens s s b b -> Spec
- lensSpecOnGen :: (Show b, Eq b, Show s, Eq s) => Lens s s b b -> Gen b -> String -> (b -> [b]) -> Gen s -> String -> (s -> [s]) -> Spec
- lensLaw1 :: (Show b, Eq b, Show s) => Lens s s b b -> Gen b -> (b -> [b]) -> Gen s -> (s -> [s]) -> Property
- lensLaw2 :: (Show s, Eq s) => Lens s s b b -> Gen s -> (s -> [s]) -> Property
- lensLaw3 :: (Show b, Eq b, Show s, Eq s) => Lens s s a b -> Gen b -> (b -> [b]) -> Gen s -> (s -> [s]) -> Property
Documentation
lensSpecOnValid :: forall s b. (Show b, Eq b, GenValid b, Show s, Eq s, GenValid s) => Lens s s b b -> Spec Source #
Standard test spec for properties lenses for valid values
Example usage:
lensSpecOnValid ((_2) :: Lens (Double, Double) (Double, Double) Double Double)
lensSpec :: forall s b. (Show b, Eq b, GenUnchecked b, Show s, Eq s, GenUnchecked s) => Lens s s b b -> Spec Source #
Standard test spec for properties lenses for unchecked values
Example usage:
lensSpec ((_2) :: Lens (Int, Int) (Int, Int) Int Int)
lensSpecOnArbitrary :: forall s b. (Show b, Eq b, Arbitrary b, Show s, Eq s, Arbitrary s) => Lens s s b b -> Spec Source #
Standard test spec for properties lenses for arbitrary values
Example usage:
lensSpecOnArbitrary ((_2) :: Lens (Double, Double) (Double, Double) Double Double)
lensSpecOnGen :: (Show b, Eq b, Show s, Eq s) => Lens s s b b -> Gen b -> String -> (b -> [b]) -> Gen s -> String -> (s -> [s]) -> Spec Source #
Standard test spec for properties lenses for values generated by given generators
Example usage:
lensSpecOnGen ((_2) :: Lens (Double, Double) (Double, Double) Double Double) (abs <$> genValid) "positive valid doubles" (filter (0.0 >=) . shrinkValid) ((,) <$> (negate . abs <$> genValid) <*> (negate . abs <$> genValid)) "tuples of negative valid doubles" (const [])
lensLaw1 :: (Show b, Eq b, Show s) => Lens s s b b -> Gen b -> (b -> [b]) -> Gen s -> (s -> [s]) -> Property Source #
A property combinator for the first lens law:
view l (set l v s) ≡ v
lensLaw1 ((_2) :: Lens (Double, Double) (Double, Double) Double Double) genValid shrinkValid genValid shrinkValid
lensLaw2 :: (Show s, Eq s) => Lens s s b b -> Gen s -> (s -> [s]) -> Property Source #
A property combinator for the second lens law:
set l (view l s) s ≡ s
lensLaw2 ((_2) :: Lens (Double, Double) (Double, Double) Double Double) genValid shrinkValid
lensLaw3 :: (Show b, Eq b, Show s, Eq s) => Lens s s a b -> Gen b -> (b -> [b]) -> Gen s -> (s -> [s]) -> Property Source #
A property combinator for the third lens law:
set l v' (set l v s) ≡ set l v' s
lensLaw3 ((_2) :: Lens (Double, Double) (Double, Double) Double Double) genValid shrinkValid genValid shrinkValid