D.V.Unboxed tests
authorRoman Leshchinskiy <rl@cse.unsw.edu.au>
Thu, 10 Dec 2009 06:48:57 +0000 (06:48 +0000)
committerRoman Leshchinskiy <rl@cse.unsw.edu.au>
Thu, 10 Dec 2009 06:48:57 +0000 (06:48 +0000)
tests/Tests/Vector.hs
tests/Utilities.hs

index c9cb3e8..d18d464 100644 (file)
@@ -7,6 +7,7 @@ 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.Unboxed
 import qualified Data.Vector.Fusion.Stream as S
 
 import Test.QuickCheck
@@ -372,8 +373,20 @@ testGeneralBoxedVector dummy = concatMap ($ dummy) [
         testNestedVectorFunctions
     ]
 
-testBoolBoxedVector dummy = testGeneralBoxedVector dummy ++ testBoolFunctions dummy
-testNumericBoxedVector dummy = testGeneralBoxedVector dummy ++ testNumFunctions dummy ++ testEnumFunctions dummy
+testBoolBoxedVector dummy = concatMap ($ dummy)
+  [
+    testGeneralBoxedVector
+  , testBoolFunctions
+  ]
+
+testNumericBoxedVector dummy = concatMap ($ dummy)
+  [
+    testGeneralBoxedVector
+  , testNumFunctions
+  , testEnumFunctions
+  ]
+
+
 
 testGeneralPrimitiveVector dummy = concatMap ($ dummy) [
         testSanity,
@@ -381,15 +394,58 @@ testGeneralPrimitiveVector dummy = concatMap ($ dummy) [
         testOrdFunctions
     ]
 
+testBoolPrimitiveVector dummy = concatMap ($ dummy)
+  [
+    testGeneralPrimitiveVector
+  , testBoolFunctions
+  ]
+
+testNumericPrimitiveVector dummy = concatMap ($ dummy)
+ [
+   testGeneralPrimitiveVector
+ , testNumFunctions
+ , testEnumFunctions
+ ]
+
+
+
 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
+testNumericStorableVector dummy = concatMap ($ dummy)
+  [
+    testGeneralStorableVector
+  , testNumFunctions
+  , testEnumFunctions
+  ]
+
+
+
+testGeneralUnboxedVector dummy = concatMap ($ dummy) [
+        testSanity,
+        testPolymorphicFunctions
+    ]
+
+testOrdUnboxedVector dummy = concatMap ($ dummy)
+  [
+    testOrdFunctions
+  ]
+
+testBoolUnboxedVector dummy = concatMap ($ dummy)
+  [
+    testGeneralUnboxedVector
+  , testBoolFunctions
+  ]
+
+testNumericUnboxedVector dummy = concatMap ($ dummy)
+ [
+   testGeneralUnboxedVector
+ , testNumFunctions
+ , testEnumFunctions
+ ]
 
 tests = [
         testGroup "Data.Vector.Vector (Bool)"           (testBoolBoxedVector      (undefined :: Data.Vector.Vector Bool)),
@@ -401,6 +457,11 @@ tests = [
 
         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))
+        testGroup "Data.Vector.Storable.Vector (Double)" (testNumericStorableVector (undefined :: Data.Vector.Storable.Vector Double)),
+
+        testGroup "Data.Vector.Unboxed.Vector (Int)"    (testNumericUnboxedVector (undefined :: Data.Vector.Unboxed.Vector Int)),
+        testGroup "Data.Vector.Unboxed.Vector (Float)"  (testNumericUnboxedVector (undefined :: Data.Vector.Unboxed.Vector Float)),
+        testGroup "Data.Vector.Unboxed.Vector (Double)" (testNumericUnboxedVector (undefined :: Data.Vector.Unboxed.Vector Double))
+
     ]
 
index 162d0c8..61ac473 100644 (file)
@@ -7,6 +7,7 @@ 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.Unboxed as DVU
 import qualified Data.Vector.Fusion.Stream as S
 
 import Data.List ( sortBy )
@@ -34,6 +35,12 @@ instance (Arbitrary a, DVS.Storable a) => Arbitrary (DVS.Vector a) where
 instance (CoArbitrary a, DVS.Storable a) => CoArbitrary (DVS.Vector a) where
     coarbitrary = coarbitrary . DVS.toList
 
+instance (Arbitrary a, DVU.Unbox a) => Arbitrary (DVU.Vector a) where
+    arbitrary = fmap DVU.fromList arbitrary
+
+instance (CoArbitrary a, DVU.Unbox a) => CoArbitrary (DVU.Vector a) where
+    coarbitrary = coarbitrary . DVU.toList
+
 instance Arbitrary a => Arbitrary (S.Stream a) where
     arbitrary = fmap S.fromList arbitrary
 
@@ -80,6 +87,14 @@ instance (Eq a, DVS.Storable a) => TestData (DVS.Vector a) where
   type EqTest (DVS.Vector a) = Property
   equal x y = property (x == y)
 
+instance (Eq a, DVU.Unbox a) => TestData (DVU.Vector a) where
+  type Model (DVU.Vector a) = [a]
+  model = DVU.toList
+  unmodel = DVU.fromList
+
+  type EqTest (DVU.Vector a) = Property
+  equal x y = property (x == y)
+
 #define id_TestData(ty) \
 instance TestData ty where { \
   type Model ty = ty;        \