Skip to content

Commit ff3bd65

Browse files
committed
Improved two tests and removed dependency on PMPolynomial
1 parent fc02c3f commit ff3bd65

File tree

1 file changed

+31
-18
lines changed

1 file changed

+31
-18
lines changed

src/Math-Tests-Matrix/PMMatrixTest.class.st

Lines changed: 31 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -157,34 +157,47 @@ PMMatrixTest >> testDimension [
157157
PMMatrixTest >> testEigenvalues [
158158
"Code Example 8.15"
159159

160-
| m charPol roots eigenvalues finder |
161-
m := PMMatrix rows: #(#(3 -2 0) #(-2 7 1) #(0 1 5)).
162-
charPol := PMPolynomial coefficients: #(82 -66 15 -1).
163-
roots := charPol roots asSortedCollection asArray reverse.
164-
finder := PMJacobiTransformation matrix: m.
160+
| matrix expectedEigenvalues eigenvalues finder |
161+
162+
matrix := PMMatrix rows: #(
163+
(3 -2 0)
164+
(-2 7 1)
165+
(0 1 5)).
166+
167+
expectedEigenvalues := #(8.105482616526306 4.776537928330764 2.1179794551429305).
168+
169+
finder := PMJacobiTransformation matrix: matrix.
165170
finder desiredPrecision: 1.0e-09.
171+
166172
eigenvalues := finder evaluate.
167-
self assert: eigenvalues size equals: 3.
168-
self assert: ((roots at: 1) - (eigenvalues at: 1)) abs < 1.0e-09.
169-
self assert: ((roots at: 2) - (eigenvalues at: 2)) abs < 1.0e-09.
170-
self assert: ((roots at: 3) - (eigenvalues at: 3)) abs < 1.0e-09
173+
174+
eigenvalues with: expectedEigenvalues do: [ :actual :expected |
175+
self assert: actual closeTo: expected ].
171176
]
172177

173178
{ #category : #'linear algebra' }
174179
PMMatrixTest >> testEigenvaluesLargest [
175180
"Code Example 8.13"
176181

177-
| m charPol roots eigenvalue finder |
178-
m := PMMatrix rows: #(#(3 -2 0) #(-2 7 1) #(0 1 5)).
179-
charPol := PMPolynomial coefficients: #(82 -66 15 -1).
180-
roots := charPol roots asSortedCollection asArray reverse.
181-
finder := PMLargestEigenValueFinder matrix: m.
182+
| matrix expectedEigenvalues firstEigenvalue secondEigenvalue finder |
183+
184+
matrix := PMMatrix rows: #(
185+
(3 -2 0)
186+
(-2 7 1)
187+
(0 1 5)).
188+
189+
expectedEigenvalues := #(8.105482616526306 4.776537928330764 2.1179794551429305).
190+
191+
finder := PMLargestEigenValueFinder matrix: matrix.
182192
finder desiredPrecision: 1.0e-08.
183-
eigenvalue := finder evaluate.
184-
self assert: ((roots at: 1) - eigenvalue) abs < 1.0e-08.
193+
194+
firstEigenvalue := finder evaluate.
195+
185196
finder := finder nextLargestEigenValueFinder.
186-
eigenvalue := finder evaluate.
187-
self assert: ((roots at: 2) - eigenvalue) abs < 1.0e-08
197+
secondEigenvalue := finder evaluate.
198+
199+
self assert: firstEigenvalue closeTo: expectedEigenvalues first.
200+
self assert: secondEigenvalue closeTo: expectedEigenvalues second.
188201
]
189202

190203
{ #category : #tests }

0 commit comments

Comments
 (0)