diff options
author | marcandre <marcandre@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-10-29 02:43:28 +0000 |
---|---|---|
committer | marcandre <marcandre@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-10-29 02:43:28 +0000 |
commit | 764524f65b1b27a0670c81e3605a9ac8e3385040 (patch) | |
tree | 011a4a07ad14dd9a4a23dea7b5f6c8e525c811b3 /test/matrix | |
parent | dc38c877792287240f7ee37d6444da9801a21f57 (diff) | |
download | ruby-764524f65b1b27a0670c81e3605a9ac8e3385040.tar.gz |
* lib/matrix.rb: Add Matrix#adjucate
patch by gogo tanaka [#10056]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48182 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/matrix')
-rw-r--r-- | test/matrix/test_matrix.rb | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/test/matrix/test_matrix.rb b/test/matrix/test_matrix.rb index 79ae9b965b..3fdef3b314 100644 --- a/test/matrix/test_matrix.rb +++ b/test/matrix/test_matrix.rb @@ -14,6 +14,9 @@ class TestMatrix < Test::Unit::TestCase @c1 = Matrix[[Complex(1,2), Complex(0,1), 0], [1, 2, 3]] @e1 = Matrix.empty(2,0) @e2 = Matrix.empty(0,3) + @a3 = Matrix[[4, 1, -3], [0, 3, 7], [11, -4, 2]] + @a5 = Matrix[[2, 0, 9, 3, 9], [8, 7, 0, 1, 9], [7, 5, 6, 6, 5], [0, 7, 8, 3, 0], [7, 8, 2, 3, 1]] + @b3 = Matrix[[-7, 7, -10], [9, -3, -2], [-1, 3, 9]] end def test_matrix @@ -302,6 +305,18 @@ class TestMatrix < Test::Unit::TestCase assert_raise(ExceptionForMatrix::ErrDimensionMismatch) { Matrix[[2,0,1],[0,-2,2]].cofactor(0, 0) } end + def test_adjugate + assert_equal(Matrix.empty, Matrix.empty.adjugate) + assert_equal(Matrix[[1]], Matrix[[5]].adjugate) + assert_equal(Matrix[[9,-6],[-3,7]], Matrix[[7,6],[3,9]].adjugate) + assert_equal(Matrix[[45,3,-7],[6,-1,0],[-7,0,0]], Matrix[[0,0,1],[0,7,6],[1,3,9]].adjugate) + assert_equal(Matrix.identity(5), (@a5.adjugate * @a5) / @a5.det) + assert_equal(Matrix.I(3), Matrix.I(3).adjugate) + assert_equal((@a3 * @b3).adjugate, @b3.adjugate * @a3.adjugate) + assert_equal(4**(@a3.row_count-1) * @a3.adjugate, (4 * @a3).adjugate) + assert_raise(ExceptionForMatrix::ErrDimensionMismatch) { @m1.adjugate } + end + def test_laplace_expansion assert_equal(1, Matrix[[1]].laplace_expansion(row: 0)) assert_equal(45, Matrix[[7,6], [3,9]].laplace_expansion(row: 1)) |