1)set break resume
2)expose UnittestCount UnittestAux Unittest
3testsuite "MATCAT"
4testcase "columnSpace"
5M := matrix [[1, 2, 3], [4, 5, 6], [7, 8, 9], [1, 1, 1]];
6testEquals("columnSpace M", "[[1,4,7,1],[2,5,8,1]]")
7testEquals("columnSpace transpose M", "[[1,2,3],[4,5,6]]")
8testEquals("columnSpace [[0,0]]", "[]")
9testEquals("columnSpace(M::RMATRIX(4,3,INT))", _
10           "[[1,4,7,1],[2,5,8,1]]::List DIRPROD(4, INT)")
11testcase "Pfaffian"
12m n == matrix [[(if i = j then 0 _
13                          else if i < j _
14                               then x[i, j] _
15                               else -x[j, i]) for i in 1..n] for j in 1..n]
16testEquals("Pfaffian [[0,1,0,0],[-1,0,0,0],[0,0,0,1],[0,0,-1,0]]", "1")
17testEquals("Pfaffian [[0, u, v, w],[-u, 0, x, y],[-v,-x,0,z],[-w,-y,-z,0]]", _
18           "u*z-v*y+w*x")
19testEquals("Pfaffian m 3", "0")
20testEquals("Pfaffian [[0,0],[0,0]]", "0")
21M := m 6;
22testEquals("(Pfaffian M)^2", "determinant M")
23testLibraryError "Pfaffian [[1,2],[0,0]]"
24testLibraryError "Pfaffian [[1,2,3],[0,0,0]]"
25
26statistics()
27