/** Unit test for * {@link org.apache.calcite.util.graph.BreadthFirstIterator}. */ @Test public void testBreadthFirstIterator() { DefaultDirectedGraph<String, DefaultEdge> graph = createDag(); final List<String> expected = ImmutableList.of("A", "B", "E", "C", "F", "D"); assertThat(getA(graph, "A"), equalTo(expected)); assertThat(Lists.newArrayList(getB(graph, "A")), equalTo(expected)); }
@Test public void testOne() { DirectedGraph<String, DefaultEdge> g = DefaultDirectedGraph.create(); g.addVertex("A"); g.addVertex("B"); g.addVertex("C"); g.addVertex("D"); g.addVertex("E"); g.addVertex("F"); g.addEdge("A", "B"); g.addEdge("B", "C"); g.addEdge("D", "C"); g.addEdge("C", "D"); g.addEdge("E", "F"); g.addEdge("C", "C"); assertEquals("[A, B, C, D]", shortestPath(g, "A", "D").toString()); g.addEdge("B", "D"); assertEquals("[A, B, D]", shortestPath(g, "A", "D").toString()); assertNull("There is no path from A to E", shortestPath(g, "A", "E")); assertEquals("[]", shortestPath(g, "D", "D").toString()); assertNull("Node X is not in the graph", shortestPath(g, "X", "A")); assertEquals("[[A, B, C, D], [A, B, D]]", paths(g, "A", "D").toString()); }
/** Unit test for {@link TopologicalOrderIterator}. */ @Test public void testTopologicalOrderIterator() { final DefaultDirectedGraph<String, DefaultEdge> graph = createDag(); final List<String> list = new ArrayList<String>(); for (String s : TopologicalOrderIterator.of(graph)) { list.add(s); } assertEquals("[A, B, E, C, F, D]", list.toString()); }
@Test public void testOne() { DirectedGraph<String, DefaultEdge> g = DefaultDirectedGraph.create(); g.addVertex("A"); g.addVertex("B"); g.addVertex("C"); g.addVertex("D"); g.addVertex("E"); g.addVertex("F"); g.addEdge("A", "B"); g.addEdge("B", "C"); g.addEdge("D", "C"); g.addEdge("C", "D"); g.addEdge("E", "F"); g.addEdge("C", "C"); assertEquals("[A, B, C, D]", shortestPath(g, "A", "D").toString()); g.addEdge("B", "D"); assertEquals("[A, B, D]", shortestPath(g, "A", "D").toString()); assertNull("There is no path from A to E", shortestPath(g, "A", "E")); assertEquals("[]", shortestPath(g, "D", "D").toString()); assertNull("Node X is not in the graph", shortestPath(g, "X", "A")); assertEquals("[[A, B, C, D], [A, B, D]]", paths(g, "A", "D").toString()); }
/** Unit test for {@link TopologicalOrderIterator}. */ @Test public void testTopologicalOrderIterator() { final DefaultDirectedGraph<String, DefaultEdge> graph = createDag(); final List<String> list = new ArrayList<String>(); for (String s : TopologicalOrderIterator.of(graph)) { list.add(s); } assertEquals("[A, B, E, C, F, D]", list.toString()); }
/** Unit test for * {@link org.apache.calcite.util.graph.BreadthFirstIterator}. */ @Test public void testBreadthFirstIterator() { DefaultDirectedGraph<String, DefaultEdge> graph = createDag(); final List<String> expected = ImmutableList.of("A", "B", "E", "C", "F", "D"); assertThat(getA(graph, "A"), equalTo(expected)); assertThat(Lists.newArrayList(getB(graph, "A")), equalTo(expected)); }
@Test public void testAttributed() { AttributedDirectedGraph<String, DefaultEdge> g = AttributedDirectedGraph.create(new DefaultAttributedEdgeFactory()); g.addVertex("A"); g.addVertex("B"); g.addVertex("C"); g.addVertex("D"); g.addVertex("E"); g.addVertex("F"); g.addEdge("A", "B", 1); g.addEdge("B", "C", 1); g.addEdge("D", "C", 1); g.addEdge("C", "D", 1); g.addEdge("E", "F", 1); g.addEdge("C", "C", 1); assertEquals("[A, B, C, D]", shortestPath(g, "A", "D").toString()); g.addEdge("B", "D", 1); assertEquals("[A, B, D]", shortestPath(g, "A", "D").toString()); assertNull("There is no path from A to E", shortestPath(g, "A", "E")); assertEquals("[]", shortestPath(g, "D", "D").toString()); assertNull("Node X is not in the graph", shortestPath(g, "X", "A")); assertEquals("[[A, B, C, D], [A, B, D]]", paths(g, "A", "D").toString()); assertThat(g.addVertex("B"), is(false)); assertThat(Iterables.size(g.getEdges("A", "B")), is(1)); assertThat(g.addEdge("A", "B", 1), nullValue()); assertThat(Iterables.size(g.getEdges("A", "B")), is(1)); assertThat(g.addEdge("A", "B", 2), notNullValue()); assertThat(Iterables.size(g.getEdges("A", "B")), is(2)); }
/** Unit test for {@link DepthFirstIterator}. */ @Test public void testDepthFirst() { final DefaultDirectedGraph<String, DefaultEdge> graph = createDag(); final List<String> list = new ArrayList<String>(); for (String s : DepthFirstIterator.of(graph, "A")) { list.add(s); } assertThat(list.toString(), equalTo("[A, B, C, D, E, C, D, F]")); list.clear(); DepthFirstIterator.reachable(list, graph, "A"); assertThat(list.toString(), equalTo("[A, B, C, D, E, C, D, F]")); }
/** Unit test for {@link DepthFirstIterator}. */ @Test public void testDepthFirst() { final DefaultDirectedGraph<String, DefaultEdge> graph = createDag(); final List<String> list = new ArrayList<String>(); for (String s : DepthFirstIterator.of(graph, "A")) { list.add(s); } assertThat(list.toString(), equalTo("[A, B, C, D, E, C, D, F]")); list.clear(); DepthFirstIterator.reachable(list, graph, "A"); assertThat(list.toString(), equalTo("[A, B, C, D, E, C, D, F]")); }
/** Unit test for {@link DepthFirstIterator}. */ @Test public void testPredecessorList() { final DefaultDirectedGraph<String, DefaultEdge> graph = createDag(); final List<String> list = Graphs.predecessorListOf(graph, "C"); assertEquals("[B, E]", list.toString()); }
/** Unit test for {@link DepthFirstIterator}. */ @Test public void testPredecessorList() { final DefaultDirectedGraph<String, DefaultEdge> graph = createDag(); final List<String> list = Graphs.predecessorListOf(graph, "C"); assertEquals("[B, E]", list.toString()); }
/** Unit test for * {@link DefaultDirectedGraph#removeAllVertices(java.util.Collection)}. */ @Test public void testRemoveAllVertices() { final DefaultDirectedGraph<String, DefaultEdge> graph = createDag(); graph.removeAllVertices(Arrays.asList("B", "E")); assertEquals("[A, C, D, F]", graph.vertexSet().toString()); }
/** Unit test for * {@link DefaultDirectedGraph#removeAllVertices(java.util.Collection)}. */ @Test public void testRemoveAllVertices() { final DefaultDirectedGraph<String, DefaultEdge> graph = createDag(); graph.removeAllVertices(Arrays.asList("B", "E")); assertEquals("[A, C, D, F]", graph.vertexSet().toString()); }
DefaultDirectedGraph<String, DefaultEdge> graph = createDag(); assertThat(new CycleDetector<String, DefaultEdge>(graph).findCycles(), CoreMatchers.equalTo(ImmutableSet.of()));
DefaultDirectedGraph<String, DefaultEdge> graph = createDag(); assertThat(new CycleDetector<String, DefaultEdge>(graph).findCycles(), CoreMatchers.equalTo(ImmutableSet.of()));