packages feed

dataframe-fastcsv-1.1.1.0: tests/Main.hs

{-# LANGUAGE ScopedTypeVariables #-}

module Main where

import qualified System.Exit as Exit

import Test.HUnit
import Test.QuickCheck

import qualified Operations.ChunkParallel
import qualified Operations.ReadCsv
import qualified Operations.TypedExtraction
import qualified Properties.Csv

tests :: Test
tests =
    TestList
        ( Operations.ReadCsv.tests
            <> Operations.TypedExtraction.tests
            <> Operations.ChunkParallel.tests
        )

isSuccessful :: Result -> Bool
isSuccessful (Success{}) = True
isSuccessful _ = False

main :: IO ()
main = do
    result <- runTestTT tests
    if failures result > 0 || errors result > 0
        then Exit.exitFailure
        else do
            propsRes <- mapM (quickCheckWithResult stdArgs) Properties.Csv.tests
            if not (all isSuccessful propsRes)
                then Exit.exitFailure
                else Exit.exitSuccess