OSDN Git Service

cflib は plugins プロジェクトから,Stigmata直下のプロジェクトに移行したため,このリポジトリからは削除した.
[stigmata/stigmata-plugins.git] / osb / src / test / java / jp / sourceforge / stigmata / birthmarks / osb / hungarian / CostMatrixTest.java
1 package jp.sourceforge.stigmata.birthmarks.osb.hungarian;\r
2 \r
3 import org.junit.Assert;\r
4 import org.junit.Test;\r
5 \r
6 public class CostMatrixTest{\r
7     @Test\r
8     public void testUnequalsMatrix(){\r
9         CostMatrix matrix = new CostMatrix(new double[][] {\r
10             { 1.0, 0.0, 0.0, },\r
11             { 0.0, 0.8, 0.0, },\r
12             { 0.0, 0.0, 0.6, },\r
13             { 0.0, 0.2, 0.3, },\r
14         });\r
15 \r
16         Assert.assertEquals(4, matrix.getSize());\r
17         Assert.assertEquals(1.0, matrix.getValue(0, 0), 1E-3);\r
18         Assert.assertEquals(0.0, matrix.getValue(0, 1), 1E-3);\r
19         Assert.assertEquals(0.0, matrix.getValue(0, 2), 1E-3);\r
20         Assert.assertEquals(1.0, matrix.getValue(0, 3), 1E-3);\r
21         Assert.assertEquals(0.0, matrix.getValue(1, 0), 1E-3);\r
22         Assert.assertEquals(0.8, matrix.getValue(1, 1), 1E-3);\r
23         Assert.assertEquals(0.0, matrix.getValue(1, 2), 1E-3);\r
24         Assert.assertEquals(1.0, matrix.getValue(1, 3), 1E-3);\r
25         Assert.assertEquals(0.0, matrix.getValue(2, 0), 1E-3);\r
26         Assert.assertEquals(0.0, matrix.getValue(2, 1), 1E-3);\r
27         Assert.assertEquals(0.6, matrix.getValue(2, 2), 1E-3);\r
28         Assert.assertEquals(1.0, matrix.getValue(2, 3), 1E-3);\r
29         Assert.assertEquals(0.0, matrix.getValue(3, 0), 1E-3);\r
30         Assert.assertEquals(0.2, matrix.getValue(3, 1), 1E-3);\r
31         Assert.assertEquals(0.3, matrix.getValue(3, 2), 1E-3);\r
32         Assert.assertEquals(1.0, matrix.getValue(3, 3), 1E-3);\r
33     }\r
34 \r
35     @Test\r
36     public void testUnequalsMatrixAndMax(){\r
37         CostMatrix matrix = new CostMatrix(new double[][] {\r
38             { 1.0, 0.0, 0.0, },\r
39             { 0.0, 0.8, 0.0, },\r
40             { 0.0, 0.0, 0.6, },\r
41             { 0.0, 0.2, 0.3, },\r
42         }, true);\r
43 \r
44         Assert.assertEquals(4, matrix.getSize());\r
45         Assert.assertEquals(0.0, matrix.getValue(0, 0), 1E-3);\r
46         Assert.assertEquals(1.0, matrix.getValue(0, 1), 1E-3);\r
47         Assert.assertEquals(1.0, matrix.getValue(0, 2), 1E-3);\r
48         Assert.assertEquals(1.0, matrix.getValue(0, 3), 1E-3);\r
49         Assert.assertEquals(1.0, matrix.getValue(1, 0), 1E-3);\r
50         Assert.assertEquals(0.2, matrix.getValue(1, 1), 1E-3);\r
51         Assert.assertEquals(1.0, matrix.getValue(1, 2), 1E-3);\r
52         Assert.assertEquals(1.0, matrix.getValue(1, 3), 1E-3);\r
53         Assert.assertEquals(1.0, matrix.getValue(2, 0), 1E-3);\r
54         Assert.assertEquals(1.0, matrix.getValue(2, 1), 1E-3);\r
55         Assert.assertEquals(0.4, matrix.getValue(2, 2), 1E-3);\r
56         Assert.assertEquals(1.0, matrix.getValue(2, 3), 1E-3);\r
57         Assert.assertEquals(1.0, matrix.getValue(3, 0), 1E-3);\r
58         Assert.assertEquals(0.8, matrix.getValue(3, 1), 1E-3);\r
59         Assert.assertEquals(0.7, matrix.getValue(3, 2), 1E-3);\r
60         Assert.assertEquals(1.0, matrix.getValue(3, 3), 1E-3);\r
61     }\r
62 \r
63     @Test\r
64     public void testMinimize(){\r
65         CostMatrix matrix = new CostMatrix(new double[][]{\r
66             { 0.15, 0.06, 0.09, 0.08, },\r
67             { 0.03, 0.13, 0.07, 0.06, },\r
68             { 0.09, 0.10, 0.05, 0.11, },\r
69             { 0.03, 0.05, 0.07, 0.11, },\r
70         });\r
71         Assert.assertEquals(4, matrix.getSize());\r
72         matrix.minimize();\r
73         Assert.assertEquals(0.09, matrix.getValue(0, 0), 1E-6);\r
74         Assert.assertEquals(0.0,  matrix.getValue(0, 1), 1E-6);\r
75         Assert.assertEquals(0.03, matrix.getValue(0, 2), 1E-6);\r
76         Assert.assertEquals(0.0,  matrix.getValue(0, 3), 1E-6);\r
77 \r
78         Assert.assertEquals(0.0,  matrix.getValue(1, 0), 1E-6);\r
79         Assert.assertEquals(0.10, matrix.getValue(1, 1), 1E-6);\r
80         Assert.assertEquals(0.04, matrix.getValue(1, 2), 1E-6);\r
81         Assert.assertEquals(0.01, matrix.getValue(1, 3), 1E-6);\r
82 \r
83         Assert.assertEquals(0.04, matrix.getValue(2, 0), 1E-6);\r
84         Assert.assertEquals(0.05, matrix.getValue(2, 1), 1E-6);\r
85         Assert.assertEquals(0.00, matrix.getValue(2, 2), 1E-6);\r
86         Assert.assertEquals(0.04, matrix.getValue(2, 3), 1E-6);\r
87 \r
88         Assert.assertEquals(0.0,  matrix.getValue(3, 0), 1E-6);\r
89         Assert.assertEquals(0.02, matrix.getValue(3, 1), 1E-6);\r
90         Assert.assertEquals(0.04, matrix.getValue(3, 2), 1E-6);\r
91         Assert.assertEquals(0.06, matrix.getValue(3, 3), 1E-6);\r
92     }\r
93 }\r