//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void myFriendsAsWellAsYourFriends()
        public virtual void MyFriendsAsWellAsYourFriends()
        {
            /*
             * Hey, this looks like a futuristic gun or something
             *
             *  (f8)     _----(f1)--(f5)
             *   |      /      /
             * (f7)--(you)--(me)--(f2)--(f6)
             *         |   /   \
             *         (f4)    (f3)
             */

            CreateGraph("you KNOW me", "you KNOW f1", "you KNOW f4", "me KNOW f1", "me KNOW f4", "me KNOW f2", "me KNOW f3", "f1 KNOW f5", "f2 KNOW f6", "you KNOW f7", "f7 KNOW f8");

            using (Transaction tx = BeginTx())
            {
                RelationshipType knowRelType = withName("KNOW");
                Node             you         = GetNodeWithName("you");
                Node             me          = GetNodeWithName("me");

                string[]             levelOneFriends   = new string[] { "f1", "f2", "f3", "f4", "f7" };
                TraversalDescription levelOneTraversal = GraphDb.traversalDescription().relationships(knowRelType).evaluator(atDepth(1));
                ExpectNodes(levelOneTraversal.DepthFirst().traverse(you, me), levelOneFriends);
                ExpectNodes(levelOneTraversal.BreadthFirst().traverse(you, me), levelOneFriends);

                string[]             levelTwoFriends   = new string[] { "f5", "f6", "f8" };
                TraversalDescription levelTwoTraversal = GraphDb.traversalDescription().relationships(knowRelType).evaluator(atDepth(2));
                ExpectNodes(levelTwoTraversal.DepthFirst().traverse(you, me), levelTwoFriends);
                ExpectNodes(levelTwoTraversal.BreadthFirst().traverse(you, me), levelTwoFriends);
            }
        }
Beispiel #2
0
        protected internal override Traverser InstantiateTraverser(Node start, Node end)
        {
            GraphDatabaseService db   = start.GraphDatabase;
            TraversalDescription side = Db.traversalDescription().breadthFirst().uniqueness(_uniqueness).order((startSource, _expander) => new LiteDepthFirstSelector(startSource, _startThreshold, _expander));

            return(Db.bidirectionalTraversalDescription().startSide(side.Expand(_expander).evaluator(toDepth(_onDepth / 2))).endSide(side.Expand(_expander.reverse()).evaluator(toDepth(_onDepth - _onDepth / 2))).collisionEvaluator(atDepth(_onDepth)).traverse(start, end));
        }
Beispiel #3
0
        protected internal override Traverser InstantiateTraverser(Node start, Node end)
        {
            GraphDatabaseService db       = start.GraphDatabase;
            TraversalDescription sideBase = Db.traversalDescription().breadthFirst().uniqueness(NODE_PATH);

            return(Db.bidirectionalTraversalDescription().mirroredSides(sideBase.Expand(_expander)).sideSelector(LEVEL_STOP_DESCENT_ON_RESULT, _maxDepth).collisionEvaluator(toDepth(_maxDepth)).traverse(start, end));
        }
Beispiel #4
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void testBidirectionalPath()
        public virtual void TestBidirectionalPath()
        {
            TraversalDescription side = GraphDb.traversalDescription().uniqueness(Uniqueness.NODE_PATH);
            BidirectionalTraversalDescription bidirectional = GraphDb.bidirectionalTraversalDescription().mirroredSides(side);
            Path bidirectionalPath = GetFirstPath(bidirectional.Traverse(_a, _e));

            AssertPathIsCorrect(bidirectionalPath);

            Path path = GetFirstPath(bidirectional.Traverse(_a, _e));
            Node node = path.StartNode();

            assertEquals(_a, node);

            // White box testing below: relationships(), nodes(), reverseRelationships(), reverseNodes()
            // does cache the start node if not already cached, so just make sure they to it properly.
            bidirectionalPath = GetFirstPath(bidirectional.Traverse(_a, _e));
            bidirectionalPath.Relationships();
            assertEquals(_a, bidirectionalPath.StartNode());

            bidirectionalPath = GetFirstPath(bidirectional.Traverse(_a, _e));
            bidirectionalPath.Nodes();
            assertEquals(_a, bidirectionalPath.StartNode());

            bidirectionalPath = GetFirstPath(bidirectional.Traverse(_a, _e));
            bidirectionalPath.ReverseRelationships();
            assertEquals(_a, bidirectionalPath.StartNode());

            bidirectionalPath = GetFirstPath(bidirectional.Traverse(_a, _e));
            bidirectionalPath.ReverseNodes();
            assertEquals(_a, bidirectionalPath.StartNode());

            bidirectionalPath = GetFirstPath(bidirectional.Traverse(_a, _e));
            bidirectionalPath.GetEnumerator();
            assertEquals(_a, bidirectionalPath.StartNode());
        }
Beispiel #5
0
        protected internal override Traverser InstantiateTraverser(Node start, Node end)
        {
            // Bidirectional traversal
            GraphDatabaseService db    = start.GraphDatabase;
            TraversalDescription @base = Db.traversalDescription().depthFirst().uniqueness(Uniqueness());

            return(Db.bidirectionalTraversalDescription().startSide(@base.Expand(_expander).evaluator(toDepth(_maxDepth / 2))).endSide(@base.Expand(_expander.reverse()).evaluator(toDepth(_maxDepth - _maxDepth / 2))).traverse(start, end));
        }
Beispiel #6
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void testTraverseRelationshipsWithStartNodeNotIncluded()
        public virtual void TestTraverseRelationshipsWithStartNodeNotIncluded()
        {
            using (Transaction transaction = BeginTx())
            {
                TraversalDescription traversal = GraphDb.traversalDescription().evaluator(excludeStartPosition());
                assertEquals(1, Iterables.count(traversal.Traverse(Node("1")).relationships()));
            }
        }
Beispiel #7
0
 private void Execute(TraversalDescription traversal, Uniqueness uniqueness)
 {
     using (Transaction transaction = BeginTx())
     {
         Traverser traverser = traversal.Uniqueness(uniqueness).traverse(Node("1"));
         assertNotEquals("empty traversal", 0, Iterables.count(traverser));
     }
 }
 private void TestCIsReturnedOnDepthTwo(TraversalDescription description)
 {
     using (Transaction transaction = BeginTx())
     {
         description = description.Expand(PathExpanders.forTypeAndDirection(_one, OUTGOING));
         int i = 0;
         foreach (Path position in description.Traverse(Node("A")))
         {
             assertEquals(i++, position.Length());
         }
     }
 }
Beispiel #9
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void traverseThroughNodeWithLoop()
        public virtual void TraverseThroughNodeWithLoop()
        {
            /*
             * (a)-->(b)-->(c)-->(d)-->(e)
             *             /  \ /  \
             *             \__/ \__/
             */

            CreateGraph("a TO b", "b TO c", "c TO c", "c TO d", "d TO d", "d TO e");

            using (Transaction tx = BeginTx())
            {
                Node a = GetNodeWithName("a");
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final org.neo4j.graphdb.Node e = getNodeWithName("e");
                Node                 e              = GetNodeWithName("e");
                Evaluator            onlyEndNode    = path => Evaluation.ofIncludes(path.endNode().Equals(e));
                TraversalDescription basicTraverser = GraphDb.traversalDescription().evaluator(onlyEndNode);
                ExpectPaths(basicTraverser.Traverse(a), "a,b,c,d,e");
                ExpectPaths(basicTraverser.Uniqueness(Uniqueness.RELATIONSHIP_PATH).traverse(a), "a,b,c,d,e", "a,b,c,c,d,e", "a,b,c,d,d,e", "a,b,c,c,d,d,e");
                tx.Success();
            }
        }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void shouldGetStartNodeWhenAtIsZeroBreadthFirst()
        public virtual void ShouldGetStartNodeWhenAtIsZeroBreadthFirst()
        {
            TraversalDescription description = GraphDb.traversalDescription().breadthFirst().evaluator(Evaluators.atDepth(0));

            ExpectNodes(description.Traverse(GetNodeWithName("2")), "2");
        }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void shouldGetCorrectNodesAtDepthZero()
        public virtual void ShouldGetCorrectNodesAtDepthZero()
        {
            TraversalDescription description = GraphDb.traversalDescription().evaluator(Evaluators.fromDepth(0)).evaluator(Evaluators.toDepth(0));

            ExpectNodes(description.Traverse(GetNodeWithName("6")), "6");
        }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void shouldGetCorrectNodeAtDepthOne()
        public virtual void ShouldGetCorrectNodeAtDepthOne()
        {
            TraversalDescription description = GraphDb.traversalDescription().evaluator(Evaluators.atDepth(1));

            ExpectNodes(description.Traverse(GetNodeWithName("6")), "5");
        }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void shouldGetSecondNodeWhenFromToIsTwoBreadthFirst()
        public virtual void ShouldGetSecondNodeWhenFromToIsTwoBreadthFirst()
        {
            TraversalDescription description = GraphDb.traversalDescription().breadthFirst().evaluator(Evaluators.fromDepth(2)).evaluator(Evaluators.toDepth(2));

            ExpectNodes(description.Traverse(GetNodeWithName("5")), "2");
        }
 private void ShouldGetBothNodesOnDepthOne(TraversalDescription description)
 {
     description = description.Evaluator(atDepth(1));
     ExpectNodes(description.Traverse(GetNodeWithName("3")), "1", "2");
 }