where
import Prelude hiding (LT)
-import Test.QuickCheck
import Cardinal
import Comparisons
import Tetrahedron (b0, b1, b2, b3, c, fv,
v0, v1, v2, v3, volume)
-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)
-- Quickcheck tests.
--- | Since the grid size is necessarily positive, all tetrahedrons
+-- | Since the grid size is necessarily positive, all tetrahedra
-- (which comprise cubes of positive volume) must have positive volume
-- as well.
prop_all_volumes_positive :: Cube -> Bool
prop_all_volumes_positive cube =
null nonpositive_volumes
where
- ts = tetrahedrons cube
+ ts = tetrahedra cube
volumes = map volume ts
nonpositive_volumes = filter (<= 0) volumes
prop_v0_all_equal :: Cube -> Bool
prop_v0_all_equal cube = (v0 t0) == (v0 t1)
where
- t0 = head (tetrahedrons cube) -- Doesn't matter which two we choose.
- t1 = head $ tail (tetrahedrons cube)
+ t0 = head (tetrahedra cube) -- Doesn't matter which two we choose.
+ t1 = head $ tail (tetrahedra cube)
-- | This pretty much repeats the prop_all_volumes_positive property,