packages feed

ascii-case-1.0.1.3: test/Main.hs

module Main (main) where

import ASCII.Case
  ( Case (LowerCase, UpperCase),
    isCase,
    letterCase,
    toCase,
  )
import ASCII.Char (Char (..))
import Data.Bool (Bool (..))
import Data.Maybe (Maybe (..))
import System.IO (IO)
import Test.Hspec (hspec, it, shouldBe)

main :: IO ()
main = hspec do
  it "letterCase" do
    let f = letterCase
    f CapitalLetterR `shouldBe` Just UpperCase
    f SmallLetterR `shouldBe` Just LowerCase
    f DollarSign `shouldBe` Nothing

  it "isCase UpperCase" do
    let f = isCase UpperCase
    f CapitalLetterR `shouldBe` True
    f SmallLetterR `shouldBe` False
    f DollarSign `shouldBe` False

  it "toCase UpperCase" do
    let f = toCase UpperCase
    f SmallLetterX `shouldBe` CapitalLetterX
    f CapitalLetterA `shouldBe` CapitalLetterA
    f ExclamationMark `shouldBe` ExclamationMark

  it "toCase LowerCase" do
    let f = toCase LowerCase
    f CapitalLetterF `shouldBe` SmallLetterF