1 
# $Id: run_visualization_interface.py 798 20060804 01:05:36Z gross $ 
2 

3 
__copyright__=""" Copyright (c) 2006 by ACcESS MNRF 
4 
http://www.access.edu.au 
5 
Primary Business: Queensland, Australia""" 
6 
__license__="""Licensed under the Open Software License version 3.0 
7 
http://www.opensource.org/licenses/osl3.0.php""" 
8 
import sys 
9 
import unittest 
10 
import numarray 
11 
from esys.pycad import * 
12 

13 
try: 
14 
PYCAD_TEST_DATA=os.environ['PYCAD_TEST_DATA'] 
15 
except KeyError: 
16 
PYCAD_TEST_DATA='.' 
17 

18 
try: 
19 
PYCAD_WORKDIR=os.environ['PYCAD_WORKDIR'] 
20 
except KeyError: 
21 
PYCAD_WORKDIR='.' 
22 

23 
PYCAD_TEST_MESH_PATH=PYCAD_TEST_DATA+"/data_meshes/" 
24 
PYCAD_WORKDIR_PATH=PYCAD_WORKDIR+"/" 
25 

26 
class Test_PyCAD(unittest.TestCase): 
27 
ABS_TOL=1.e8 
28 
def __distance(self,x,y): 
29 
return math.sqrt(numarray.dot(xy,xy)) 
30 
def test_Translation_x(self): 
31 
t=Translation([1,0,0]) 
32 
s0=t([1,0,0]) 
33 
self.failUnless(isinstance(s0,numarray.NumArray),"s0 is not a numarray object.") 
34 
self.failUnless(self.__distance(s0,numarray.array([2,0,0]))<self.ABS_TOL,"s0 is wrong.") 
35 
s1=t([0,1,0]) 
36 
self.failUnless(isinstance(s1,numarray.NumArray),"s1 is not a numarray object.") 
37 
self.failUnless(self.__distance(s1,numarray.array([1,1,0]))<self.ABS_TOL,"s1 is wrong.") 
38 
s2=t([0,0,1]) 
39 
self.failUnless(isinstance(s2,numarray.NumArray),"s2 is not a numarray object.") 
40 
self.failUnless(self.__distance(s2,numarray.array([1,0,1]))<self.ABS_TOL,"s2 is wrong.") 
41 
def test_Translation_y(self): 
42 
t=Translation([0,1,0]) 
43 
s0=t([1,0,0]) 
44 
self.failUnless(isinstance(s0,numarray.NumArray),"s0 is not a numarray object.") 
45 
self.failUnless(self.__distance(s0,numarray.array([1,1,0]))<self.ABS_TOL,"s0 is wrong.") 
46 
s1=t([0,1,0]) 
47 
self.failUnless(isinstance(s1,numarray.NumArray),"s1 is not a numarray object.") 
48 
self.failUnless(self.__distance(s1,numarray.array([0,2,0]))<self.ABS_TOL,"s1 is wrong.") 
49 
s2=t([0,0,1]) 
50 
self.failUnless(isinstance(s2,numarray.NumArray),"s2 is not a numarray object.") 
51 
self.failUnless(self.__distance(s2,numarray.array([0,1,1]))<self.ABS_TOL,"s2 is wrong.") 
52 
def test_Translation_z(self): 
53 
t=Translation([0,0,1]) 
54 
s0=t([1,0,0]) 
55 
self.failUnless(isinstance(s0,numarray.NumArray),"s0 is not a numarray object.") 
56 
self.failUnless(self.__distance(s0,numarray.array([1,0,1]))<self.ABS_TOL,"s0 is wrong.") 
57 
s1=t([0,1,0]) 
58 
self.failUnless(isinstance(s1,numarray.NumArray),"s1 is not a numarray object.") 
59 
self.failUnless(self.__distance(s1,numarray.array([0,1,1]))<self.ABS_TOL,"s1 is wrong.") 
60 
s2=t([0,0,1]) 
61 
self.failUnless(isinstance(s2,numarray.NumArray),"s2 is not a numarray object.") 
62 
self.failUnless(self.__distance(s2,numarray.array([0,0,2]))<self.ABS_TOL,"s2 is wrong.") 
63 
def test_Dilation_0_two(self): 
64 
t=Dilation(2.) 
65 
s0=t([1,0,0]) 
66 
self.failUnless(isinstance(s0,numarray.NumArray),"s0 is not a numarray object.") 
67 
self.failUnless(self.__distance(s0,numarray.array([2,0,0]))<self.ABS_TOL,"s0 is wrong.") 
68 
s1=t([0,1,0]) 
69 
self.failUnless(isinstance(s1,numarray.NumArray),"s1 is not a numarray object.") 
70 
self.failUnless(self.__distance(s1,numarray.array([0,2,0]))<self.ABS_TOL,"s1 is wrong.") 
71 
s2=t([0,0,1]) 
72 
self.failUnless(isinstance(s2,numarray.NumArray),"s2 is not a numarray object.") 
73 
self.failUnless(self.__distance(s2,numarray.array([0,0,2]))<self.ABS_TOL,"s2 is wrong.") 
74 
def test_Dilation_0_half(self): 
75 
t=Dilation(0.5) 
76 
s0=t([1,0,0]) 
77 
self.failUnless(isinstance(s0,numarray.NumArray),"s0 is not a numarray object.") 
78 
self.failUnless(self.__distance(s0,numarray.array([0.5,0,0]))<self.ABS_TOL,"s0 is wrong.") 
79 
s1=t([0,1,0]) 
80 
self.failUnless(isinstance(s1,numarray.NumArray),"s1 is not a numarray object.") 
81 
self.failUnless(self.__distance(s1,numarray.array([0,0.5,0]))<self.ABS_TOL,"s1 is wrong.") 
82 
s2=t([0,0,1]) 
83 
self.failUnless(isinstance(s2,numarray.NumArray),"s2 is not a numarray object.") 
84 
self.failUnless(self.__distance(s2,numarray.array([0,0,0.5]))<self.ABS_TOL,"s2 is wrong.") 
85 
def test_Dilation_x_two(self): 
86 
t=Dilation(2.,[1.,0.,0.]) 
87 
s0=t([1,0,0]) 
88 
self.failUnless(isinstance(s0,numarray.NumArray),"s0 is not a numarray object.") 
89 
self.failUnless(self.__distance(s0,numarray.array([1,0,0]))<self.ABS_TOL,"s0 is wrong.") 
90 
s0_1=t([0,0,0]) 
91 
self.failUnless(isinstance(s0_1,numarray.NumArray),"s0_1 is not a numarray object.") 
92 
self.failUnless(self.__distance(s0_1,numarray.array([1.,0,0]))<self.ABS_TOL,"s0_1 is wrong.") 
93 
s1=t([0,1,0]) 
94 
self.failUnless(isinstance(s1,numarray.NumArray),"s1 is not a numarray object.") 
95 
self.failUnless(self.__distance(s1,numarray.array([1,2,0]))<self.ABS_TOL,"s1 is wrong.") 
96 
s2=t([0,0,1]) 
97 
self.failUnless(isinstance(s2,numarray.NumArray),"s2 is not a numarray object.") 
98 
self.failUnless(self.__distance(s2,numarray.array([1.,0,2]))<self.ABS_TOL,"s2 is wrong.") 
99 
def test_Dilation_x_half(self): 
100 
t=Dilation(0.5,[1.,0.,0.]) 
101 
s0=t([1,0,0]) 
102 
self.failUnless(isinstance(s0,numarray.NumArray),"s0 is not a numarray object.") 
103 
self.failUnless(self.__distance(s0,numarray.array([1.,0,0]))<self.ABS_TOL,"s0 is wrong.") 
104 
s0_1=t([0,0,0]) 
105 
self.failUnless(isinstance(s0_1,numarray.NumArray),"s0_1 is not a numarray object.") 
106 
self.failUnless(self.__distance(s0_1,numarray.array([.5,0,0]))<self.ABS_TOL,"s0_1 is wrong.") 
107 
s1=t([0,1,0]) 
108 
self.failUnless(isinstance(s1,numarray.NumArray),"s1 is not a numarray object.") 
109 
self.failUnless(self.__distance(s1,numarray.array([0.5,0.5,0]))<self.ABS_TOL,"s1 is wrong.") 
110 
s2=t([0,0,1]) 
111 
self.failUnless(isinstance(s2,numarray.NumArray),"s2 is not a numarray object.") 
112 
self.failUnless(self.__distance(s2,numarray.array([0.5,0,0.5]))<self.ABS_TOL,"s2 is wrong.") 
113 
def test_Dilation_y_two(self): 
114 
t=Dilation(2.,[0.,1.,0.]) 
115 
s0=t([1,0,0]) 
116 
self.failUnless(isinstance(s0,numarray.NumArray),"s0 is not a numarray object.") 
117 
self.failUnless(self.__distance(s0,numarray.array([2.,1.,0]))<self.ABS_TOL,"s0 is wrong.") 
118 
s1_1=t([0,0,0]) 
119 
self.failUnless(isinstance(s1_1,numarray.NumArray),"s1_1 is not a numarray object.") 
120 
self.failUnless(self.__distance(s1_1,numarray.array([0.,1.,0]))<self.ABS_TOL,"s1_1 is wrong.") 
121 
s1=t([0,1,0]) 
122 
self.failUnless(isinstance(s1,numarray.NumArray),"s1 is not a numarray object.") 
123 
self.failUnless(self.__distance(s1,numarray.array([0.,1.,0]))<self.ABS_TOL,"s1 is wrong.") 
124 
s2=t([0,0,1]) 
125 
self.failUnless(isinstance(s2,numarray.NumArray),"s2 is not a numarray object.") 
126 
self.failUnless(self.__distance(s2,numarray.array([0.,1.,2]))<self.ABS_TOL,"s2 is wrong.") 
127 
def test_Dilation_y_half(self): 
128 
t=Dilation(0.5,[0.,1.,0.]) 
129 
s0=t([1,0,0]) 
130 
self.failUnless(isinstance(s0,numarray.NumArray),"s0 is not a numarray object.") 
131 
self.failUnless(self.__distance(s0,numarray.array([0.5,0.5,0]))<self.ABS_TOL,"s0 is wrong.") 
132 
s1_1=t([0,0,0]) 
133 
self.failUnless(isinstance(s1_1,numarray.NumArray),"s1_1 is not a numarray object.") 
134 
self.failUnless(self.__distance(s1_1,numarray.array([0,0.5,0]))<self.ABS_TOL,"s1_1 is wrong.") 
135 
s1=t([0,1,0]) 
136 
self.failUnless(isinstance(s1,numarray.NumArray),"s1 is not a numarray object.") 
137 
self.failUnless(self.__distance(s1,numarray.array([0.,1.,0]))<self.ABS_TOL,"s1 is wrong.") 
138 
s2=t([0,0,1]) 
139 
self.failUnless(isinstance(s2,numarray.NumArray),"s2 is not a numarray object.") 
140 
self.failUnless(self.__distance(s2,numarray.array([0.,0.5,0.5]))<self.ABS_TOL,"s2 is wrong.") 
141 
def test_Dilation_z_two(self): 
142 
t=Dilation(2.,[0.,0.,1.]) 
143 
s0=t([1,0,0]) 
144 
self.failUnless(isinstance(s0,numarray.NumArray),"s0 is not a numarray object.") 
145 
self.failUnless(self.__distance(s0,numarray.array([2.,0.,1.]))<self.ABS_TOL,"s0 is wrong.") 
146 
s2_1=t([0,0,0]) 
147 
self.failUnless(isinstance(s2_1,numarray.NumArray),"s2_1 is not a numarray object.") 
148 
self.failUnless(self.__distance(s2_1,numarray.array([0.,0.,1.]))<self.ABS_TOL,"s2_1 is wrong.") 
149 
s1=t([0,1,0]) 
150 
self.failUnless(isinstance(s1,numarray.NumArray),"s1 is not a numarray object.") 
151 
self.failUnless(self.__distance(s1,numarray.array([0.,2.,1.]))<self.ABS_TOL,"s1 is wrong.") 
152 
s2=t([0,0,1]) 
153 
self.failUnless(isinstance(s2,numarray.NumArray),"s2 is not a numarray object.") 
154 
self.failUnless(self.__distance(s2,numarray.array([0.,0.,1.]))<self.ABS_TOL,"s2 is wrong.") 
155 
def test_Dilation_z_half(self): 
156 
t=Dilation(0.5,[0.,0.,1.]) 
157 
s0=t([1,0,0]) 
158 
self.failUnless(isinstance(s0,numarray.NumArray),"s0 is not a numarray object.") 
159 
self.failUnless(self.__distance(s0,numarray.array([0.5,0.,0.5]))<self.ABS_TOL,"s0 is wrong.") 
160 
s2_1=t([0,0,0]) 
161 
self.failUnless(isinstance(s2_1,numarray.NumArray),"s2_1 is not a numarray object.") 
162 
self.failUnless(self.__distance(s2_1,numarray.array([0,0,0.5]))<self.ABS_TOL,"s2_1 is wrong.") 
163 
s1=t([0,1,0]) 
164 
self.failUnless(isinstance(s1,numarray.NumArray),"s1 is not a numarray object.") 
165 
self.failUnless(self.__distance(s1,numarray.array([0.,0.5,0.5]))<self.ABS_TOL,"s1 is wrong.") 
166 
s2=t([0,0,1]) 
167 
self.failUnless(isinstance(s2,numarray.NumArray),"s2 is not a numarray object.") 
168 
self.failUnless(self.__distance(s2,numarray.array([0.,0.,1.]))<self.ABS_TOL,"s2 is wrong.") 
169 
def test_Reflection_x_offset0(self): 
170 
t=Reflection([1.,0.,0.]) 
171 
s0=t([1,0,0]) 
172 
self.failUnless(isinstance(s0,numarray.NumArray),"s0 is not a numarray object.") 
173 
self.failUnless(self.__distance(s0,numarray.array([1.,0,0.]))<self.ABS_TOL,"s0 is wrong.") 
174 
s1=t([0,1,0]) 
175 
self.failUnless(isinstance(s1,numarray.NumArray),"s1 is not a numarray object.") 
176 
self.failUnless(self.__distance(s1,numarray.array([0,1,0]))<self.ABS_TOL,"s1 is wrong.") 
177 
s2=t([0,0,1]) 
178 
self.failUnless(isinstance(s2,numarray.NumArray),"s2 is not a numarray object.") 
179 
self.failUnless(self.__distance(s2,numarray.array([0,0,1]))<self.ABS_TOL,"s2 is wrong.") 
180 
s=t([1,2,3]) 
181 
self.failUnless(isinstance(s,numarray.NumArray),"s is not a numarray object.") 
182 
self.failUnless(self.__distance(s,numarray.array([1.,2,3]))<self.ABS_TOL,"s is wrong.") 
183 
def test_Reflection_x_offset2(self): 
184 
t=Reflection([2.,0.,0.],offset=4) 
185 
s0=t([1,0,0]) 
186 
self.failUnless(isinstance(s0,numarray.NumArray),"s0 is not a numarray object.") 
187 
self.failUnless(self.__distance(s0,numarray.array([3.,0,0.]))<self.ABS_TOL,"s0 is wrong.") 
188 
s1=t([0,1,0]) 
189 
self.failUnless(isinstance(s1,numarray.NumArray),"s1 is not a numarray object.") 
190 
self.failUnless(self.__distance(s1,numarray.array([4,1,0]))<self.ABS_TOL,"s1 is wrong.") 
191 
s2=t([0,0,1]) 
192 
self.failUnless(isinstance(s2,numarray.NumArray),"s2 is not a numarray object.") 
193 
self.failUnless(self.__distance(s2,numarray.array([4,0,1]))<self.ABS_TOL,"s2 is wrong.") 
194 
s=t([1,2,3]) 
195 
self.failUnless(isinstance(s,numarray.NumArray),"s is not a numarray object.") 
196 
self.failUnless(self.__distance(s,numarray.array([3.,2,3]))<self.ABS_TOL,"s is wrong.") 
197 
def test_Reflection_x_offset2_vector(self): 
198 
t=Reflection([1.,0.,0.],offset=[2,0,0]) 
199 
s0=t([1,0,0]) 
200 
self.failUnless(isinstance(s0,numarray.NumArray),"s0 is not a numarray object.") 
201 
self.failUnless(self.__distance(s0,numarray.array([3.,0,0.]))<self.ABS_TOL,"s0 is wrong.") 
202 
s1=t([0,1,0]) 
203 
self.failUnless(isinstance(s1,numarray.NumArray),"s1 is not a numarray object.") 
204 
self.failUnless(self.__distance(s1,numarray.array([4,1,0]))<self.ABS_TOL,"s1 is wrong.") 
205 
s2=t([0,0,1]) 
206 
self.failUnless(isinstance(s2,numarray.NumArray),"s2 is not a numarray object.") 
207 
self.failUnless(self.__distance(s2,numarray.array([4,0,1]))<self.ABS_TOL,"s2 is wrong.") 
208 
s=t([1,2,3]) 
209 
self.failUnless(isinstance(s,numarray.NumArray),"s is not a numarray object.") 
210 
self.failUnless(self.__distance(s,numarray.array([3.,2,3]))<self.ABS_TOL,"s is wrong.") 
211 
if __name__ == '__main__': 
212 
suite = unittest.TestSuite() 
213 
suite.addTest(unittest.makeSuite(Test_PyCAD)) 
214 
s=unittest.TextTestRunner(verbosity=2).run(suite) 
215 
if s.wasSuccessful(): 
216 
sys.exit(0) 
217 
else: 
218 
sys.exit(1) 