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 }
|