diff options
author | marcandre <marcandre@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-10-07 19:30:48 +0000 |
---|---|---|
committer | marcandre <marcandre@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-10-07 19:30:48 +0000 |
commit | 56d5728589f9cfea6e1d923d5faab8f1b982d29d (patch) | |
tree | 67dec8bb485fe4cc060ec59dfd7116caa205cac2 /test/matrix | |
parent | 19a1257d6c941fec8526a67037d21c66c0c3d811 (diff) | |
download | ruby-56d5728589f9cfea6e1d923d5faab8f1b982d29d.tar.gz |
* lib/matrix.rb: Add Matrix#laplace_expansion.
patch by gogo tanaka [#10073]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47835 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/matrix')
-rw-r--r-- | test/matrix/test_matrix.rb | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/test/matrix/test_matrix.rb b/test/matrix/test_matrix.rb index eb62a326b6..2d99cead42 100644 --- a/test/matrix/test_matrix.rb +++ b/test/matrix/test_matrix.rb @@ -293,6 +293,24 @@ class TestMatrix < Test::Unit::TestCase assert_raise(ExceptionForMatrix::ErrDimensionMismatch) { Matrix[[2,0,1],[0,-2,2]].cofactor(0, 0) } 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)) + assert_equal(0, Matrix[[0,0],[0,0]].laplace_expansion(column: 0)) + assert_equal(-7, Matrix[[0,0,1],[0,7,6],[1,3,9]].laplace_expansion(column: 2)) + + assert_equal(Vector[3, -2], Matrix[[Vector[1, 0], Vector[0, 1]], [2, 3]].laplace_expansion(row: 0)) + + assert_raise(ExceptionForMatrix::ErrDimensionMismatch) { @m1.laplace_expansion(row: 1) } + assert_raise(ArgumentError) { Matrix[[7,6], [3,9]].laplace_expansion() } + assert_raise(ArgumentError) { Matrix[[7,6], [3,9]].laplace_expansion(foo: 1) } + assert_raise(ArgumentError) { Matrix[[7,6], [3,9]].laplace_expansion(row: 1, column: 1) } + assert_raise(ArgumentError) { Matrix[[7,6], [3,9]].laplace_expansion(row: 2) } + assert_raise(ArgumentError) { Matrix[[0,0,1],[0,7,6],[1,3,9]].laplace_expansion(column: -1) } + + assert_raise(RuntimeError) { Matrix.empty(0, 0).laplace_expansion(row: 0) } + end + def test_regular? assert(Matrix[[1, 0], [0, 1]].regular?) assert(Matrix[[1, 0, 0], [0, 1, 0], [0, 0, 1]].regular?) |