Don't switch v2 and v3 of tetrahedron6 in the (2.8) tests. These tests used to fail, but now they don't. Cool?
-- store the triangles oriented such that their volume is
-- positive. If T and T-tilde share \<v0,v1,v2\> and v3,v3-tilde
-- point in opposite directions, one of them has to have negative
-- store the triangles oriented such that their volume is
-- positive. If T and T-tilde share \<v0,v1,v2\> and v3,v3-tilde
-- point in opposite directions, one of them has to have negative
--- volume! We also switch the third and fourth vertices of t6, but
--- as of now, why this works is a mystery.
prop_c3000_identity :: Cube -> Bool
prop_c3000_identity cube =
c t0 3 0 0 0 ~= c t0 2 1 0 0 + c t6 2 1 0 0
- ((c t0 2 0 1 0 + c t0 2 0 0 1)/ 2)
where
t0 = tetrahedron0 cube
prop_c3000_identity :: Cube -> Bool
prop_c3000_identity cube =
c t0 3 0 0 0 ~= c t0 2 1 0 0 + c t6 2 1 0 0
- ((c t0 2 0 1 0 + c t0 2 0 0 1)/ 2)
where
t0 = tetrahedron0 cube
- t6 = (tetrahedron6 cube) { v2 = (v3 t6), v3 = (v2 t6) }
-- | Given in Sorokina and Zeilfelder, p. 79, (2.8). See
-- | Given in Sorokina and Zeilfelder, p. 79, (2.8). See
- ((c t0 1 0 2 0 + c t0 1 0 1 1)/ 2)
where
t0 = tetrahedron0 cube
- ((c t0 1 0 2 0 + c t0 1 0 1 1)/ 2)
where
t0 = tetrahedron0 cube
- t6 = (tetrahedron6 cube) { v2 = (v3 t6), v3 = (v2 t6) }
-- | Given in Sorokina and Zeilfelder, p. 79, (2.8). See
-- | Given in Sorokina and Zeilfelder, p. 79, (2.8). See
- ((c t0 1 0 0 2 + c t0 1 0 1 1)/ 2)
where
t0 = tetrahedron0 cube
- ((c t0 1 0 0 2 + c t0 1 0 1 1)/ 2)
where
t0 = tetrahedron0 cube
- t6 = (tetrahedron6 cube) { v2 = (v3 t6), v3 = (v2 t6) }
-- | Given in Sorokina and Zeilfelder, p. 79, (2.8). See
-- | Given in Sorokina and Zeilfelder, p. 79, (2.8). See
- ((c t0 0 0 3 0 + c t0 0 0 2 1)/ 2)
where
t0 = tetrahedron0 cube
- ((c t0 0 0 3 0 + c t0 0 0 2 1)/ 2)
where
t0 = tetrahedron0 cube
- t6 = (tetrahedron6 cube) { v2 = (v3 t6), v3 = (v2 t6) }
-- | Given in Sorokina and Zeilfelder, p. 79, (2.8). See
-- | Given in Sorokina and Zeilfelder, p. 79, (2.8). See
- ((c t0 0 0 0 3 + c t0 0 0 1 2)/ 2)
where
t0 = tetrahedron0 cube
- ((c t0 0 0 0 3 + c t0 0 0 1 2)/ 2)
where
t0 = tetrahedron0 cube
- t6 = (tetrahedron6 cube) { v2 = (v3 t6), v3 = (v2 t6) }
-- | Given in Sorokina and Zeilfelder, p. 79, (2.8). See
-- | Given in Sorokina and Zeilfelder, p. 79, (2.8). See
((c t0 0 0 1 2 + c t0 0 0 2 1)/ 2)
where
t0 = tetrahedron0 cube
((c t0 0 0 1 2 + c t0 0 0 2 1)/ 2)
where
t0 = tetrahedron0 cube
- t6 = (tetrahedron6 cube) { v2 = (v3 t6), v3 = (v2 t6) }
putStr "prop_c1011_identity... "
quickCheckWith qc_args TC.prop_c1011_identity
putStr "prop_c1011_identity... "
quickCheckWith qc_args TC.prop_c1011_identity
-- putStrLn "\np. 80, (2.9)\n"
-- putStr "prop_c0120_identity2... "
-- putStrLn "\np. 80, (2.9)\n"
-- putStr "prop_c0120_identity2... "