{-# LANGUAGE TemplateHaskell #-} module Main where import Test.Tasty import Test.Tasty.TH import Test.Tasty.QuickCheck import Feldspar import Feldspar.Vector import Feldspar.Vector.Push as PV import Feldspar.Compiler.Plugin prog0 :: Data Index -> Data Index -> Data Index prog0 = (+) loadFun 'prog0 prog1 :: Vector1 Index -> Vector1 Index prog1 = id loadFun 'prog1 prog2 :: Vector1 Index -> PushVector1 Index prog2 v = let pv = toPush v in pv PV.++ pv loadFun 'prog2 prop_prog0 :: Property prop_prog0 = eval prog0 === c_prog0 prop_prog1 :: Property prop_prog1 = eval prog1 === c_prog1 prop_prog2 :: NonEmptyList WordN -> Property prop_prog2 (NonEmpty xs) = eval prog2 xs === c_prog2 xs tests :: TestTree tests = $(testGroupGenerator) main :: IO () main = defaultMain tests