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
 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
 import qualified Data.Vector.Fusion.Stream as S
 
 import Test.QuickCheck
@@ -372,8 +373,20 @@ testGeneralBoxedVector dummy = concatMap ($ dummy) [
         testNestedVectorFunctions
     ]
 
         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,
 
 testGeneralPrimitiveVector dummy = concatMap ($ dummy) [
         testSanity,
@@ -381,15 +394,58 @@ testGeneralPrimitiveVector dummy = concatMap ($ dummy) [
         testOrdFunctions
     ]
 
         testOrdFunctions
     ]
 
+testBoolPrimitiveVector dummy = concatMap ($ dummy)
+  [
+    testGeneralPrimitiveVector
+  , testBoolFunctions
+  ]
+
+testNumericPrimitiveVector dummy = concatMap ($ dummy)
+ [
+   testGeneralPrimitiveVector
+ , testNumFunctions
+ , testEnumFunctions
+ ]
+
+
+
 testGeneralStorableVector dummy = concatMap ($ dummy) [
         testSanity,
         testPolymorphicFunctions,
         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
+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)),
 
 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 (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.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 )
 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 (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
 
 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)
 
   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;        \
 #define id_TestData(ty) \
 instance TestData ty where { \
   type Model ty = ty;        \