module Saturn.Unstable.Extra.TupleSpec where import qualified Saturn.Unstable.Extra.Tuple as Tuple import qualified Test.Hspec as Hspec spec :: Hspec.Spec spec :: Spec spec = forall a. HasCallStack => [Char] -> SpecWith a -> SpecWith a Hspec.describe [Char] "Saturn.Unstable.Extra.Tuple" forall a b. (a -> b) -> a -> b $ do forall a. HasCallStack => [Char] -> SpecWith a -> SpecWith a Hspec.describe [Char] "mapBoth" forall a b. (a -> b) -> a -> b $ do forall a. (HasCallStack, Example a) => [Char] -> a -> SpecWith (Arg a) Hspec.it [Char] "works" forall a b. (a -> b) -> a -> b $ do forall a b. (a -> b) -> (a, a) -> (b, b) Tuple.mapBoth forall a. Enum a => a -> a succ (Char 'A', Char 'a') forall a. (HasCallStack, Show a, Eq a) => a -> a -> Expectation `Hspec.shouldBe` (Char 'B', Char 'b') forall a. HasCallStack => [Char] -> SpecWith a -> SpecWith a Hspec.describe [Char] "toSequence" forall a b. (a -> b) -> a -> b $ do forall a. (HasCallStack, Example a) => [Char] -> a -> SpecWith (Arg a) Hspec.it [Char] "works" forall a b. (a -> b) -> a -> b $ do forall a. Enum a => (a, a) -> [a] Tuple.toSequence (Char 'b', Char 'd') forall a. (HasCallStack, Show a, Eq a) => a -> a -> Expectation `Hspec.shouldBe` [Char] "bcd" forall a. (HasCallStack, Example a) => [Char] -> a -> SpecWith (Arg a) Hspec.it [Char] "works with singleton" forall a b. (a -> b) -> a -> b $ do forall a. Enum a => (a, a) -> [a] Tuple.toSequence (Char 'a', Char 'a') forall a. (HasCallStack, Show a, Eq a) => a -> a -> Expectation `Hspec.shouldBe` [Char] "a" forall a. (HasCallStack, Example a) => [Char] -> a -> SpecWith (Arg a) Hspec.it [Char] "works with empty" forall a b. (a -> b) -> a -> b $ do forall a. Enum a => (a, a) -> [a] Tuple.toSequence (Char 'b', Char 'a') forall a. (HasCallStack, Show a, Eq a) => a -> a -> Expectation `Hspec.shouldBe` [Char] ""