]> gitweb.michael.orlitzky.com - spline3.git/blob - src/Tests/FunctionValues.hs
Add a test for FunctionValues, test_directions.
[spline3.git] / src / Tests / FunctionValues.hs
1 module Tests.FunctionValues
2 where
3
4 import Test.HUnit
5 import Test.QuickCheck
6
7 import Assertions
8 import Examples
9 import FunctionValues
10
11 instance Arbitrary FunctionValues where
12 arbitrary = do
13 front' <- arbitrary :: Gen Double
14 back' <- arbitrary :: Gen Double
15 left' <- arbitrary :: Gen Double
16 right' <- arbitrary :: Gen Double
17 top' <- arbitrary :: Gen Double
18 down' <- arbitrary :: Gen Double
19 front_left' <- arbitrary :: Gen Double
20 front_right' <- arbitrary :: Gen Double
21 front_top' <- arbitrary :: Gen Double
22 front_down' <- arbitrary :: Gen Double
23 back_left' <- arbitrary :: Gen Double
24 back_right' <- arbitrary :: Gen Double
25 back_top' <- arbitrary :: Gen Double
26 back_down' <- arbitrary :: Gen Double
27 left_top' <- arbitrary :: Gen Double
28 left_down' <- arbitrary :: Gen Double
29 right_top' <- arbitrary :: Gen Double
30 right_down' <- arbitrary :: Gen Double
31 front_left_top' <- arbitrary :: Gen Double
32 front_left_down' <- arbitrary :: Gen Double
33 front_right_top' <- arbitrary :: Gen Double
34 front_right_down' <- arbitrary :: Gen Double
35 back_left_top' <- arbitrary :: Gen Double
36 back_left_down' <- arbitrary :: Gen Double
37 back_right_top' <- arbitrary :: Gen Double
38 back_right_down' <- arbitrary :: Gen Double
39 interior' <- arbitrary :: Gen Double
40
41 return empty_values { front = front',
42 back = back',
43 left = left',
44 right = right',
45 top = top',
46 down = down',
47 front_left = front_left',
48 front_right = front_right',
49 front_top = front_top',
50 front_down = front_down',
51 back_left = back_left',
52 back_right = back_right',
53 back_top = back_top',
54 back_down = back_down',
55 left_top = left_top',
56 left_down = left_down',
57 right_top = right_top',
58 right_down = right_down',
59 front_left_top = front_left_top',
60 front_left_down = front_left_down',
61 front_right_top = front_right_top',
62 front_right_down = front_right_down',
63 back_left_top = back_left_top',
64 back_left_down = back_left_down',
65 back_right_top = back_right_top',
66 back_right_down = back_right_down',
67 interior = interior' }
68
69
70
71
72 test_directions :: Test
73 test_directions =
74 TestCase $ assertTrue "all direction functions work" (and equalities)
75 where
76 fvs = make_values trilinear 1 1 1
77 equalities = [ interior fvs == 4,
78 front fvs == 1,
79 back fvs == 7,
80 left fvs == 2,
81 right fvs == 6,
82 down fvs == 3,
83 top fvs == 5,
84 front_left fvs == 1,
85 front_right fvs == 1,
86 front_down fvs == 1,
87 front_top fvs == 1,
88 back_left fvs == 3,
89 back_right fvs == 11,
90 back_down fvs == 5,
91 back_top fvs == 9,
92 left_down fvs == 2,
93 left_top fvs == 2,
94 right_down fvs == 4,
95 right_top fvs == 8,
96 front_left_down fvs == 1,
97 front_left_top fvs == 1,
98 front_right_down fvs == 1,
99 front_right_top fvs == 1,
100 back_left_down fvs == 3,
101 back_left_top fvs == 3,
102 back_right_down fvs == 7,
103 back_right_top fvs == 15]
104
105 function_values_tests :: [Test]
106 function_values_tests = [test_directions]