packages feed

tensort-1.1.0.0: test/Test/QCheck.hs

module Test.QCheck
  ( qcheckBitsInt,
    qcheckRecsShortInt,
    qcheckRecsTinyInt,
    qcheckBitsOnlyInt,
    qcheckRecsInt,
    qcheckBitsChar,
    qcheckBitsString,
    qcheckBitsList,
    qcheckBitsFloat,
    qcheckBitsDouble,
    qcheckBitsInteger,
    qcheckBitsRational,
    qcheckBitsBool,
    qcheckBitsWord,
    qcheckBitsOrdering,
    qcheckBitsMaybe,
    qcheckBitsEither,
    qcheckBitsTuple,
  )
where

import Data.Tensort.Utils.Types (SortAlg)
import Test.SortSpec
  ( result_is_sorted_bits_only_ints,
    result_is_sorted_generic,
    result_is_sorted_records_ints,
    result_is_sorted_records_ints_short,
    result_is_sorted_records_ints_tiny,
  )
import Test.TestCheck (check)

qcheckBitsInt :: (SortAlg Int, String) -> IO ()
qcheckBitsInt (sort, sortName) = do
  putStrLn (sortName ++ " returns a sorted array with Ints..")
  check (result_is_sorted_generic sort)
  putStrLn "True!"

qcheckRecsInt :: (SortAlg (Int, Int), String) -> IO ()
qcheckRecsInt (sort, sortName) = do
  putStrLn (sortName ++ " returns a sorted array with Ints..")
  check (result_is_sorted_records_ints sort)
  putStrLn "True!"

qcheckRecsShortInt :: (SortAlg (Int, Int), String) -> IO ()
qcheckRecsShortInt (sort, sortName) = do
  putStrLn (sortName ++ " returns a sorted array with Ints..")
  check (result_is_sorted_records_ints_short sort)
  putStrLn "True!"

qcheckRecsTinyInt :: (SortAlg (Int, Int), String) -> IO ()
qcheckRecsTinyInt (sort, sortName) = do
  putStrLn (sortName ++ " returns a sorted array with Ints..")
  check (result_is_sorted_records_ints_tiny sort)
  putStrLn "True!"

qcheckBitsOnlyInt :: ([Int] -> [Int], String) -> IO ()
qcheckBitsOnlyInt (sort, sortName) = do
  putStrLn (sortName ++ " returns a sorted array with Ints..")
  check (result_is_sorted_bits_only_ints sort)
  putStrLn "True!"

qcheckBitsInteger :: (SortAlg Integer, String) -> IO ()
qcheckBitsInteger (sort, sortName) = do
  putStrLn (sortName ++ " returns a sorted array with Integers..")
  check (result_is_sorted_generic sort)
  putStrLn "True!"

qcheckBitsFloat :: (SortAlg Float, String) -> IO ()
qcheckBitsFloat (sort, sortName) = do
  putStrLn (sortName ++ " returns a sorted array with Floats..")
  check (result_is_sorted_generic sort)
  putStrLn "True!"

qcheckBitsDouble :: (SortAlg Double, String) -> IO ()
qcheckBitsDouble (sort, sortName) = do
  putStrLn (sortName ++ " returns a sorted array with Doubles..")
  check (result_is_sorted_generic sort)
  putStrLn "True!"

qcheckBitsRational :: (SortAlg Rational, String) -> IO ()
qcheckBitsRational (sort, sortName) = do
  putStrLn (sortName ++ " returns a sorted array with Rationals..")
  check (result_is_sorted_generic sort)
  putStrLn "True!"

qcheckBitsChar :: (SortAlg Char, String) -> IO ()
qcheckBitsChar (sort, sortName) = do
  putStrLn (sortName ++ " returns a sorted array with Chars..")
  check (result_is_sorted_generic sort)
  putStrLn "True!"

qcheckBitsString :: (SortAlg String, String) -> IO ()
qcheckBitsString (sort, sortName) = do
  putStrLn (sortName ++ " returns a sorted array with Strings..")
  check (result_is_sorted_generic sort)
  putStrLn "True!"

qcheckBitsBool :: (SortAlg Bool, String) -> IO ()
qcheckBitsBool (sort, sortName) = do
  putStrLn (sortName ++ " returns a sorted array with Bools..")
  check (result_is_sorted_generic sort)
  putStrLn "True!"

qcheckBitsWord :: (SortAlg Word, String) -> IO ()
qcheckBitsWord (sort, sortName) = do
  putStrLn (sortName ++ " returns a sorted array with Words..")
  check (result_is_sorted_generic sort)
  putStrLn "True!"

qcheckBitsOrdering :: (SortAlg Ordering, String) -> IO ()
qcheckBitsOrdering (sort, sortName) = do
  putStrLn (sortName ++ " returns a sorted array with Orderings..")
  check (result_is_sorted_generic sort)
  putStrLn "True!"

qcheckBitsMaybe :: (SortAlg (Maybe Int), String) -> IO ()
qcheckBitsMaybe (sort, sortName) = do
  putStrLn (sortName ++ " returns a sorted array with Maybes..")
  check (result_is_sorted_generic sort)
  putStrLn "True!"

qcheckBitsEither :: (SortAlg (Either Int Char), String) -> IO ()
qcheckBitsEither (sort, sortName) = do
  putStrLn (sortName ++ " returns a sorted array with Eithers..")
  check (result_is_sorted_generic sort)
  putStrLn "True!"

qcheckBitsTuple :: (SortAlg (Int, Int), String) -> IO ()
qcheckBitsTuple (sort, sortName) = do
  putStrLn (sortName ++ " returns a sorted array with Tuples..")
  check (result_is_sorted_generic sort)
  putStrLn "True!"

qcheckBitsList :: (SortAlg [Int], String) -> IO ()
qcheckBitsList (sort, sortName) = do
  putStrLn (sortName ++ " returns a sorted array with Lists..")
  check (result_is_sorted_generic sort)
  putStrLn "True!"