@@ -258,4 +258,93 @@ public void testHasChildren() {
258
258
}
259
259
}
260
260
261
+ /**
262
+ * Test the vertices and edges of a very simple valueOf graph
263
+ */
264
+ public void testValueOfSimple () {
265
+ SemanticGraph sg = SemanticGraph .valueOf ("[A/foo obj> B/bar obj> C/foo nsubj> [D/bar obj> E/baz]]" );
266
+
267
+ List <IndexedWord > words = sg .vertexListSorted ();
268
+ assertEquals (words .size (), 5 );
269
+
270
+ for (int i = 0 ; i < 5 ; ++i ) {
271
+ assertEquals (words .get (i ).index (), i );
272
+ }
273
+ IndexedWord A = words .get (0 );
274
+ IndexedWord B = words .get (1 );
275
+ IndexedWord C = words .get (2 );
276
+ IndexedWord D = words .get (3 );
277
+ IndexedWord E = words .get (4 );
278
+
279
+ assertEquals (A .word (), "A" );
280
+ assertEquals (A .tag (), "foo" );
281
+ assertEquals (B .word (), "B" );
282
+ assertEquals (B .tag (), "bar" );
283
+ assertEquals (C .word (), "C" );
284
+ assertEquals (C .tag (), "foo" );
285
+ assertEquals (D .word (), "D" );
286
+ assertEquals (D .tag (), "bar" );
287
+ assertEquals (E .word (), "E" );
288
+ assertEquals (E .tag (), "baz" );
289
+
290
+ assertEquals (sg .getAllEdges (A , B ).size (), 1 );
291
+ assertEquals (sg .getParentsWithReln (B , "obj" ).size (), 1 );
292
+
293
+ assertEquals (sg .getAllEdges (A , C ).size (), 1 );
294
+ assertEquals (sg .getParentsWithReln (C , "obj" ).size (), 1 );
295
+
296
+ assertEquals (sg .getAllEdges (A , D ).size (), 1 );
297
+ assertEquals (sg .getParentsWithReln (D , "nsubj" ).size (), 1 );
298
+ assertEquals (sg .getParentsWithReln (D , "obj" ).size (), 0 );
299
+ assertEquals (sg .getParentsWithReln (D , "dep" ).size (), 0 );
300
+
301
+ assertEquals (sg .getAllEdges (A , E ).size (), 0 );
302
+ assertEquals (sg .getAllEdges (D , E ).size (), 1 );
303
+ assertEquals (sg .getParentsWithReln (E , "obj" ).size (), 1 );
304
+ assertEquals (sg .getParentsWithReln (E , "dep" ).size (), 0 );
305
+ }
306
+
307
+ /**
308
+ * Test the vertices and edges of a very simple valueOf graph with indices added
309
+ */
310
+ public void testValueOfIndices () {
311
+ // test some with tags and some without
312
+ SemanticGraph sg = SemanticGraph .valueOf ("[A/foo-3 obj> B/bar-1 obj> C-4 nsubj> [D-2 obj> E-0]]" );
313
+
314
+ List <IndexedWord > words = sg .vertexListSorted ();
315
+ assertEquals (words .size (), 5 );
316
+
317
+ for (int i = 0 ; i < 5 ; ++i ) {
318
+ assertEquals (words .get (i ).index (), i );
319
+ }
320
+ IndexedWord A = words .get (3 );
321
+ IndexedWord B = words .get (1 );
322
+ IndexedWord C = words .get (4 );
323
+ IndexedWord D = words .get (2 );
324
+ IndexedWord E = words .get (0 );
325
+
326
+ assertEquals (A .word (), "A" );
327
+ assertEquals (A .tag (), "foo" );
328
+ assertEquals (B .word (), "B" );
329
+ assertEquals (B .tag (), "bar" );
330
+ assertEquals (C .word (), "C" );
331
+ assertEquals (D .word (), "D" );
332
+ assertEquals (E .word (), "E" );
333
+
334
+ assertEquals (sg .getAllEdges (A , B ).size (), 1 );
335
+ assertEquals (sg .getParentsWithReln (B , "obj" ).size (), 1 );
336
+
337
+ assertEquals (sg .getAllEdges (A , C ).size (), 1 );
338
+ assertEquals (sg .getParentsWithReln (C , "obj" ).size (), 1 );
339
+
340
+ assertEquals (sg .getAllEdges (A , D ).size (), 1 );
341
+ assertEquals (sg .getParentsWithReln (D , "nsubj" ).size (), 1 );
342
+ assertEquals (sg .getParentsWithReln (D , "obj" ).size (), 0 );
343
+ assertEquals (sg .getParentsWithReln (D , "dep" ).size (), 0 );
344
+
345
+ assertEquals (sg .getAllEdges (A , E ).size (), 0 );
346
+ assertEquals (sg .getAllEdges (D , E ).size (), 1 );
347
+ assertEquals (sg .getParentsWithReln (E , "obj" ).size (), 1 );
348
+ assertEquals (sg .getParentsWithReln (E , "dep" ).size (), 0 );
349
+ }
261
350
}
0 commit comments