Field testing: http://codeforces.com/gym/100962 ABBA */
| 1 | /* Field testing: http://codeforces.com/gym/100962 ABBA */ |
| 2 | void test() { |
| 3 | double det; |
| 4 | int rank; |
| 5 | |
| 6 | matrix<int> A(2, 2); |
| 7 | assert_equal(0, A(0, 0)); |
| 8 | assert_equal(0, A(1, 0)); |
| 9 | assert_equal(0, A(0, 1)); |
| 10 | assert_equal(0, A(1, 1)); |
| 11 | |
| 12 | A(0, 0) = A(0, 1) = A(1, 0) = 1; |
| 13 | assert_equal(1, A(0, 0)); |
| 14 | assert_equal(1, A(1, 0)); |
| 15 | assert_equal(1, A(0, 1)); |
| 16 | assert_equal(0, A(1, 1)); |
| 17 | |
| 18 | A = A.pow(20); |
| 19 | assert_equal(10946, A(0, 0)); |
| 20 | assert_equal(6765, A(1, 0)); |
| 21 | assert_equal(6765, A(0, 1)); |
| 22 | assert_equal(4181, A(1, 1)); |
| 23 | |
| 24 | matrix<int> A2(A); |
| 25 | assert_equal(10946, A2(0, 0)); |
| 26 | assert_equal(6765, A2(1, 0)); |
| 27 | assert_equal(6765, A2(0, 1)); |
| 28 | assert_equal(4181, A2(1, 1)); |
| 29 | |
| 30 | A = A * 5; |
| 31 | assert_equal(10946 * 5, A(0, 0)); |
| 32 | assert_equal(6765 * 5, A(1, 0)); |
| 33 | assert_equal(6765 * 5, A(0, 1)); |
| 34 | assert_equal(4181 * 5, A(1, 1)); |
| 35 | |
| 36 | A = A + A; |
| 37 | assert_equal(10946 * 5 * 2, A(0, 0)); |
| 38 | assert_equal(6765 * 5 * 2, A(1, 0)); |
| 39 | assert_equal(6765 * 5 * 2, A(0, 1)); |
| 40 | assert_equal(4181 * 5 * 2, A(1, 1)); |
| 41 | |
| 42 | A = A - A; |
| 43 | assert_equal(0, A(0, 0)); |
| 44 | assert_equal(0, A(1, 0)); |
| 45 | assert_equal(0, A(0, 1)); |
| 46 | assert_equal(0, A(1, 1)); |
| 47 | |
| 48 | matrix<int> B(1, 2); |
| 49 | B(0, 0) = 1; |
| 50 | B(0, 1) = 5; |
| 51 | assert_equal(1, B.transpose()(0, 0)); |
| 52 | assert_equal(5, B.transpose()(1, 0)); |
| 53 | |
| 54 | matrix<double> C(2, 3); |
| 55 | C(0, 0) = 5; |
| 56 | C(0, 1) = 7; |
| 57 | C(0, 2) = 8; |
| 58 | C(1, 0) = 1; |
| 59 | C(1, 1) = 1; |
| 60 | C(1, 2) = 2; |
nothing calls this directly
no test coverage detected