From: Michael Orlitzky Date: Fri, 2 Sep 2011 03:17:15 +0000 (-0400) Subject: Fix the broken Arbitrary instance of Values3D. X-Git-Tag: 0.0.1~184 X-Git-Url: https://gitweb.michael.orlitzky.com/?a=commitdiff_plain;h=6b331ce746d10e9fe180b7c8ecc75988b24da535;p=spline3.git Fix the broken Arbitrary instance of Values3D. --- 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