futhark-0.21.14: unittests/Futhark/IR/Prop/ReshapeTests.hs
{-# OPTIONS_GHC -fno-warn-orphans #-}
module Futhark.IR.Prop.ReshapeTests
( tests,
)
where
import Futhark.IR.Prop.Constants
import Futhark.IR.Prop.Reshape
import Futhark.IR.Syntax
import Test.Tasty
import Test.Tasty.HUnit
reshapeOuterTests :: [TestTree]
reshapeOuterTests =
[ testCase (unwords ["reshapeOuter", show sc, show n, show shape, "==", show sc_res]) $
reshapeOuter (intShape sc) n (intShape shape) @?= intShape sc_res
| (sc, n, shape, sc_res) <-
[ ([1], 1, [4, 3], [1, 3]),
([1], 2, [4, 3], [1]),
([2, 2], 1, [4, 3], [2, 2, 3]),
([2, 2], 2, [4, 3], [2, 2])
]
]
reshapeInnerTests :: [TestTree]
reshapeInnerTests =
[ testCase (unwords ["reshapeInner", show sc, show n, show shape, "==", show sc_res]) $
reshapeInner (intShape sc) n (intShape shape) @?= intShape sc_res
| (sc, n, shape, sc_res) <-
[ ([1], 1, [4, 3], [4, 1]),
([1], 0, [4, 3], [1]),
([2, 2], 1, [4, 3], [4, 2, 2]),
([2, 2], 0, [4, 3], [2, 2])
]
]
intShape :: [Int] -> Shape
intShape = Shape . map (intConst Int32 . toInteger)
tests :: TestTree
tests =
testGroup "ReshapeTests" $
reshapeOuterTests ++ reshapeInnerTests