mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Move spec/rubyspec to spec/ruby for consistency
* Other ruby implementations use the spec/ruby directory. [Misc #13792] [ruby-core:82287] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59979 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
75bfc6440d
commit
1d15d5f080
4370 changed files with 0 additions and 0 deletions
|
@ -0,0 +1,9 @@
|
|||
require File.expand_path('../../../../spec_helper', __FILE__)
|
||||
require 'matrix'
|
||||
|
||||
describe "Matrix::EigenvalueDecomposition#eigenvalue_matrix" do
|
||||
it "returns a diagonal matrix with the eigenvalues on the diagonal" do
|
||||
Matrix[[14, 16], [-6, -6]].eigensystem.eigenvalue_matrix.should == Matrix[[6, 0],[0, 2]]
|
||||
Matrix[[1, 1], [-1, 1]].eigensystem.eigenvalue_matrix.should == Matrix[[Complex(1,1), 0],[0, Complex(1,-1)]]
|
||||
end
|
||||
end
|
|
@ -0,0 +1,22 @@
|
|||
require File.expand_path('../../../../spec_helper', __FILE__)
|
||||
require 'matrix'
|
||||
|
||||
describe "Matrix::EigenvalueDecomposition#eigenvalues" do
|
||||
it "returns an array of complex eigenvalues for a rotation matrix" do
|
||||
Matrix[[ 1, 1],
|
||||
[-1, 1]].eigensystem.eigenvalues.sort_by{|v| v.imag}.should ==
|
||||
[ Complex(1, -1), Complex(1, 1)]
|
||||
end
|
||||
|
||||
it "returns an array of real eigenvalues for a symetric matrix" do
|
||||
Matrix[[1, 2],
|
||||
[2, 1]].eigensystem.eigenvalues.sort.map!{|x| x.round(10)}.should ==
|
||||
[ -1, 3 ]
|
||||
end
|
||||
|
||||
it "returns an array of real eigenvalues for a matrix" do
|
||||
Matrix[[14, 16],
|
||||
[-6, -6]].eigensystem.eigenvalues.sort.map!{|x| x.round(10)}.should ==
|
||||
[ 2, 6 ]
|
||||
end
|
||||
end
|
|
@ -0,0 +1,20 @@
|
|||
require File.expand_path('../../../../spec_helper', __FILE__)
|
||||
require 'matrix'
|
||||
|
||||
describe "Matrix::EigenvalueDecomposition#eigenvector_matrix" do
|
||||
it "returns a complex eigenvector matrix given a rotation matrix" do
|
||||
# Fix me: should test for linearity, not for equality
|
||||
Matrix[[ 1, 1],
|
||||
[-1, 1]].eigensystem.eigenvector_matrix.should ==
|
||||
Matrix[[1, 1],
|
||||
[Complex(0, 1), Complex(0, -1)]]
|
||||
end
|
||||
|
||||
it "returns an real eigenvector matrix for a symetric matrix" do
|
||||
# Fix me: should test for linearity, not for equality
|
||||
Matrix[[1, 2],
|
||||
[2, 1]].eigensystem.eigenvector_matrix.should ==
|
||||
Matrix[[0.7071067811865475, 0.7071067811865475],
|
||||
[-0.7071067811865475, 0.7071067811865475]]
|
||||
end
|
||||
end
|
|
@ -0,0 +1,22 @@
|
|||
require File.expand_path('../../../../spec_helper', __FILE__)
|
||||
require 'matrix'
|
||||
|
||||
describe "Matrix::EigenvalueDecomposition#eigenvectors" do
|
||||
it "returns an array of complex eigenvectors for a rotation matrix" do
|
||||
# Fix me: should test for linearity, not for equality
|
||||
Matrix[[ 1, 1],
|
||||
[-1, 1]].eigensystem.eigenvectors.should ==
|
||||
[ Vector[1, Complex(0, 1)],
|
||||
Vector[1, Complex(0, -1)]
|
||||
]
|
||||
end
|
||||
|
||||
it "returns an array of real eigenvectors for a symetric matrix" do
|
||||
# Fix me: should test for linearity, not for equality
|
||||
Matrix[[1, 2],
|
||||
[2, 1]].eigensystem.eigenvectors.should ==
|
||||
[ Vector[0.7071067811865475, -0.7071067811865475],
|
||||
Vector[0.7071067811865475, 0.7071067811865475]
|
||||
]
|
||||
end
|
||||
end
|
|
@ -0,0 +1,24 @@
|
|||
require File.expand_path('../../../../spec_helper', __FILE__)
|
||||
require 'matrix'
|
||||
|
||||
describe "Matrix::EigenvalueDecomposition#initialize" do
|
||||
it "raises an error if argument is not a matrix" do
|
||||
lambda {
|
||||
Matrix::EigenvalueDecomposition.new([[]])
|
||||
}.should raise_error(TypeError)
|
||||
lambda {
|
||||
Matrix::EigenvalueDecomposition.new(42)
|
||||
}.should raise_error(TypeError)
|
||||
end
|
||||
|
||||
it "raises an error if matrix is not square" do
|
||||
lambda {
|
||||
Matrix::EigenvalueDecomposition.new(Matrix[[1, 2]])
|
||||
}.should raise_error(Matrix::ErrDimensionMismatch)
|
||||
end
|
||||
|
||||
it "never hangs" do
|
||||
m = Matrix[ [0,0,0,0,0], [0,0,0,0,1], [0,0,0,1,0], [1,1,0,0,1], [1,0,1,0,1] ]
|
||||
Matrix::EigenvalueDecomposition.new(m).should_not == "infinite loop"
|
||||
end
|
||||
end
|
|
@ -0,0 +1,18 @@
|
|||
require File.expand_path('../../../../spec_helper', __FILE__)
|
||||
require 'matrix'
|
||||
|
||||
describe "Matrix::EigenvalueDecomposition#to_a" do
|
||||
before :each do
|
||||
@a = Matrix[[14, 16], [-6, -6]]
|
||||
@e = Matrix::EigenvalueDecomposition.new(@a)
|
||||
end
|
||||
|
||||
it "returns an array of with [V, D, V.inv]" do
|
||||
@e.to_a.should == [@e.v, @e.d, @e.v_inv]
|
||||
end
|
||||
|
||||
it "returns a factorization" do
|
||||
v, d, v_inv = @e.to_a
|
||||
(v * d * v_inv).map{|e| e.round(10)}.should == @a
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue