TestClassificationMeasures.java
01 package gate.util;
02 
03 import gate.AnnotationSet;
04 import gate.Document;
05 import gate.Factory;
06 import gate.Gate;
07 
08 import java.util.ArrayList;
09 import java.net.URL;
10 import java.net.URI;
11 
12 import junit.framework.Test;
13 import junit.framework.TestCase;
14 import junit.framework.TestSuite;
15 
16 public class TestClassificationMeasures extends TestCase{
17 
18   /** Test suite routine for the test runner */
19   public static Test suite() {
20     return new TestSuite(TestClassificationMeasures.class);
21   // suite
22 
23   
24   @Override
25   protected void setUp() throws Exception {
26     // TODO Auto-generated method stub
27     super.setUp();
28   }
29 
30   @Override
31   protected void tearDown() throws Exception {
32     // TODO Auto-generated method stub
33     super.tearDown();
34   }
35  
36   public void test(){
37     String type = "sent";
38     String feature = "Op";
39         
40     Document doc1 = null;
41     Document doc2 = null;
42     Document doc3 = null;
43     Document doc4 = null;
44         
45     try {
46       Gate.init();
47           
48       URI uri1 = new URI("http://gate.ac.uk/tests/iaa/beijing-opera.xml");
49       URI uri2 = new URI("http://gate.ac.uk/tests/iaa/beijing-opera.xml");
50       URI uri3 = new URI("http://gate.ac.uk/tests/iaa/in-outlook-09-aug-2001.xml");
51       URI uri4 = new URI("http://gate.ac.uk/tests/iaa/in-outlook-09-aug-2001.xml");
52       
53       doc1 = Factory.newDocument(uri1.toURL());
54       doc2 = Factory.newDocument(uri2.toURL());
55       doc3 = Factory.newDocument(uri3.toURL());
56       doc4 = Factory.newDocument(uri4.toURL());
57         
58     catch (Exception e) {
59       e.printStackTrace();
60     }
61     
62     if(doc1!=null && doc2!=null && doc3!=null && doc4!=null){
63       AnnotationSet as1 = doc1.getAnnotations("ann1");
64       AnnotationSet as2 = doc2.getAnnotations("ann2");
65 
66       ClassificationMeasures myClassificationMeasures1 =
67         new ClassificationMeasures();
68       myClassificationMeasures1.calculateConfusionMatrix(
69         as1, as2, type, feature, true);
70       assertEquals(myClassificationMeasures1.getObservedAgreement()0.7777778f);
71       assertEquals(myClassificationMeasures1.getKappaCohen()0.6086957f);
72       assertEquals(myClassificationMeasures1.getKappaPi()0.59550565f);
73       
74       AnnotationSet as3 = doc3.getAnnotations("ann1");
75       AnnotationSet as4 = doc4.getAnnotations("ann2");
76        
77       ClassificationMeasures myClassificationMeasures2 =
78         new ClassificationMeasures();
79       myClassificationMeasures2.calculateConfusionMatrix(
80         as3, as4, type, feature, true);
81       assertEquals(myClassificationMeasures2.getObservedAgreement()0.96875f);
82       assertEquals(myClassificationMeasures2.getKappaCohen()0.3263158f);
83       assertEquals(myClassificationMeasures2.getKappaPi()0.3227513f);
84        
85       ArrayList<ClassificationMeasures> tablesList = new ArrayList<ClassificationMeasures>();
86       tablesList.add(myClassificationMeasures1);
87       tablesList.add(myClassificationMeasures2);
88       ClassificationMeasures myNewClassificationMeasures =
89         new ClassificationMeasures(tablesList);
90       assertEquals(myNewClassificationMeasures.getObservedAgreement()0.94520545f);
91       assertEquals(myNewClassificationMeasures.getKappaCohen()0.7784521f);
92       assertEquals(myNewClassificationMeasures.getKappaPi()0.7778622f);
93        
94     else {
95       System.out.println("Failed to create docs from URLs.");
96     }
97   }
98 }