packages feed

saturn-1.1.0.0: source/library/Saturn/Unstable/Extra/TupleSpec.hs

module Saturn.Unstable.Extra.TupleSpec where

import qualified Heck
import qualified Saturn.Unstable.Extra.Tuple as Tuple

spec :: (Applicative m, Monad n) => Heck.Test m n -> n ()
spec t = Heck.describe t "Saturn.Unstable.Extra.Tuple" $ do
  Heck.describe t "mapBoth" $ do
    Heck.it t "works" $ do
      Heck.assertEq t ('B', 'b') (Tuple.mapBoth succ ('A', 'a'))

  Heck.describe t "toSequence" $ do
    Heck.it t "works" $ do
      Heck.assertEq t "bcd" (Tuple.toSequence ('b', 'd'))

    Heck.it t "works with singleton" $ do
      Heck.assertEq t "a" (Tuple.toSequence ('a', 'a'))

    Heck.it t "works with empty" $ do
      Heck.assertEq t "" (Tuple.toSequence ('b', 'a'))