]> gitweb.michael.orlitzky.com - spline3.git/commitdiff
Add the prop_interior_values_all_identical test.
authorMichael Orlitzky <michael@orlitzky.com>
Tue, 7 Jun 2011 21:01:56 +0000 (17:01 -0400)
committerMichael Orlitzky <michael@orlitzky.com>
Tue, 7 Jun 2011 21:01:56 +0000 (17:01 -0400)
src/Tests/Cube.hs
test/TestSuite.hs

index aaafa7ca77a6cad7f9a6afc4cbab1745d120d611..dac4f80749f019b0f76dd2f29e77b235eeeea82e 100644 (file)
@@ -8,6 +8,7 @@ import Cardinal
 import Comparisons
 import Cube
 import FunctionValues
+import Misc (all_equal)
 import Tests.FunctionValues ()
 import Tetrahedron (b0, b1, b2, b3, c, fv,
                     v0, v1, v2, v3, volume)
@@ -540,6 +541,39 @@ prop_c1011_identity cube =
 
 
 
+-- | The function values at the interior should be the same for all tetrahedra.
+prop_interior_values_all_identical :: Cube -> Bool
+prop_interior_values_all_identical cube =
+    all_equal [i0, i1, i2, i3, i4, i5, i6, i7, i8,
+               i9, i10, i11, i12, i13, i14, i15, i16,
+               i17, i18, i19, i20, i21, i22, i23]
+    where
+      i0 = eval (Tetrahedron.fv (tetrahedron0 cube)) $ I
+      i1 = eval (Tetrahedron.fv (tetrahedron1 cube)) $ I
+      i2 = eval (Tetrahedron.fv (tetrahedron2 cube)) $ I
+      i3 = eval (Tetrahedron.fv (tetrahedron3 cube)) $ I
+      i4 = eval (Tetrahedron.fv (tetrahedron4 cube)) $ I
+      i5 = eval (Tetrahedron.fv (tetrahedron5 cube)) $ I
+      i6 = eval (Tetrahedron.fv (tetrahedron6 cube)) $ I
+      i7 = eval (Tetrahedron.fv (tetrahedron7 cube)) $ I
+      i8 = eval (Tetrahedron.fv (tetrahedron8 cube)) $ I
+      i9 = eval (Tetrahedron.fv (tetrahedron9 cube)) $ I
+      i10 = eval (Tetrahedron.fv (tetrahedron10 cube)) $ I
+      i11 = eval (Tetrahedron.fv (tetrahedron11 cube)) $ I
+      i12 = eval (Tetrahedron.fv (tetrahedron12 cube)) $ I
+      i13 = eval (Tetrahedron.fv (tetrahedron13 cube)) $ I
+      i14 = eval (Tetrahedron.fv (tetrahedron14 cube)) $ I
+      i15 = eval (Tetrahedron.fv (tetrahedron15 cube)) $ I
+      i16 = eval (Tetrahedron.fv (tetrahedron16 cube)) $ I
+      i17 = eval (Tetrahedron.fv (tetrahedron17 cube)) $ I
+      i18 = eval (Tetrahedron.fv (tetrahedron18 cube)) $ I
+      i19 = eval (Tetrahedron.fv (tetrahedron19 cube)) $ I
+      i20 = eval (Tetrahedron.fv (tetrahedron20 cube)) $ I
+      i21 = eval (Tetrahedron.fv (tetrahedron21 cube)) $ I
+      i22 = eval (Tetrahedron.fv (tetrahedron22 cube)) $ I
+      i23 = eval (Tetrahedron.fv (tetrahedron23 cube)) $ I
+
+
 -- | We know what (c t6 2 1 0 0) should be from Sorokina and Zeilfelder, p. 87.
 --   This test checks the rotation works as expected.
 prop_c_tilde_2100_rotation_correct :: Cube -> Bool
index ee6f0d4f797015e233c7196cafd5103a409c51ef..309a13c9815c74d3ff74158065dfcb1139b46b55 100644 (file)
@@ -238,6 +238,9 @@ main = do
   -- putStr "prop_c0300_identity3... "
   -- quickCheckWith qc_args TF.prop_c0300_identity3
 
+  putStrLn "prop_interior_values_all_identical... "
+  quickCheckWith qc_args prop_interior_values_all_identical
+
   putStrLn "prop_c_tilde_2100_rotation_correct... "
   quickCheckWith qc_args prop_c_tilde_2100_rotation_correct