public virtual Path PathToReference(Node me) { PathFinder <Path> finder = GraphAlgoFactory.shortestPath(PathExpanders.allTypesAndDirections(), 6); using (Transaction tx = me.GraphDatabase.beginTx()) { Node other; if (me.hasRelationship(RelationshipType.withName("friend"))) { ResourceIterable <Relationship> relationships = (ResourceIterable <Relationship>)me.getRelationships(RelationshipType.withName("friend")); using (ResourceIterator <Relationship> resourceIterator = relationships.GetEnumerator()) { //JAVA TO C# CONVERTER TODO TASK: Java iterators are only converted within the context of 'while' and 'for' loops: other = resourceIterator.next().getOtherNode(me); } } else { other = me.GraphDatabase.createNode(); } Path path = finder.FindSinglePath(other, me); tx.Success(); return(path); } }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void testExactDepthFinder() public virtual void TestExactDepthFinder() { // Layout (a to k): // // (a)--(c)--(g)--(k) // / / // (b)-----(d)------(j) // | \ / // (e)--(f)--(h)--(i) // Graph.makeEdgeChain("a,c,g,k"); Graph.makeEdgeChain("a,b,d,j,k"); Graph.makeEdgeChain("b,e,f,h,i,j"); Graph.makeEdgeChain("d,h"); PathExpander <object> expander = PathExpanders.forTypeAndDirection(MyRelTypes.R1, Direction.OUTGOING); Node a = Graph.getNode("a"); Node k = Graph.getNode("k"); AssertPaths(GraphAlgoFactory.pathsWithLength(expander, 3).findAllPaths(a, k), "a,c,g,k"); AssertPaths(GraphAlgoFactory.pathsWithLength(expander, 4).findAllPaths(a, k), "a,b,d,j,k"); AssertPaths(GraphAlgoFactory.pathsWithLength(expander, 5).findAllPaths(a, k)); AssertPaths(GraphAlgoFactory.pathsWithLength(expander, 6).findAllPaths(a, k), "a,b,d,h,i,j,k"); AssertPaths(GraphAlgoFactory.pathsWithLength(expander, 7).findAllPaths(a, k), "a,b,e,f,h,i,j,k"); AssertPaths(GraphAlgoFactory.pathsWithLength(expander, 8).findAllPaths(a, k)); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Parameters public static java.util.Collection<Object[]> data() public static ICollection <object[]> Data() { return(Arrays.asList(new object[][] { new object[] { GraphAlgoFactory.aStar(PathExpanders.allTypesAndDirections(), doubleCostEvaluator("length"), EstimateEvaluator) }, new object[] { new TraversalAStar(PathExpanders.allTypesAndDirections(), doubleCostEvaluator("length"), EstimateEvaluator) } })); }
public virtual Stream <NodeResult> GraphAlgosDijkstra(Node start, Node end, string relType, string weightProperty) { PathFinder <WeightedPath> pathFinder = GraphAlgoFactory.dijkstra(PathExpanders.forTypeAndDirection(RelationshipType.withName(relType), Direction.BOTH), weightProperty); WeightedPath path = pathFinder.FindSinglePath(start, end); //JAVA TO C# CONVERTER TODO TASK: Method reference constructor syntax is not converted by Java to C# Converter: return(StreamSupport.stream(path.Nodes().spliterator(), false).map(NodeResult::new)); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void testExactDepthPathsReturnsNoLoops() public virtual void TestExactDepthPathsReturnsNoLoops() { // Layout: // // (a)-->(b)==>(c)-->(e) // ^ / // \ v // (d) // Graph.makeEdgeChain("a,b,c,d,b,c,e"); Node a = Graph.getNode("a"); Node e = Graph.getNode("e"); AssertPaths(GraphAlgoFactory.pathsWithLength(PathExpanders.forType(MyRelTypes.R1), 3).findAllPaths(a, e), "a,b,c,e", "a,b,c,e"); AssertPaths(GraphAlgoFactory.pathsWithLength(PathExpanders.forType(MyRelTypes.R1), 4).findAllPaths(a, e), "a,b,d,c,e"); AssertPaths(GraphAlgoFactory.pathsWithLength(PathExpanders.forType(MyRelTypes.R1), 6).findAllPaths(a, e)); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void filtersTouchesAllIntermediateNodes() public virtual void FiltersTouchesAllIntermediateNodes() { // Layout: // // (a)-->(b)-->(c)-->(d) // Graph.makeEdgeChain("a,b,c,d"); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.neo4j.graphdb.Node a = graph.getNode("a"); Node a = Graph.getNode("a"); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.neo4j.graphdb.Node d = graph.getNode("d"); Node d = Graph.getNode("d"); ICollection <Node> touchedByFilter = new HashSet <Node>(); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final System.Predicate<org.neo4j.graphdb.Node> filter = item -> System.Predicate <Node> filter = item => { touchedByFilter.Add(item); return(true); }; //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.neo4j.graphdb.PathExpander expander = org.neo4j.graphdb.PathExpanderBuilder.empty().add(R1, OUTGOING).addNodeFilter(filter).build(); PathExpander expander = PathExpanderBuilder.empty().add(R1, OUTGOING).addNodeFilter(filter).build(); //final PathExpander expander = ((StandardExpander) PathExpanders.forTypeAndDirection(R1, OUTGOING)).addNodeFilter( filter ); Path path = Iterables.single(GraphAlgoFactory.shortestPath(expander, 10).findAllPaths(a, d)); assertEquals(3, path.Length()); IList <Node> nodes = Iterables.asList(path.Nodes()); IList <Node> intermediateNodes = nodes.subList(1, nodes.Count - 1); //JAVA TO C# CONVERTER TODO TASK: There is no .NET equivalent to the java.util.Collection 'containsAll' method: assertTrue("touchedByFilter: " + touchedByFilter, touchedByFilter.containsAll(intermediateNodes)); assertTrue("startNode was not filtered", !touchedByFilter.Contains(a)); assertTrue("endNode was not filtered", !touchedByFilter.Contains(d)); }
public virtual Path PathToReference(Node me) { PathFinder <Path> finder = GraphAlgoFactory.shortestPath(PathExpanders.allTypesAndDirections(), 6); return(finder.FindSinglePath(me.GraphDatabase.createNode(), me)); }
protected internal virtual PathFinder <Path> InstantiatePathFinder(int maxDepth) { return(GraphAlgoFactory.allSimplePaths(PathExpanders.allTypesAndDirections(), maxDepth)); }