//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void useTraverserInsideTraverser() public virtual void UseTraverserInsideTraverser() { /* * (a)-->(b)-->(c) * | * \/ * (d)-->(e)-->(f) * */ CreateGraph("a FIRST d", "a TO b", "b TO c", "d TO e", "e TO f"); using (Transaction tx = BeginTx()) { TraversalDescription firstTraverser = GraphDb.traversalDescription().relationships(RelationshipType.withName("FIRST")).evaluator(Evaluators.toDepth(1)); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final Iterable<org.neo4j.graphdb.Path> firstResult = firstTraverser.traverse(getNodeWithName("a")); IEnumerable <Path> firstResult = firstTraverser.Traverse(GetNodeWithName("a")); IEnumerable <Node> startNodesForNestedTraversal = new IterableWrapperAnonymousInnerClass(this, firstResult); TraversalDescription nestedTraversal = GraphDb.traversalDescription().evaluator(Evaluators.atDepth(2)); ExpectPaths(nestedTraversal.Traverse(startNodesForNestedTraversal), "a,b,c", "d,e,f"); tx.Success(); } }
public virtual Stream <PathResult> MovieTraversal(Node start) { TraversalDescription td = Db.traversalDescription().breadthFirst().relationships(RelationshipType.withName("ACTED_IN"), Direction.BOTH).relationships(RelationshipType.withName("PRODUCED"), Direction.BOTH).relationships(RelationshipType.withName("DIRECTED"), Direction.BOTH).evaluator(Evaluators.fromDepth(3)).evaluator(new LabelEvaluator("Western", 1, 3)).uniqueness(Uniqueness.NODE_GLOBAL); //JAVA TO C# CONVERTER TODO TASK: Method reference constructor syntax is not converted by Java to C# Converter: return(td.Traverse(start).Select(PathResult::new)); }
//JAVA TO C# CONVERTER WARNING: 'final' parameters are ignored unless the option to convert to C# 7.2 'in' parameters is selected: //ORIGINAL LINE: private org.neo4j.graphdb.traversal.Traverser traverser(org.neo4j.graphdb.Node start, final org.neo4j.graphdb.Node end, org.neo4j.graphalgo.impl.util.PathInterest interest) private Traverser Traverser(Node start, Node end, PathInterest interest) { //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.apache.commons.lang3.mutable.MutableDouble shortestSoFar = new org.apache.commons.lang3.mutable.MutableDouble(Double.MAX_VALUE); MutableDouble shortestSoFar = new MutableDouble(double.MaxValue); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.apache.commons.lang3.mutable.MutableDouble startSideShortest = new org.apache.commons.lang3.mutable.MutableDouble(0); MutableDouble startSideShortest = new MutableDouble(0); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.apache.commons.lang3.mutable.MutableDouble endSideShortest = new org.apache.commons.lang3.mutable.MutableDouble(0); MutableDouble endSideShortest = new MutableDouble(0); PathExpander dijkstraExpander = new DijkstraBidirectionalPathExpander(_expander, shortestSoFar, true, startSideShortest, endSideShortest, _epsilon); GraphDatabaseService db = start.GraphDatabase; TraversalDescription side = Db.traversalDescription().expand(dijkstraExpander, _stateFactory).order(new DijkstraSelectorFactory(interest, _costEvaluator)).evaluator(new DijkstraBidirectionalEvaluator(_costEvaluator)).uniqueness(Uniqueness.NODE_PATH); TraversalDescription startSide = side; TraversalDescription endSide = side.Reverse(); BidirectionalTraversalDescription traversal = Db.bidirectionalTraversalDescription().startSide(startSide).endSide(endSide).collisionEvaluator(Evaluators.all()).collisionPolicy((evaluator, pathPredicate) => new DijkstraBranchCollisionDetector(evaluator, _costEvaluator, shortestSoFar, _epsilon, pathPredicate)); _lastTraverser = traversal.Traverse(start, end); return(_lastTraverser); }
//JAVA TO C# CONVERTER WARNING: 'final' parameters are ignored unless the option to convert to C# 7.2 'in' parameters is selected: //ORIGINAL LINE: private org.neo4j.graphdb.traversal.Traverser traverseToDepth(org.neo4j.graphdb.GraphDatabaseService graphDb, final org.neo4j.graphdb.Node startNode, final int depth) private Traverser TraverseToDepth(GraphDatabaseService graphDb, Node startNode, int depth) { TraversalDescription traversalDescription = graphDb.TraversalDescription().expand(PathExpanders.allTypesAndDirections()).depthFirst().evaluator(path => { if (path.length() < depth) { return(Evaluation.INCLUDE_AND_CONTINUE); } else { return(Evaluation.INCLUDE_AND_PRUNE); } }); return(traversalDescription.Traverse(startNode)); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void testMaxDepthAndCustomPruneEvaluatorCombined() public virtual void TestMaxDepthAndCustomPruneEvaluatorCombined() { Evaluator lessThanThreeRels = path => count(path.endNode().getRelationships(Direction.OUTGOING).GetEnumerator()) < 3 ? Evaluation.INCLUDE_AND_PRUNE : Evaluation.INCLUDE_AND_CONTINUE; TraversalDescription description = GraphDb.traversalDescription().evaluator(Evaluators.all()).evaluator(toDepth(1)).evaluator(lessThanThreeRels); ISet <string> expectedNodes = new HashSet <string>(asList("a", "b", "c", "d", "e")); using (Transaction tx = BeginTx()) { foreach (Path position in description.Traverse(Node("a"))) { string name = ( string )position.EndNode().getProperty("name"); assertTrue(name + " shouldn't have been returned", expectedNodes.remove(name)); } tx.Success(); } assertTrue(expectedNodes.Count == 0); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void traverseWithIterableForStartNodes() public virtual void TraverseWithIterableForStartNodes() { /* * (a)-->(b)-->(c) * (d)-->(e)-->(f) * */ CreateGraph("a TO b", "b TO c", "d TO e", "e TO f"); using (Transaction tx = BeginTx()) { TraversalDescription basicTraverser = GraphDb.traversalDescription().evaluator(Evaluators.atDepth(2)); ICollection <Node> startNodes = new List <Node>(); startNodes.Add(GetNodeWithName("a")); startNodes.Add(GetNodeWithName("d")); IEnumerable <Node> iterableStartNodes = startNodes; ExpectPaths(basicTraverser.Traverse(iterableStartNodes), "a,b,c", "d,e,f"); tx.Success(); } }