1#!perl
2
3use strict;
4use warnings;
5
6use Math::Matrix;
7use Test::More tests => 10;
8
9my ($x, $y);
10$x = Math::Matrix -> new([[ 3, -1,  5 ],
11                          [ 4,  0,  2 ],
12                          [ 2,  6, -5 ]]);
13
14$y = $x -> cofactor(0, 0);
15cmp_ok($y, '==', -12, 'cofactor(0, 0)');
16
17$y = $x -> cofactor(0, 1);
18cmp_ok($y, '==',  24, 'cofactor(0, 1)');
19
20$y = $x -> cofactor(0, 2);
21cmp_ok($y, '==',  24, 'cofactor(0, 2)');
22
23$y = $x -> cofactor(1, 0);
24cmp_ok($y, '==',  25, 'cofactor(1, 0)');
25
26$y = $x -> cofactor(1, 1);
27cmp_ok($y, '==', -25, 'cofactor(1, 1)');
28
29$y = $x -> cofactor(1, 2);
30cmp_ok($y, '==', -20, 'cofactor(1, 2)');
31
32$y = $x -> cofactor(2, 0);
33cmp_ok($y, '==',  -2, 'cofactor(2, 0)');
34
35$y = $x -> cofactor(2, 1);
36cmp_ok($y, '==',  14, 'cofactor(2, 1)');
37
38$y = $x -> cofactor(2, 2);
39cmp_ok($y, '==',   4, 'cofactor(2, 2)');
40
41# Verify that $x is unmodified.
42
43is_deeply([ @$x ], [[ 3, -1,  5 ],
44                    [ 4,  0,  2 ],
45                    [ 2,  6, -5 ]], '$x is unmodified');
46