{-# 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