Example #1
0
 public void DedupLocalMultipleLabels()
 {
     using (GraphViewCommand GraphViewCommand = new GraphViewCommand(graphConnection))
     {
         GraphViewCommand.OutputFormat = OutputFormat.GraphSON;
         var traversal = GraphViewCommand.g().V()
                         .Out()
                         .As("x")
                         .In()
                         .As("y")
                         .Select("x", "y")
                         .By("name")
                         .Fold()
                         .Dedup(GremlinKeyword.Scope.Local, "x", "y")
                         .Unfold();
         dynamic       result   = JsonConvert.DeserializeObject <dynamic>(traversal.Next().FirstOrDefault());
         List <string> expected = new List <string>
         {
             "lop,marko",
             "lop,josh",
             "lop,peter",
             "vadas,marko",
             "josh,marko",
             "ripple,josh"
         };
         AbstractGremlinTest.CheckUnOrderedResults(expected, ((JArray)result).Select(p => string.Format("{0},{1}", p["x"], p["y"])).ToList());
     }
 }
Example #2
0
        public void ConstantWithVertex()
        {
            using (GraphViewCommand GraphViewCommand = new GraphViewCommand(graphConnection))
            {
                var traversal = GraphViewCommand.g().V().Constant(123);
                var result    = traversal.Next();

                AbstractGremlinTest.CheckUnOrderedResults(Enumerable.Repeat("123", 6), result);
            }
        }
Example #3
0
        public void ConstantWithChoose()
        {
            using (GraphViewCommand GraphViewCommand = new GraphViewCommand(graphConnection))
            {
                var traversal = GraphViewCommand.g().V().Choose(
                    GraphTraversal.__().HasLabel("person"),
                    GraphTraversal.__().Values("name"),
                    GraphTraversal.__().Constant("inhuman"));
                var result = traversal.Next();

                AbstractGremlinTest.CheckUnOrderedResults(new string[] { "marko", "vadas", "inhuman", "josh", "inhuman", "peter" }, result);
            }
        }
Example #4
0
        public void DedupWithBoth()
        {
            using (GraphViewCommand GraphViewCommand = new GraphViewCommand(graphConnection))
            {
                var traversal = GraphViewCommand.g().V()
                                .Both()
                                .Dedup()
                                .Values("name");
                var result = traversal.Next();

                AbstractGremlinTest.CheckUnOrderedResults(new string[] { "vadas", "josh", "lop", "marko", "peter", "ripple" }, result);
            }
        }
Example #5
0
        public void DedupLargeAmountStrings()
        {
            using (GraphViewCommand command = new GraphViewCommand(graphConnection))
            {
                GraphTraversal2 traversal = command.g().V()
                                            .Both()
                                            .Both()
                                            .Values("name")
                                            .Dedup();
                List <string> result = traversal.Next();

                AbstractGremlinTest.CheckUnOrderedResults(new string[] { "vadas", "josh", "lop", "marko", "peter", "ripple" }, result);
            }
        }
Example #6
0
        public void AndAsInfixNotation()
        {
            using (GraphViewCommand GraphViewCommand = new GraphViewCommand(graphConnection))
            {
                var traversal = GraphViewCommand.g().V()
                                .And(
                    GraphTraversal2.__().OutE(),
                    GraphTraversal2.__().HasLabel("person").And().Has("age", Predicate.gte(32)))
                                .Values("name");
                var result = traversal.Next();

                AbstractGremlinTest.CheckUnOrderedResults(new string[] { "josh", "peter" }, result);
            }
        }
Example #7
0
        public void AndWithParameters()
        {
            using (GraphViewCommand GraphViewCommand = new GraphViewCommand(graphConnection))
            {
                var traversal = GraphViewCommand.g().V()
                                .And(
                    GraphTraversal2.__().Has("age", Predicate.gt(27)),
                    GraphTraversal2.__().OutE().Count().Is(Predicate.gte(2)))
                                .Values("name");
                var result = traversal.Next();

                AbstractGremlinTest.CheckUnOrderedResults(new string[] { "marko", "josh" }, result);
            }
        }
Example #8
0
        public void CoalesceWithTwoTraversals()
        {
            using (GraphViewCommand command = new GraphViewCommand(graphConnection))
            {
                GraphTraversal2 traversal = command.g().V()
                                            .HasId(this.ConvertToVertexId(command, "marko"))
                                            .Coalesce(
                    GraphTraversal2.__().Out("knows"),
                    GraphTraversal2.__().Out("created"))
                                            .Values("name");
                List <string> result = traversal.Next();

                AbstractGremlinTest.CheckUnOrderedResults(new string[] { "josh", "vadas" }, result);
            }
        }
Example #9
0
        public void CoalesceWithTraversalsInDifferentOrder()
        {
            using (GraphViewCommand GraphViewCommand = new GraphViewCommand(graphConnection))
            {
                var traversal = GraphViewCommand.g().V()
                                .HasId(this.ConvertToVertexId(GraphViewCommand, "marko"))
                                .Coalesce(
                    GraphTraversal.__().Out("created"),
                    GraphTraversal.__().Out("knows"))
                                .Values("name");
                var result = traversal.Next();

                AbstractGremlinTest.CheckUnOrderedResults(new string[] { "lop" }, result);
            }
        }
Example #10
0
        public void DedupWithGroupCount()
        {
            using (GraphViewCommand GraphViewCommand = new GraphViewCommand(graphConnection))
            {
                GraphViewCommand.OutputFormat = OutputFormat.Regular;
                var traversal = GraphViewCommand.g().V()
                                .GroupCount()
                                .Select(GremlinKeyword.Column.Values)
                                .Unfold()
                                .Dedup();
                var result = traversal.Next();

                AbstractGremlinTest.CheckUnOrderedResults(new string[] { "1" }, result);
            }
        }
Example #11
0
        public void get_g_V_chooseXlabelX_optionXblah__outXknowsXX_optionXbleep__outXcreatedXX_optionXnone__identityX_name()
        {
            using (GraphViewCommand GraphViewCommand = new GraphViewCommand(graphConnection))
            {
                var traversal = GraphViewCommand.g().V()
                                .Choose(GraphTraversal.__().Label())
                                .Option("blah", GraphTraversal.__().Out("knows"))
                                .Option("bleep", GraphTraversal.__().Out("created"))
                                .Option(GremlinKeyword.Pick.None, GraphTraversal.__().Identity())
                                .Values("name");
                var result = traversal.Next();

                AbstractGremlinTest.CheckUnOrderedResults(new [] { "marko", "vadas", "peter", "josh", "lop", "ripple" }, result);
            }
        }
Example #12
0
        public void UnionOutAndInVertices()
        {
            using (GraphViewCommand GraphViewCommand = new GraphViewCommand(graphConnection))
            {
                var traversal = GraphViewCommand.g().V().Union(
                    GraphTraversal.__().Out(),
                    GraphTraversal.__().In()).Values("name");

                var result         = traversal.Next();
                var expectedResult = new List <string>()
                {
                    "marko", "marko", "marko", "lop", "lop", "lop", "peter", "ripple", "josh", "josh", "josh", "vadas"
                };
                AbstractGremlinTest.CheckUnOrderedResults <string>(expectedResult, result);
            }
        }
Example #13
0
        public void DedupLocalScope()
        {
            using (GraphViewCommand GraphViewCommand = new GraphViewCommand(graphConnection))
            {
                var traversal = GraphViewCommand.g().V()
                                .Out()
                                .In()
                                .Values("name")
                                .Fold()
                                .Dedup(GremlinKeyword.Scope.Local)
                                .Unfold();
                var result = traversal.Next();

                AbstractGremlinTest.CheckUnOrderedResults(new string[] { "marko", "josh", "peter" }, result);
            }
        }
Example #14
0
        public void DedupWithGroupCount()
        {
            using (GraphViewCommand GraphViewCommand = new GraphViewCommand(graphConnection))
            {
                Assert.Fail();
                // TODO: Select("values") Not Implemented on GraphTraversal2

                var traversal = GraphViewCommand.g().V()
                                .GroupCount()
                                .Select("values")
                                .Unfold()
                                .Dedup();
                var result = traversal.Next();

                AbstractGremlinTest.CheckUnOrderedResults(new string[] { "1" }, result);
            }
        }
Example #15
0
        public void AndWithAs()
        {
            using (GraphViewCommand GraphViewCommand = new GraphViewCommand(graphConnection))
            {
                var traversal = GraphViewCommand.g().V()
                                .As("a")
                                .Out("knows")
                                .And()
                                .Out("created")
                                .In("created")
                                .As("a")
                                .Values("name");
                var result = traversal.Next();

                AbstractGremlinTest.CheckUnOrderedResults(new string[] { "marko" }, result);
            }
        }
Example #16
0
        public void ChooseIfPersonThenUnionOutLangOutAndOutNameElseInLabel()
        {
            using (GraphViewCommand GraphViewCommand = new GraphViewCommand(graphConnection))
            {
                var traversal = GraphViewCommand.g().V().Choose(
                    GraphTraversal.__().Label().Is("person"),
                    GraphTraversal.__().Union(
                        GraphTraversal.__().Out().Values("lang"),
                        GraphTraversal.__().Out().Values("name")),
                    GraphTraversal.__().In().Label());

                var result         = traversal.Next();
                var expectedResult = new List <string>()
                {
                    "lop", "lop", "lop", "ripple", "java", "java", "java", "java", "josh", "vadas", "person", "person", "person", "person"
                };
                AbstractGremlinTest.CheckUnOrderedResults <string>(expectedResult, result);
            }
        }
Example #17
0
        public void DedupWithOrder()
        {
            using (GraphViewCommand GraphViewCommand = new GraphViewCommand(graphConnection))
            {
                var traversal = GraphViewCommand.g().V()
                                .OutE()
                                .As("e")
                                .InV()
                                .As("v")
                                .Select("e")
                                .Order()
                                .By("weight", GremlinKeyword.Order.Incr)
                                .Select("v")
                                .Values("name")
                                .Dedup();
                var result = traversal.Next();

                AbstractGremlinTest.CheckUnOrderedResults(new string[] { "lop", "vadas", "josh", "ripple" }, result);
            }
        }
Example #18
0
        public void DedupMultipleLabels()
        {
            using (GraphViewCommand GraphViewCommand = new GraphViewCommand(graphConnection))
            {
                GraphViewCommand.OutputFormat = OutputFormat.GraphSON;
                var traversal = GraphViewCommand.g().V()
                                .As("a")
                                .Both()
                                .As("b")
                                .Dedup("a", "b")
                                .By("label")
                                .Select("a", "b");
                dynamic result = JsonConvert.DeserializeObject <dynamic>(traversal.Next().FirstOrDefault());
                Assert.AreEqual(3, result.Count);

                IEnumerable <string> resultInString = ((JArray)result).Select(d => string.Format("{0},{1}", (string)d["a"]["label"], (string)d["b"]["label"]));

                AbstractGremlinTest.CheckUnOrderedResults(new string[] { "person,person", "person,software", "software,person" }, resultInString);
            }
        }
Example #19
0
        public void HasVertexIdUnionOutAndOutRepeatTimes2()
        {
            using (GraphViewCommand GraphViewCommand = new GraphViewCommand(graphConnection))
            {
                string vertexId = this.ConvertToVertexId(GraphViewCommand, "marko");

                var traversal = GraphViewCommand.g().V().HasId(vertexId)
                                .Union(
                    GraphTraversal.__().Repeat(GraphTraversal.__().Out()).Times(2),
                    GraphTraversal.__().Out())
                                .Values("name");

                var result         = traversal.Next();
                var expectedResult = new List <string>()
                {
                    "lop", "lop", "ripple", "josh", "vadas"
                };
                AbstractGremlinTest.CheckUnOrderedResults <string>(expectedResult, result);
            }
        }
Example #20
0
        public void DedupLargeAmountVertexes()
        {
            using (GraphViewCommand GraphViewCommand = new GraphViewCommand(graphConnection))
            {
                GraphViewCommand.OutputFormat = OutputFormat.GraphSON;
                var traversal = GraphViewCommand.g().V()
                                .Both()
                                .Both()
                                .Dedup();
                dynamic result = JsonConvert.DeserializeObject <dynamic>(traversal.Next().FirstOrDefault());
                GraphViewCommand.OutputFormat = OutputFormat.Regular;

                var names = new List <string>();
                foreach (dynamic v in result)
                {
                    names.Add((string)v.properties.name[0].value);
                }

                AbstractGremlinTest.CheckUnOrderedResults(new string[] { "vadas", "josh", "lop", "marko", "peter", "ripple" }, names);
            }
        }
Example #21
0
        public void ChooseIfPersonThenUnionOutLangOutAndOutNameElseInLabelGroupCount()
        {
            using (GraphViewCommand GraphViewCommand = new GraphViewCommand(graphConnection))
            {
                var traversal = GraphViewCommand.g().V().Choose(
                    GraphTraversal2.__().Label().Is("person"),
                    GraphTraversal2.__().Union(
                        GraphTraversal2.__().Out().Values("lang"),
                        GraphTraversal2.__().Out().Values("name")),
                    GraphTraversal2.__().In().Label())
                                .Group().By(GraphTraversal2.__().Count());

                var result = traversal.Next();
                // ASIDE: Below Assertions are incorrect, revisit this once we actually get the above traversal to work.
                var expectedResult = new List <string>()
                {
                    "lop", "lop", "lop", "ripple", "java", "java", "java", "java", "josh", "vadas", "person", "person", "person", "person"
                };
                AbstractGremlinTest.CheckUnOrderedResults <string>(expectedResult, result);
            }
        }
Example #22
0
        public void DedupWithOrder()
        {
            using (GraphViewCommand GraphViewCommand = new GraphViewCommand(graphConnection))
            {
                // TODO: GremlinOrderOp.ModulateBy() is not implemented
                // TODO: GraphTraversal2.By(string key, GremlinKeyword.Order order) is not implemented

                var traversal = GraphViewCommand.g().V()
                                .OutE()
                                .As("e")
                                .InV()
                                .As("v")
                                .Select("e")
                                .Order()
                                .By("weight", GremlinKeyword.Order.Incr)
                                .Select("v")
                                .Values("name")
                                .Dedup();
                var result = traversal.Next();

                //AbstractGremlinTest.CheckUnOrderedResults(new string[] { "marko", "vadas", "josh", "peter" }, result);
                AbstractGremlinTest.CheckUnOrderedResults(new string[] { "lop", "vadas", "josh", "ripple" }, result);
            }
        }