blob: 4af3764d359bb89833bc3731a982245dd7a922ff [file] [log] [blame]
Nils Diewald8bc7e412015-03-19 22:08:27 +00001var available = [
2 'base/s=spans',
3 'corenlp/c=spans',
4 'corenlp/ne=tokens',
5 'corenlp/p=tokens',
6 'corenlp/s=spans',
7 'glemm/l=tokens',
8 'mate/l=tokens',
9 'mate/m=tokens',
10 'mate/p=tokens',
11 'opennlp/p=tokens',
12 'opennlp/s=spans',
13 'tt/l=tokens',
14 'tt/p=tokens',
15 'tt/s=spans'
16];
17
18var match = {
19 'corpusID' : 'WPD',
20 'docID' : 'UUU',
21 'textID' : '01912',
22 'pos' : 'p121-122'
23};
24
25var snippet = "<span title=\"cnx/l:meist\">" +
26 " <span title=\"cnx/p:ADV\">" +
27 " <span title=\"cnx/syn:@PREMOD\">" +
28 " <span title=\"mate/l:meist\">" +
29 " <span title=\"mate/p:ADV\">" +
30 " <span title=\"opennlp/p:ADV\">meist</span>" +
31 " </span>" +
32 " </span>" +
33 " </span>" +
34 " </span>" +
35 "</span>" +
36 "<span title=\"cnx/l:deutlich\">" +
37 " <span title=\"cnx/p:A\">" +
38 " <span title=\"cnx/syn:@PREMOD\">" +
39 " <span title=\"mate/l:deutlich\">" +
40 " <span title=\"mate/m:degree:pos\">" +
41 " <span title=\"mate/p:ADJD\">" +
42 " <span title=\"opennlp/p:ADJD\">deutlich</span>" +
43 " </span>" +
44 " </span>" +
45 " </span>" +
46 " </span>" +
47 " </span>" +
48 "</span>" +
49 "<span title=\"cnx/l:fähig\">" +
50 " <span title=\"cnx/l:leistung\">" +
51 " <span title=\"cnx/p:A\">" +
52 " <span title=\"cnx/syn:@NH\">" +
53 " <span title=\"mate/l:leistungsfähig\">" +
54 " <span title=\"mate/m:degree:comp\">" +
55 " <span title=\"mate/p:ADJD\">" +
56 " <span title=\"opennlp/p:ADJD\">leistungsfähiger</span>" +
57 " </span>" +
58 " </span>" +
59 " </span>" +
60 " </span>" +
61 " </span>" +
62 " </span>" +
63 "</span>";
64
Nils Diewalde8518f82015-03-18 22:41:49 +000065describe('KorAP.InfoLayer', function () {
66 it('should be initializable', function () {
67 expect(
68 function() { KorAP.InfoLayer.create() }
69 ).toThrow(new Error("Missing parameters"));
70
71 expect(
72 function() { KorAP.InfoLayer.create("base") }
73 ).toThrow(new Error("Missing parameters"));
74
75 var layer = KorAP.InfoLayer.create("base", "s");
76 expect(layer).toBeTruthy();
77 expect(layer.foundry).toEqual("base");
78 expect(layer.layer).toEqual("s");
79 expect(layer.type).toEqual("tokens");
80
81 layer = KorAP.InfoLayer.create("cnx", "syn", "spans");
82 expect(layer).toBeTruthy();
83 expect(layer.foundry).toEqual("cnx");
84 expect(layer.layer).toEqual("syn");
85 expect(layer.type).toEqual("spans");
86 });
87});
88
89describe('KorAP.Match', function () {
90 var match = {
91 'corpusID' : 'WPD',
92 'docID' : 'UUU',
93 'textID' : '01912',
94 'pos' : 'p121-122'
95 };
96
97 it('should be initializable', function () {
98 var mInfo = KorAP.Match.create(match);
99 expect(mInfo.corpusID).toEqual("WPD");
100 });
101});
102
103describe('KorAP.MatchInfo', function () {
Nils Diewalde8518f82015-03-18 22:41:49 +0000104 it('should be initializable', function () {
105 expect(function() {
106 KorAP.MatchInfo.create()
107 }).toThrow(new Error('Missing parameters'));
108
109 expect(function() {
110 KorAP.MatchInfo.create(available)
111 }).toThrow(new Error('Missing parameters'));
112
113 expect(KorAP.MatchInfo.create(match, available)).toBeTruthy();
114
115 // /corpus/WPD/UUU.01912/p121-122/matchInfo?spans=false&foundry=*
116 var info = KorAP.MatchInfo.create(match, available);
117
118 // Spans:
119 var spans = info.getSpans();
120 expect(spans[0].foundry).toEqual("base");
121 expect(spans[0].layer).toEqual("s");
122
123 expect(spans[1].foundry).toEqual("corenlp");
124 expect(spans[1].layer).toEqual("c");
125
126 expect(spans[2].foundry).toEqual("corenlp");
127 expect(spans[2].layer).toEqual("s");
128
129 expect(spans[spans.length-1].foundry).toEqual("tt");
130 expect(spans[spans.length-1].layer).toEqual("s");
131
132 // Tokens:
133 var tokens = info.getTokens();
134 expect(tokens[0].foundry).toEqual("corenlp");
135 expect(tokens[0].layer).toEqual("ne");
136
137 expect(tokens[1].foundry).toEqual("corenlp");
138 expect(tokens[1].layer).toEqual("p");
139
140 expect(tokens[tokens.length-1].foundry).toEqual("tt");
141 expect(tokens[tokens.length-1].layer).toEqual("p");
142 });
143
144
145 it('should parse into a table', function () {
146 var info = KorAP.MatchInfo.create(match, available);
147
148 expect(info.getTable('base/s')).not.toBeTruthy();
149
150 // Override getMatchInfo API call
151 KorAP.API.getMatchInfo = function() {
152 return { "snippet": snippet };
153 };
154
155 var table = info.getTable();
156 expect(table).toBeTruthy();
157
158 expect(table.length()).toBe(3);
159
160 expect(table.getToken(0)).toBe("meist");
161 expect(table.getToken(1)).toBe("deutlich");
162 expect(table.getToken(2)).toBe("leistungsfähiger");
163
164 expect(table.getValue(0, "cnx", "p")[0]).toBe("ADV");
165 expect(table.getValue(0, "cnx", "syn")[0]).toBe("@PREMOD");
166
167 expect(table.getValue(2, "cnx", "l")[0]).toBe("fähig");
168 expect(table.getValue(2, "cnx", "l")[1]).toBe("leistung");
169 });
Nils Diewald8bc7e412015-03-19 22:08:27 +0000170});
Nils Diewalde8518f82015-03-18 22:41:49 +0000171
Nils Diewald8bc7e412015-03-19 22:08:27 +0000172describe('KorAP.MatchTable', function () {
173 it('should be rendered', function () {
174 var info = KorAP.MatchInfo.create(match, available);
175
176 // Override getMatchInfo API call
177 KorAP.API.getMatchInfo = function() {
178 return { "snippet": snippet };
179 };
180
181 var table = info.getTable();
182
183 var e = table.element();
184
185 expect(e.nodeName).toBe('TABLE');
186 expect(e.children[0].nodeName).toBe('THEAD');
187 var tr = e.children[0].children[0];
188 expect(tr.nodeName).toBe('TR');
189 expect(tr.children[0].nodeName).toBe('TH');
190
191 expect(tr.children[0].firstChild.nodeValue).toBe('Foundry');
192 expect(tr.children[1].firstChild.nodeValue).toBe('Layer');
193 expect(tr.children[2].firstChild.nodeValue).toBe('meist');
194 expect(tr.children[3].firstChild.nodeValue).toBe('deutlich');
195 expect(tr.children[4].firstChild.nodeValue).toBe('leistungsfähiger');
196 });
Nils Diewalde8518f82015-03-18 22:41:49 +0000197});
198
199// table = view.toTable();
200// table.sortBy('');
201// table.element();
202// tree = view.toTree();
203// tree.element();