OSDN Git Service

change kgram format
[stigmata/stigmata-plugins.git] / kgram / src / test / java / jp / sourceforge / stigmata / birthmarks / kgram / KGramTest.java
1 package jp.sourceforge.stigmata.birthmarks.kgram;
2
3 import org.junit.Assert;
4 import org.junit.Before;
5 import org.junit.Test;
6
7 /**
8  *
9  * @author Haruaki Tamada
10  */
11 public class KGramTest{
12     private String[] plainValues;
13     private String[] complexValues;
14
15     @Before
16     public void buildKGrams(){
17         plainValues = new String[] { "a", "b", "c", "d", "e", "f", "g", };
18         complexValues = new String[] { "a", "b", "r", "a", "c", "a", "d", "a", "b", "r", "a", };
19     }
20
21     @Test
22     public void testStringRepresentation(){
23         KGram<String>[] kgrams = KGramBuilder.getInstance().buildKGram(plainValues, 4);
24         Assert.assertEquals("a b c d", kgrams[0].toString());
25         Assert.assertEquals("b c d e", kgrams[1].toString());
26         Assert.assertEquals("c d e f", kgrams[2].toString());
27         Assert.assertEquals("d e f g", kgrams[3].toString());
28     }
29
30     @Test
31     public void checkPlainKGram(){
32         KGram<String>[] kgrams = KGramBuilder.getInstance().buildKGram(plainValues, 4);
33         Assert.assertEquals(4, kgrams.length);
34
35         Assert.assertEquals(4, kgrams[0].getKValue());
36         Assert.assertEquals(4, kgrams[1].getKValue());
37         Assert.assertEquals(4, kgrams[2].getKValue());
38         Assert.assertEquals(4, kgrams[3].getKValue());
39
40         Assert.assertArrayEquals(new String[] { "a", "b", "c", "d", }, kgrams[0].toArray());
41         Assert.assertArrayEquals(new String[] { "b", "c", "d", "e", }, kgrams[1].toArray());
42         Assert.assertArrayEquals(new String[] { "c", "d", "e", "f", }, kgrams[2].toArray());
43         Assert.assertArrayEquals(new String[] { "d", "e", "f", "g", }, kgrams[3].toArray());
44     }
45
46     @Test
47     public void checkPlainKGram2(){
48         KGram<String>[] kgrams = KGramBuilder.getInstance().buildKGram(plainValues, 3);
49         Assert.assertEquals(5, kgrams.length);
50
51         Assert.assertEquals(3, kgrams[0].getKValue());
52         Assert.assertEquals(3, kgrams[1].getKValue());
53         Assert.assertEquals(3, kgrams[2].getKValue());
54         Assert.assertEquals(3, kgrams[3].getKValue());
55         Assert.assertEquals(3, kgrams[4].getKValue());
56
57         Assert.assertArrayEquals(new String[] { "a", "b", "c", }, kgrams[0].toArray());
58         Assert.assertArrayEquals(new String[] { "b", "c", "d", }, kgrams[1].toArray());
59         Assert.assertArrayEquals(new String[] { "c", "d", "e", }, kgrams[2].toArray());
60         Assert.assertArrayEquals(new String[] { "d", "e", "f", }, kgrams[3].toArray());
61         Assert.assertArrayEquals(new String[] { "e", "f", "g", }, kgrams[4].toArray());
62     }
63
64     @Test
65     public void checkComplexKGram(){
66         KGram<String>[] kgrams = KGramBuilder.getInstance().buildKGram(complexValues, 3);
67
68         Assert.assertEquals(7, kgrams.length);
69
70         Assert.assertArrayEquals(new String[] { "a", "b", "r", }, kgrams[0].toArray());
71         Assert.assertArrayEquals(new String[] { "b", "r", "a", }, kgrams[1].toArray());
72         Assert.assertArrayEquals(new String[] { "r", "a", "c", }, kgrams[2].toArray());
73         Assert.assertArrayEquals(new String[] { "a", "c", "a", }, kgrams[3].toArray());
74         Assert.assertArrayEquals(new String[] { "c", "a", "d", }, kgrams[4].toArray());
75         Assert.assertArrayEquals(new String[] { "a", "d", "a", }, kgrams[5].toArray());
76         Assert.assertArrayEquals(new String[] { "d", "a", "b", }, kgrams[6].toArray());
77         // following kgram is appeared in above.
78         // assertEquals(new String[] { "a", "b", "r", }, kgrams[0].toArray());
79         // assertEquals(new String[] { "b", "r", "a", }, kgrams[1].toArray());
80     }
81 }