feldspar-language-0.7: tests/Feldspar/Vector/Test.hs
{-# LANGUAGE TemplateHaskell #-}
module Feldspar.Vector.Test where
import qualified Prelude as P
import qualified Data.List as P
import Feldspar
import Feldspar.Prelude
import Feldspar.Vector.Internal
import Test.Tasty
import Test.Tasty.TH
import Test.Tasty.QuickCheck
tests = $(testGroupGenerator)
prop_freeze_thaw = eval (freezeVector . thawVector) ==== (id :: [Index] -> [Index])
prop_thaw_freeze = eval (thawVector . freezeVector) ==== (id :: [Index] -> [Index])
prop_length = eval (length -:: tVec1 tIndex >-> tData tLength) ==== P.genericLength
prop_append = eval ((++) -:: tVec1 tIndex >-> id >-> id) ==== (P.++)
prop_take = eval (take -:: tData tLength >-> tVec1 tIndex >-> id) ==== P.genericTake
prop_drop = eval (drop -:: tData tLength >-> tVec1 tIndex >-> id) ==== P.genericDrop
prop_revrev = eval ((reverse . reverse) -:: tVec1 tIndex >-> id) ==== id