Tests for D.V.Storable
authorRoman Leshchinskiy <rl@cse.unsw.edu.au>
Wed, 18 Nov 2009 12:14:36 +0000 (12:14 +0000)
committerRoman Leshchinskiy <rl@cse.unsw.edu.au>
Wed, 18 Nov 2009 12:14:36 +0000 (12:14 +0000)
tests/Tests/Vector.hs
tests/Utilities.hs

index edcf0ef..1f382e7 100644 (file)
@@ -6,6 +6,7 @@ import Utilities
 import qualified Data.Vector.Generic as V
 import qualified Data.Vector
 import qualified Data.Vector.Primitive
+import qualified Data.Vector.Storable
 import qualified Data.Vector.Fusion.Stream as S
 
 import Test.QuickCheck
@@ -316,13 +317,26 @@ testGeneralPrimitiveVector dummy = concatMap ($ dummy) [
         testOrdFunctions
     ]
 
+testGeneralStorableVector dummy = concatMap ($ dummy) [
+        testSanity,
+        testPolymorphicFunctions,
+        testOrdFunctions
+    ]
+
 testBoolPrimitiveVector dummy = testGeneralPrimitiveVector dummy ++ testBoolFunctions dummy
 testNumericPrimitiveVector dummy = testGeneralPrimitiveVector dummy ++ testNumFunctions dummy ++ testEnumFunctions dummy
+testNumericStorableVector dummy = testGeneralStorableVector dummy ++ testNumFunctions dummy ++ testEnumFunctions dummy
 
 tests = [
         testGroup "Data.Vector.Vector (Bool)"           (testBoolBoxedVector      (undefined :: Data.Vector.Vector Bool)),
         testGroup "Data.Vector.Vector (Int)"            (testNumericBoxedVector   (undefined :: Data.Vector.Vector Int)),
+
         testGroup "Data.Vector.Primitive.Vector (Int)"    (testNumericPrimitiveVector (undefined :: Data.Vector.Primitive.Vector Int)),
         testGroup "Data.Vector.Primitive.Vector (Float)"  (testNumericPrimitiveVector (undefined :: Data.Vector.Primitive.Vector Float)),
-        testGroup "Data.Vector.Primitive.Vector (Double)" (testNumericPrimitiveVector (undefined :: Data.Vector.Primitive.Vector Double))
+        testGroup "Data.Vector.Primitive.Vector (Double)" (testNumericPrimitiveVector (undefined :: Data.Vector.Primitive.Vector Double)),
+
+        testGroup "Data.Vector.Storable.Vector (Int)"    (testNumericStorableVector (undefined :: Data.Vector.Storable.Vector Int)),
+        testGroup "Data.Vector.Storable.Vector (Float)"  (testNumericStorableVector (undefined :: Data.Vector.Storable.Vector Float)),
+        testGroup "Data.Vector.Storable.Vector (Double)" (testNumericStorableVector (undefined :: Data.Vector.Storable.Vector Double))
     ]
+
index d7ca44f..05f5b8f 100644 (file)
@@ -6,6 +6,7 @@ import Test.QuickCheck
 import qualified Data.Vector as DV
 import qualified Data.Vector.Generic as DVG
 import qualified Data.Vector.Primitive as DVP
+import qualified Data.Vector.Storable as DVS
 import qualified Data.Vector.Fusion.Stream as S
 
 import Data.List ( sortBy )
@@ -27,6 +28,12 @@ instance (Arbitrary a, DVP.Prim a) => Arbitrary (DVP.Vector a) where
 instance (CoArbitrary a, DVP.Prim a) => CoArbitrary (DVP.Vector a) where
     coarbitrary = coarbitrary . DVP.toList
 
+instance (Arbitrary a, DVS.Storable a) => Arbitrary (DVS.Vector a) where
+    arbitrary = fmap DVS.fromList arbitrary
+
+instance (CoArbitrary a, DVS.Storable a) => CoArbitrary (DVS.Vector a) where
+    coarbitrary = coarbitrary . DVS.toList
+
 instance Arbitrary a => Arbitrary (S.Stream a) where
     arbitrary = fmap S.fromList arbitrary
 
@@ -65,6 +72,14 @@ instance (Eq a, DVP.Prim a) => TestData (DVP.Vector a) where
   type EqTest (DVP.Vector a) = Property
   equal x y = property (x == y)
 
+instance (Eq a, DVS.Storable a) => TestData (DVS.Vector a) where
+  type Model (DVS.Vector a) = [a]
+  model = DVS.toList
+  unmodel = DVS.fromList
+
+  type EqTest (DVS.Vector a) = Property
+  equal x y = property (x == y)
+
 #define id_TestData(ty) \
 instance TestData ty where { \
   type Model ty = ty;        \