22
33from functools import reduce
44from itertools import product
5- from sympy import Symbol , Matrix , solve , solve_poly_system , cos , sin
5+ from sympy import S , Symbol , Matrix , solve , solve_poly_system , cos , sin
66from galgebra .ga import Ga
77from galgebra .mv import Mv
88
@@ -20,10 +20,10 @@ def test2_3_2(self):
2020 c = GA .mv ('c' , 'vector' )
2121 alpha = Symbol ('alpha' , real = True )
2222
23- self .assertEquals (a ^ b , - b ^ a )
24- self .assertEquals (a ^ (alpha * b ), alpha * (a ^ b ))
25- self .assertEquals (GA .mv (alpha , 'scalar' ) ^ b , alpha * b )
26- self .assertEquals (a ^ (b + c ), (a ^ b ) + (a ^ c ))
23+ self .assertEqual (a ^ b , - b ^ a )
24+ self .assertEqual (a ^ (alpha * b ), alpha * (a ^ b ))
25+ self .assertEqual (GA .mv (alpha , 'scalar' ) ^ b , alpha * b )
26+ self .assertEqual (a ^ (b + c ), (a ^ b ) + (a ^ c ))
2727
2828 def test_2_4_2 (self ):
2929 """
@@ -45,16 +45,16 @@ def test_2_4_2(self):
4545 b = GA .mv ((b_1 , b_2 , b_3 ), 'vector' )
4646 c = GA .mv ((c_1 , c_2 , c_3 ), 'vector' )
4747
48- self .assertEquals (a ^ b ^ c , a ^ (b ^ c ))
49- self .assertEquals (a ^ b ^ c , (a ^ b ) ^ c )
48+ self .assertEqual (a ^ b ^ c , a ^ (b ^ c ))
49+ self .assertEqual (a ^ b ^ c , (a ^ b ) ^ c )
5050
5151 m = Matrix ([
5252 [a_1 , b_1 , c_1 ],
5353 [a_2 , b_2 , c_2 ],
5454 [a_3 , b_3 , c_3 ]
5555 ])
5656
57- self .assertEquals (a ^ b ^ c , m .det () * (e_1 ^ e_2 ^ e_3 ))
57+ self .assertEqual (a ^ b ^ c , m .det () * (e_1 ^ e_2 ^ e_3 ))
5858
5959 def test2_9_1 (self ):
6060 """
@@ -66,20 +66,20 @@ def test2_9_1(self):
6666 # Check for k in [0, R.n]
6767 for k in range (GA .n + 1 ):
6868 Ak = GA .mv ('A' , 'blade' , k )
69- self .assertEquals (Ak .pure_grade (), k )
69+ self .assertEqual (Ak .pure_grade (), k )
7070 grades = GA .grade_decomposition (Ak )
71- self .assertEquals (len (grades ), 1 )
72- self .assertEquals (list (grades .keys ())[0 ], k )
71+ self .assertEqual (len (grades ), 1 )
72+ self .assertEqual (list (grades .keys ())[0 ], k )
7373
7474 # Check for k and l in [0, R.n]
7575 for k , l in product (range (GA .n + 1 ), range (GA .n + 1 )):
7676 Ak = GA .mv ('A' , 'blade' , k )
7777 Bl = GA .mv ('B' , 'blade' , l )
7878 C = Ak ^ Bl
79- self .assertEquals (C .pure_grade (), 0 if C == 0 else k + l )
79+ self .assertEqual (C .pure_grade (), 0 if C == 0 else k + l )
8080 grades = GA .grade_decomposition (C )
81- self .assertEquals (len (grades ), 1 )
82- self .assertEquals (list (grades .keys ())[0 ], 0 if C == 0 else k + l )
81+ self .assertEqual (len (grades ), 1 )
82+ self .assertEqual (list (grades .keys ())[0 ], 0 if C == 0 else k + l )
8383
8484 def test2_9_5 (self ):
8585 """
@@ -91,22 +91,22 @@ def test2_9_5(self):
9191 a = [GA .mv ('a%d' % i , 'vector' ) for i in range (k )]
9292 A = reduce (Mv .__xor__ , a )
9393 A_rev = reduce (Mv .__xor__ , reversed (a ))
94- self .assertEquals (A_rev , A .rev ())
95- self .assertEquals (A_rev , ((- 1 ) ** ((k * (k - 1 )) / 2 )) * A )
94+ self .assertEqual (A_rev , A .rev ())
95+ self .assertEqual (A_rev , ((- 1 ) ** ((k * (k - 1 )) / 2 )) * A )
9696
9797 def test2_12_1_1 (self ):
9898 """
9999 Compute the outer products of the following 3-space expressions,
100100 giving the result relative to the basis {1, e_1, e_2, e_3, e_1^e_2, e_1^e_3, e_2^e_3, e_1^e_2^e_3}.
101101 """
102102 GA , e_1 , e_2 , e_3 = Ga .build ('e*1|2|3' )
103- self .assertTrue ((e_1 + e_2 ) ^ (e_1 + e_3 ) == (- e_1 ^ e_2 ) + (e_1 ^ e_3 ) + (e_2 ^ e_3 ))
104- self .assertTrue ((e_1 + e_2 + e_3 ) ^ (2 * e_1 ) == - 2 * (e_1 ^ e_2 ) - 2 * (e_1 ^ e_3 ))
105- self .assertTrue ((e_1 - e_2 ) ^ (e_1 - e_3 ) == (e_1 ^ e_2 ) - (e_1 ^ e_3 ) + (e_2 ^ e_3 ))
106- self .assertTrue (
107- (e_1 + e_2 ) ^ (0.5 * e_1 + 2 * e_2 + 3 * e_3 ) == 1.5 * (e_1 ^ e_2 ) + 3 * (e_1 ^ e_3 ) + 3 * (e_2 ^ e_3 ))
108- self .assertTrue ((e_1 ^ e_2 ) ^ (e_1 + e_3 ) == (e_1 ^ e_2 ^ e_3 ))
109- self .assertTrue ((e_1 + e_2 ) ^ ((e_1 ^ e_2 ) + (e_2 ^ e_3 )) == (e_1 ^ e_2 ^ e_3 ))
103+ self .assertEqual ((e_1 + e_2 ) ^ (e_1 + e_3 ), (- e_1 ^ e_2 ) + (e_1 ^ e_3 ) + (e_2 ^ e_3 ))
104+ self .assertEqual ((e_1 + e_2 + e_3 ) ^ (2 * e_1 ), - 2 * (e_1 ^ e_2 ) - 2 * (e_1 ^ e_3 ))
105+ self .assertEqual ((e_1 - e_2 ) ^ (e_1 - e_3 ), (e_1 ^ e_2 ) - (e_1 ^ e_3 ) + (e_2 ^ e_3 ))
106+ self .assertEqual (
107+ (e_1 + e_2 ) ^ (0.5 * e_1 + 2 * e_2 + 3 * e_3 ), 1.5 * (e_1 ^ e_2 ) + 3 * (e_1 ^ e_3 ) + 3 * (e_2 ^ e_3 ))
108+ self .assertEqual ((e_1 ^ e_2 ) ^ (e_1 + e_3 ), (e_1 ^ e_2 ^ e_3 ))
109+ self .assertEqual ((e_1 + e_2 ) ^ ((e_1 ^ e_2 ) + (e_2 ^ e_3 )), (e_1 ^ e_2 ^ e_3 ))
110110
111111 def test2_12_1_2 (self ):
112112 """
@@ -115,10 +115,10 @@ def test2_12_1_2(self):
115115 """
116116 GA , e_1 , e_2 , e_3 = Ga .build ('e*1|2|3' )
117117 B = e_1 ^ (e_2 - e_3 )
118- self .assertTrue (e_1 ^ B == 0 )
119- self .assertFalse ((e_1 + e_2 ) ^ B == 0 )
120- self .assertFalse ((e_1 + e_2 + e_3 ) ^ B == 0 )
121- self .assertTrue ((2 * e_1 - e_2 + e_3 ) ^ B == 0 )
118+ self .assertEqual (e_1 ^ B , 0 )
119+ self .assertNotEqual ((e_1 + e_2 ) ^ B , 0 )
120+ self .assertNotEqual ((e_1 + e_2 + e_3 ) ^ B , 0 )
121+ self .assertEqual ((2 * e_1 - e_2 + e_3 ) ^ B , 0 )
122122
123123 def test2_12_1_3 (self ):
124124 """
@@ -129,7 +129,7 @@ def test2_12_1_3(self):
129129 a = e_1 + 2 * e_2
130130 b = - e_1 - e_2
131131 B = a ^ b
132- self .assertTrue ( B == 1 * (e_1 ^ e_2 ))
132+ self .assertEqual ( B , 1 * (e_1 ^ e_2 ))
133133
134134 def test2_12_1_4 (self ):
135135 """
@@ -150,12 +150,12 @@ def test2_12_1_4(self):
150150
151151 # Solve the linear system
152152 R = solve ([L .obj , M .obj ], a , b , dict = True ) # TODO: fix this...
153- self .assertTrue (len (R ), 1 )
153+ self .assertEqual (len (R ), 1 )
154154
155155 # Replace symbols
156156 x = x .subs (R [0 ])
157157
158- self .assertEquals (x , e_1 + 2 * e_2 )
158+ self .assertEqual (x , e_1 + 2 * e_2 )
159159
160160 def test2_12_1_5 (self ):
161161 """
@@ -170,7 +170,7 @@ def test2_12_1_5(self):
170170 for k , l in product (range (GA .n + 1 ), range (GA .n + 1 )):
171171 C += A .get_grade (k ) ^ B .get_grade (l )
172172
173- self .assertTrue ( C == (2 * e_1 + 3 * (e_3 ^ e_1 ) + 2 * (e_2 ^ e_3 )))
173+ self .assertEqual ( C , (2 * e_1 + 3 * (e_3 ^ e_1 ) + 2 * (e_2 ^ e_3 )))
174174
175175 def test2_12_2_1 (self ):
176176 """
@@ -187,17 +187,17 @@ def test2_12_2_1(self):
187187 x = a * e_1
188188 y = b * (cos (t ) * e_1 + sin (t ) * e_2 )
189189 B = x ^ y
190- self .assertTrue ( B == (a * b * sin (t ) * (e_1 ^ e_2 )))
190+ self .assertEqual ( B , (a * b * sin (t ) * (e_1 ^ e_2 )))
191191
192192 # Retrieve the parallelogram area from the 2-vector
193193 area = B .norm ()
194- self .assertTrue (area == (a * b * sin (t )))
194+ self .assertEqual (area , (a * b * sin (t )))
195195
196196 # Compute the parallelogram area using the determinant
197197 x = [a , 0 ]
198198 y = [b * cos (t ), b * sin (t )]
199199 area = Matrix ([x , y ]).det ()
200- self .assertTrue (area == (a * b * sin (t )))
200+ self .assertEqual (area , (a * b * sin (t )))
201201
202202 def test2_12_2_2 (self ):
203203 """
@@ -217,7 +217,7 @@ def test2_12_2_2(self):
217217
218218 cross = x_1 * y_2 - y_1 * x_2
219219
220- self .assertTrue (cross == (a * b * sin (t )))
220+ self .assertEqual (cross , (a * b * sin (t )))
221221
222222 def test2_12_2_4 (self ):
223223 """
@@ -244,19 +244,19 @@ def test2_12_2_4(self):
244244 x = x_1 * a + x_2 * b + x_3 * c
245245
246246 # Solve x_1
247- self .assertTrue ((x ^ a ) == (x_2 * (b ^ a ) + x_3 * (c ^ a )))
248- self .assertTrue ((x ^ a ^ b ) == x_3 * (c ^ a ^ b ))
249- self .assertTrue ((x ^ a ^ b ) * (c ^ a ^ b ).inv () == GA .mv (x_3 , 'scalar' ))
247+ self .assertEqual ((x ^ a ), (x_2 * (b ^ a ) + x_3 * (c ^ a )))
248+ self .assertEqual ((x ^ a ^ b ), x_3 * (c ^ a ^ b ))
249+ self .assertEqual ((x ^ a ^ b ) * (c ^ a ^ b ).inv (), GA .mv (x_3 , 'scalar' ))
250250
251251 # Solve x_2
252- self .assertTrue ((x ^ b ) == (x_1 * (a ^ b ) + x_3 * (c ^ b )))
253- self .assertTrue ((x ^ b ^ c ) == x_1 * (a ^ b ^ c ))
254- self .assertTrue ((x ^ b ^ c ) * (a ^ b ^ c ).inv () == GA .mv (x_1 , 'scalar' ))
252+ self .assertEqual ((x ^ b ), (x_1 * (a ^ b ) + x_3 * (c ^ b )))
253+ self .assertEqual ((x ^ b ^ c ), x_1 * (a ^ b ^ c ))
254+ self .assertEqual ((x ^ b ^ c ) * (a ^ b ^ c ).inv (), GA .mv (x_1 , 'scalar' ))
255255
256256 # Solve x_3
257- self .assertTrue ((x ^ c ) == (x_1 * (a ^ c ) + x_2 * (b ^ c )))
258- self .assertTrue ((x ^ c ^ a ) == x_2 * (b ^ c ^ a ))
259- self .assertTrue ((x ^ c ^ a ) * (b ^ c ^ a ).inv () == GA .mv (x_2 , 'scalar' ))
257+ self .assertEqual ((x ^ c ), (x_1 * (a ^ c ) + x_2 * (b ^ c )))
258+ self .assertEqual ((x ^ c ^ a ), x_2 * (b ^ c ^ a ))
259+ self .assertEqual ((x ^ c ^ a ) * (b ^ c ^ a ).inv (), GA .mv (x_2 , 'scalar' ))
260260
261261 def test2_12_2_5 (self ):
262262 """
@@ -331,10 +331,10 @@ def test2_12_2_6(self):
331331 result = solve_poly_system (system , unknowns )
332332 result = result [0 ]
333333
334- self .assertTrue (result [0 ] == 0 )
335- self .assertTrue (result [1 ] == 0 )
336- self .assertTrue (result [2 ] == 0 )
337- self .assertTrue (result [3 ] == 0 )
334+ self .assertEqual (result [0 ], S . Zero )
335+ self .assertEqual (result [1 ], S . Zero )
336+ self .assertEqual (result [2 ], S . Zero )
337+ self .assertEqual (result [3 ], S . Zero )
338338
339339 def test2_12_2_9 (self ):
340340 """
@@ -344,4 +344,4 @@ def test2_12_2_9(self):
344344 for k , l in product (range (GA .n + 1 ), range (GA .n + 1 )):
345345 Ak = GA .mv ('A' , 'blade' , k )
346346 Bl = GA .mv ('B' , 'blade' , l )
347- self .assertEquals (Ak ^ Bl , (- 1 ) ** (k * l ) * (Bl ^ Ak ))
347+ self .assertEqual (Ak ^ Bl , (- 1 ) ** (k * l ) * (Bl ^ Ak ))
0 commit comments