2 (:use clojure.contrib.test-is))
9 (mt/swap 0 3 '(a b c d))))
11 (mt/swap -3 0 '(a b c d))))
13 (mt/swap 1 1 '(a b c d)))))
15 (deftest test-search-non-zero
19 (is (= (mt/search-non-zero m 0)
21 (is (= (mt/search-non-zero m 2)
28 (is (= (mt/sweep1 m 0)
32 (is (= (mt/sweep1 m 1)
37 (deftest test-lin-solve
41 (is (= (mt/lin-solve m)
45 [[2 2] [1 1] [0 0]]]))))
48 (is (= (mt/m*v [[1 2] [3 4]] [5 6])
50 (is (= (mt/m*v [[1 0] [0 1]] [3 4])
52 (is (= (mt/m*v [[1 0 2] [2 1 3]] [1 1 2])
56 (is (= (mt/s*m 2 [[1 2] [3 4]])
60 (is (= (mt/m-m [[1 2] [3 4]] [[5 6] [7 8]])
62 (is (= (mt/m-m [[1 0] [0 1]] [[1 2] [3 4]])
66 (is (= (mt/i-mat 0) []))
67 (is (= (mt/i-mat 1) [[1]]))
68 (is (= (mt/i-mat 2) [[1 0] [0 1]]))
75 (is (= (mt/tref '[up 0 1 2])
78 (is (= (mt/tref '[up 0 [up 1 2] [up 3 4]]
81 (is (= (mt/tref '[up 0 [up 1 2] [up 3 4]]
86 (is (= (mt/t+2 1 2) 3))
87 (is (= (mt/t+2 '[up 1 2 3]
91 (is (= (mt/t+2 '[down 0 [up 1 2] [down 3 4]]
92 '[down 5 [up 6 7] [down 8 9]])
93 '[down 5 [up 7 9] [down 11 13]]
95 (is (= (mt/t+2 '[up 1 2] '[down 3 4])
100 (is (= (mt/t+ '[down 0 1 2])
103 (is (= (mt/t+ 1 2) 3))
104 (is (= (mt/t+ '[up 1 2 3]
108 (is (= (mt/t+ '[up 1 2 3]
115 (is (= (mt/t-2 1 3) -2))
116 (is (= (mt/t-2 '[up 1 2 3]
120 (is (= (mt/t-2 '[down 0 [up 1 2] [down 3 4]]
121 '[down -1 [up -3 -5] [down -7 -9]])
122 '[down 1 [up 4 7] [down 10 13]]
124 (is (= (mt/t-2 '[up 1 2] '[down 3 4])
129 (is (= (mt/t- '[down 3 [up 1 2]])
130 '[down -3 [up -1 -2]]
132 (is (= (mt/t- 1 -3) 4))
133 (is (= (mt/t- '[up 1 2 3]
137 (is (= (mt/t- '[up 1 2 3]
144 (is (= (mt/t*2 '[up 1 2] '[down 3 4])
146 (is (= (mt/t*2 2 '[up 2 3])
149 (is (= (mt/t*2 '[down 3 4] 5)
152 (is (= (mt/t*2 '[up 1 2]
153 '[up [down 2 3] [down 3 4]])
158 (is (= (mt/t* '[up 2 3])
161 (is (= (mt/t* 2 '[up 2 3])
166 '[up [down 2 3] [down 3 4]])
171 (binding [mt/*dxi* 0.5]
172 (is (= (mt/jaco (fn [[x y]]