packages feed

genvalidity-criterion-1.0.0.0: bench/Main.hs

{-# LANGUAGE AllowAmbiguousTypes #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeApplications #-}

module Main where

import Criterion.Main as Criterion
import Data.Fixed
import Data.GenValidity.Criterion
import Data.Int
import Data.List.NonEmpty (NonEmpty (..))
import Data.Ratio
import Data.Word
import Numeric.Natural

main :: IO ()
main =
  Criterion.defaultMain
    [ genValidBench @(),
      genValidBench @Bool,
      genValidBench @Ordering,
      genValidBench @Char,
      genValidBench @Int,
      genValidBench @(Int, Int),
      genValidBench @(Int, Int, Int),
      genValidBench @(Int, Int, Int, Int),
      genValidBench @(Maybe Int),
      genValidBench @(Either Int Int),
      genValidBench @[Int],
      genValidBench @[[Int]],
      genValidBench @(NonEmpty Int),
      genValidBench @(NonEmpty (NonEmpty Int)),
      genValidBench @(Ratio Int),
      genValidBench @Int8,
      genValidBench @Int16,
      genValidBench @Int32,
      genValidBench @Int64,
      genValidBench @Integer,
      genValidBench @Word8,
      genValidBench @Word16,
      genValidBench @Word32,
      genValidBench @Word64,
      genValidBench @Natural,
      genValidBench @Float,
      genValidBench @Double,
      genValidBench @(Fixed E12),
      genValidBench @String
    ]