packages feed

semiring-num-0.1.0.0: test/Spec.hs

{-# LANGUAGE TypeApplications #-}

module Main (main) where

import           Data.Proxy            (Proxy (..))
import           Data.Semiring         (Add, Mul)
import           Data.Semiring.Numeric
import           Data.Set              (Set)
import           Test.DocTest
import           Test.QuickCheck
import           Test.Semiring

main :: IO ()
main = do
  quickCheck (semiringLaws (Proxy :: Proxy Integer))
  quickCheck (semiringLaws (Proxy :: Proxy Bool))
  quickCheck (semiringLaws (Proxy :: Proxy (Add Integer)))
  quickCheck (semiringLaws (Proxy :: Proxy (Mul Integer)))
  quickCheck (semiringLaws (Proxy :: Proxy (Set Ordering)))
  quickCheck (semiringLaws (Proxy :: Proxy (Integer,Integer)))
  quickCheck (semiringLaws (Proxy :: Proxy (Integer,Integer,Integer)))
  quickCheck (semiringLaws (Proxy :: Proxy (Integer,Integer,Integer,Integer)))
  quickCheck (semiringLaws (Proxy :: Proxy (Integer,Integer,Integer,Integer,Integer)))
  quickCheck (semiringLaws (Proxy :: Proxy (Division Integer)))
  quickCheck (semiringLaws (Proxy :: Proxy (Bottleneck Int)))
  quickCheck (semiringLaws (Proxy :: Proxy (Łukasiewicz Integer)))
  quickCheck (semiringLaws (Proxy :: Proxy (Viterbi Integer)))
  doctest [ "-isrc"
          , "src/Data/Semiring.hs"
          , "src/Data/Semiring/Numeric.hs"
          , "src/Test/Semiring.hs" ]