@@ -258,4 +258,93 @@ public void testHasChildren() {
258258 }
259259 }
260260
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+ }
261350}
0 commit comments