Mercurial > hg > may
changeset 202:9bc6070c041c
Fix to resize from zero-size matrix, and test for it
author | Chris Cannam |
---|---|
date | Mon, 06 May 2013 18:22:41 +0100 |
parents | 71a09107ee3e |
children | ee3fbcc779d9 |
files | yetilab/matrix/matrix.yeti yetilab/matrix/test/test_matrix.yeti |
diffstat | 2 files changed, 9 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/yetilab/matrix/matrix.yeti Mon May 06 17:57:43 2013 +0100 +++ b/yetilab/matrix/matrix.yeti Mon May 06 18:22:41 2013 +0100 @@ -234,8 +234,10 @@ fi; resizedTo newsize m = - if newsize == m.size then + (if newsize == m.size then m + elif m.size.rows == 0 or m.size.columns == 0 then + zeroMatrixWithTypeOf m newsize; else growrows = newsize.rows - m.size.rows; growcols = newsize.columns - m.size.columns; @@ -258,7 +260,7 @@ [m, zeroMatrixWithTypeOf m (m.size with { columns = growcols })] fi fi - fi; + fi); { generate is (number -> number -> number) -> { .rows is number, .columns is number } -> matrix,
--- a/yetilab/matrix/test/test_matrix.yeti Mon May 06 17:57:43 2013 +0100 +++ b/yetilab/matrix/test/test_matrix.yeti Mon May 06 18:22:41 2013 +0100 @@ -255,7 +255,11 @@ compareMatrices (mat.resizedTo { rows = 1, columns = 1 } (newMatrix (ColumnMajor ()) [[1,4],[2,5],[3,6]])) - (newMatrix (RowMajor ()) [[1]]) + (newMatrix (RowMajor ()) [[1]]) and + compareMatrices + (mat.resizedTo { rows = 2, columns = 3 } + (mat.zeroSizeMatrix ())) + (newMatrix (RowMajor ()) [[0,0,0],[0,0,0]]) ), "zeroSizeMatrix-\(name)": \(