diff yetilab/matrix/test/test_matrix.yeti @ 261:53ff481f1a41

Implement and test sparse resizedTo; some tidying
author Chris Cannam
date Wed, 22 May 2013 15:02:17 +0100
parents de770971a628
children 197d23954a4e
line wrap: on
line diff
--- a/yetilab/matrix/test/test_matrix.yeti	Wed May 22 13:54:15 2013 +0100
+++ b/yetilab/matrix/test/test_matrix.yeti	Wed May 22 15:02:17 2013 +0100
@@ -224,7 +224,7 @@
     t = mat.newSparseMatrix (ColumnMajor ()) { rows = 2, columns = 3 } [
         { i = 0, j = 1, v = 7 },
         { i = 1, j = 0, v = 5 },
-        { i = 1, j = 1, v = 6 },
+        { i = 1, j = 1, v = -4 }, // NB this means [1,1] -> 0, sparse zero
     ];
     tot = mat.sum s t;
     mat.isSparse? tot and
@@ -237,8 +237,8 @@
                { i = 0, j = 1, v = 7 },
                { i = 0, j = 2, v = 2 },
                { i = 1, j = 0, v = 5 },
-               { i = 1, j = 1, v = 10 },
-            ])
+            ]) and
+        compare (mat.density tot) (4/6)
 ),
 
 "difference-\(name)": \(
@@ -351,7 +351,10 @@
         compareMatrices
            (mat.resizedTo { rows = 2, columns = 3 }
                (mat.zeroSizeMatrix ()))
-           (newMatrix (RowMajor ()) [[0,0,0],[0,0,0]])
+           (newMatrix (RowMajor ()) [[0,0,0],[0,0,0]]) and
+        mat.isSparse?
+           (mat.resizedTo { rows = 1, columns = 1 }
+               (mat.toSparse (newMatrix (ColumnMajor ()) [[1,4],[2,5],[3,6]])))
 ),
 
 "zeroSizeMatrix-\(name)": \(
@@ -488,10 +491,17 @@
         { i = 0, j = 2, v = 0 },
         { i = 1, j = 1, v = 4 },
     ];
+    // Any out-of-range or non-integer i, j should be ignored too
+    u = mat.newSparseMatrix (ColumnMajor ()) { rows = 2, columns = 3 } [
+        { i = -1, j = 0, v = 1 },
+        { i = 0, j = 4, v = 3 },
+        { i = 1, j = 1.5, v = 4 },
+    ];
     compare (mat.density s) (3/6) and
         compare (mat.density t) (2/6) and
         compareMatrices s (newMatrix (RowMajor ()) [[1,0,2],[0,4,0]]) and
-        compareMatrices t (newMatrix (RowMajor ()) [[1,0,0],[0,4,0]])
+        compareMatrices t (newMatrix (RowMajor ()) [[1,0,0],[0,4,0]]) and
+        compareMatrices u (newMatrix (RowMajor ()) [[0,0,0],[0,0,0]])
 ),
 
 "enumerate-\(name)": \(