where
import Test.HUnit
-import Test.QuickCheck
+import Test.QuickCheck (Property, (==>))
import Cardinal
import Comparisons
-import Point
import FunctionValues
import Tests.FunctionValues()
import Tetrahedron
import ThreeDimensional
-instance Arbitrary Tetrahedron where
- arbitrary = do
- rnd_v0 <- arbitrary :: Gen Point
- rnd_v1 <- arbitrary :: Gen Point
- rnd_v2 <- arbitrary :: Gen Point
- rnd_v3 <- arbitrary :: Gen Point
- rnd_fv <- arbitrary :: Gen FunctionValues
- return (Tetrahedron rnd_fv rnd_v0 rnd_v1 rnd_v2 rnd_v3)
-
-- HUnit Tests
expr1 == expr2
where
fv0 = Tetrahedron.fv t
- fv1 = rotate (Tetrahedron.fv t) cwx
- expr1 = front $ fv0
- expr2 = front $ fv1
+ fv1 = rotate cwx (Tetrahedron.fv t)
+ expr1 = front fv0
+ expr2 = front fv1
prop_x_rotation_doesnt_affect_back :: Tetrahedron -> Bool
prop_x_rotation_doesnt_affect_back t =
expr1 == expr2
where
fv0 = Tetrahedron.fv t
- fv1 = rotate (Tetrahedron.fv t) cwx
- expr1 = back $ fv0
- expr2 = back $ fv1
+ fv1 = rotate cwx (Tetrahedron.fv t)
+ expr1 = back fv0
+ expr2 = back fv1
prop_y_rotation_doesnt_affect_left :: Tetrahedron -> Bool
expr1 == expr2
where
fv0 = Tetrahedron.fv t
- fv1 = rotate (Tetrahedron.fv t) cwy
- expr1 = left $ fv0
- expr2 = left $ fv1
+ fv1 = rotate cwy (Tetrahedron.fv t)
+ expr1 = left fv0
+ expr2 = left fv1
prop_y_rotation_doesnt_affect_right :: Tetrahedron -> Bool
prop_y_rotation_doesnt_affect_right t =
expr1 == expr2
where
fv0 = Tetrahedron.fv t
- fv1 = rotate (Tetrahedron.fv t) cwy
- expr1 = right $ fv0
- expr2 = right $ fv1
+ fv1 = rotate cwy (Tetrahedron.fv t)
+ expr1 = right fv0
+ expr2 = right fv1
prop_z_rotation_doesnt_affect_down :: Tetrahedron -> Bool
expr1 == expr2
where
fv0 = Tetrahedron.fv t
- fv1 = rotate (Tetrahedron.fv t) cwz
- expr1 = down $ fv0
- expr2 = down $ fv1
+ fv1 = rotate cwz (Tetrahedron.fv t)
+ expr1 = down fv0
+ expr2 = down fv1
prop_z_rotation_doesnt_affect_top :: Tetrahedron -> Bool
expr1 == expr2
where
fv0 = Tetrahedron.fv t
- fv1 = rotate (Tetrahedron.fv t) cwz
- expr1 = top $ fv0
- expr2 = top $ fv1
+ fv1 = rotate cwz (Tetrahedron.fv t)
+ expr1 = top fv0
+ expr2 = top fv1
prop_swapping_vertices_doesnt_affect_coefficients1 :: Tetrahedron -> Bool
prop_swapping_vertices_doesnt_affect_coefficients1 t =