From 6b331ce746d10e9fe180b7c8ecc75988b24da535 Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Thu, 1 Sep 2011 23:17:15 -0400 Subject: [PATCH] Fix the broken Arbitrary instance of Values3D. --- src/Values.hs | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/src/Values.hs b/src/Values.hs index 2efd80b..dab9e34 100644 --- a/src/Values.hs +++ b/src/Values.hs @@ -20,7 +20,7 @@ import Data.Array.Repa ( import Data.Array.Repa.IO.Vector (readVectorFromTextFile, writeVectorToTextFile) import System.FilePath () -import Test.QuickCheck (Arbitrary(..), Gen) +import Test.QuickCheck (Arbitrary(..), Gen, Positive(..), vectorOf) import ScaleFactor @@ -33,23 +33,15 @@ type Values3D = Array DIM3 Double instance Arbitrary Values3D where arbitrary = do - x_dim <- arbitrary :: Gen Int - y_dim <- arbitrary :: Gen Int - z_dim <- arbitrary :: Gen Int - one_d <- arbitrary :: Gen Values1D + (Positive x_dim) <- arbitrary :: Gen (Positive Int) + (Positive y_dim) <- arbitrary :: Gen (Positive Int) + (Positive z_dim) <- arbitrary :: Gen (Positive Int) + elements <- vectorOf (x_dim * y_dim * z_dim) (arbitrary :: Gen Double) let new_shape = (Z :. x_dim :. y_dim :. z_dim) - let three_d = reshape new_shape one_d + let three_d = Data.Array.Repa.fromList new_shape elements return three_d -instance Arbitrary Values1D where - arbitrary = do - x <- arbitrary :: Gen [Double] - let shape = (Z :. (length x)) - let one_d = Data.Array.Repa.fromList shape x - return one_d - - read_values_1d :: FilePath -> IO Values1D read_values_1d = readVectorFromTextFile -- 2.43.2