]> gitweb.michael.orlitzky.com - spline3.git/blobdiff - src/Cube.hs
Rename "tetrahedrons" to "tetrahedra".
[spline3.git] / src / Cube.hs
index 2ec9e4848318fb12135309900e5505df20f3614e..2878eb06b76ffb54c0685de2543457faf3d8db29 100644 (file)
@@ -1,6 +1,8 @@
 module Cube
 where
 
+import Test.QuickCheck (Arbitrary(..), Gen, Positive(..), choose)
+    
 import Cardinal
 import qualified Face (Face(Face, v0, v1, v2, v3))
 import FunctionValues
@@ -16,6 +18,19 @@ data Cube = Cube { h :: Double,
             deriving (Eq)
 
 
+instance Arbitrary Cube where
+    arbitrary = do
+      (Positive h') <- arbitrary :: Gen (Positive Double)
+      i' <- choose (coordmin, coordmax)
+      j' <- choose (coordmin, coordmax)
+      k' <- choose (coordmin, coordmax)
+      fv' <- arbitrary :: Gen FunctionValues
+      return (Cube h' i' j' k' fv')
+        where
+          coordmin = -268435456 -- -(2^29 / 2)
+          coordmax = 268435456  -- +(2^29 / 2)
+
+
 instance Show Cube where
     show c =
         "Cube_" ++ subscript ++ "\n" ++
@@ -447,8 +462,8 @@ tetrahedron23 c =
                        $ Tetrahedron.fv (tetrahedron0 c)
 
 
-tetrahedrons :: Cube -> [Tetrahedron]
-tetrahedrons c =
+tetrahedra :: Cube -> [Tetrahedron]
+tetrahedra c =
     [tetrahedron0 c,
      tetrahedron1 c,
      tetrahedron2 c,
@@ -482,4 +497,4 @@ find_containing_tetrahedra c p =
     filter contains_our_point all_tetrahedra
     where
       contains_our_point = flip contains_point p
-      all_tetrahedra = tetrahedrons c
+      all_tetrahedra = tetrahedra c