Beispiel #1
0
        public void VertexWithIdLocalBothEKnowsCreatedLimit1()
        {
            using (GraphViewCommand command = new GraphViewCommand(graphConnection))
            {
                string joshVertexId = this.ConvertToVertexId(command, "josh");

                command.OutputFormat = OutputFormat.GraphSON;
                GraphTraversal2 traversal = command.g().V(joshVertexId).Local(GraphTraversal2.__().BothE("knows", "created").Limit(1));

                List <string> result        = traversal.Next();
                dynamic       dynamicResult = JsonConvert.DeserializeObject <dynamic>(result.FirstOrDefault());

                Assert.AreEqual(1, dynamicResult.Count);

                dynamic edge       = dynamicResult[0];
                string  edgeLabel  = edge["label"].ToString();
                double  edgeWeight = double.Parse(edge["properties"]["weight"].ToString());

                Assert.IsTrue(edgeLabel.Equals("created") || edgeLabel.Equals("knows"));
                Assert.IsTrue(edgeWeight.Equals(1.0D) || edgeWeight.Equals(0.4D));
            }
        }
Beispiel #2
0
        public void ChooseIfPersonThenUnionOutLangOutAndOutNameElseInLabelGroupCount()
        {
            using (GraphViewCommand GraphViewCommand = new GraphViewCommand(graphConnection))
            {
                Assert.Fail();
                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);
            }
        }
Beispiel #3
0
        public void DedupInsideBy()
        {
            using (GraphViewCommand GraphViewCommand = new GraphViewCommand(graphConnection))
            {
                // TODO: Deserialize fold() result
                // The result in graphson is "[{{\"label\": \"person\"}: [0.5, 1, 0.4, 0.2], {\"label\": \"software\"}: [0.4, 0.2, 1]}]",
                // which cannot be deserialized by Newtonsoft.
                // The exception Newtonsoft.Json.JsonReaderException: Invalid property identifier character: {. Path '[0]', line 1, position 2.
                var traversal = GraphViewCommand.g().V()
                                .Group()
                                .By("label")
                                .By(GraphTraversal2.__().BothE()
                                    .Values("weight")
                                    .Dedup()
                                    .Fold());
                var result = traversal.Next();

                Assert.AreEqual(2, result.Count());
                //CollectionAssert.AreEqual(new double[] { 0.2, 0.4, 1.0}, result["software"]);
                //CollectionAssert.AreEqual(new double[] { 0.2, 0.4, 0.5, 1.0 }, result["person"]);
            }
        }
Beispiel #4
0
        public void get_g_V_localXbothE_weight_foldX_order_byXsumXlocalX_decrX()
        {
            using (GraphViewCommand command = new GraphViewCommand(graphConnection))
            {
                command.OutputFormat = OutputFormat.GraphSON;
                GraphTraversal2 traversal = command.g().V().Local(GraphTraversal2.__().BothE().Values("weight").Fold()).Order().By(GraphTraversal2.__().Sum(GremlinKeyword.Scope.Local), GremlinKeyword.Order.Decr);
                dynamic         results   = JsonConvert.DeserializeObject <dynamic>(traversal.FirstOrDefault());

                List <double> ans = new List <double>();
                foreach (dynamic result in results)
                {
                    double sum = 0;
                    foreach (dynamic num in result)
                    {
                        sum += double.Parse(num.ToString());
                    }
                    ans.Add(sum);
                }

                CheckOrderedResults(new [] { 2.4, 1.9, 1.0, 1.0, 0.5, 0.2 }, ans);
            }
        }
Beispiel #5
0
        public void get_g_V_repeatXboth_simplePathX_timesX3X_path()
        {
            using (GraphViewCommand command = new GraphViewCommand(graphConnection))
            {
                command.OutputFormat = OutputFormat.GraphSON;
                GraphTraversal2 traversal = command.g().V().Repeat(GraphTraversal2.__().Both().SimplePath()).Times(3).Path();
                dynamic         results   = JsonConvert.DeserializeObject <dynamic>(traversal.FirstOrDefault());

                Assert.AreEqual(18, results.Count);

                foreach (dynamic result in results)
                {
                    HashSet <string> set = new HashSet <string>();
                    foreach (dynamic step in result["objects"])
                    {
                        set.Add(step["id"].ToString());
                    }
                    Assert.AreEqual(4, set.Count);
                    set.Clear();
                }
            }
        }
Beispiel #6
0
        public void VerticesAsAOutCreatedAsBWhereAndAsBInNotAsAOutCreatedHasNameRippleSelectAB()
        {
            using (GraphViewCommand graphCommand = new GraphViewCommand(graphConnection))
            {
                graphCommand.OutputFormat = OutputFormat.GraphSON;

                GraphTraversal2 traversal = graphCommand.g().V().As("a")
                                            .Out("created").As("b")
                                            .Where(GraphTraversal2.__().And(
                                                       GraphTraversal2.__().As("b")
                                                       .In(),
                                                       GraphTraversal2.__().Not(
                                                           GraphTraversal2.__().As("a")
                                                           .Out("created")
                                                           .Has("name", "ripple"))))
                                            .Select("a", "b");

                List <string> result        = traversal.Next();
                dynamic       dynamicResult = JsonConvert.DeserializeObject <dynamic>(result.FirstOrDefault());

                Assert.AreEqual(2, dynamicResult.Count);
                List <string> ans = new List <string>();
                foreach (dynamic temp in dynamicResult)
                {
                    ans.Add("a," + temp["a"]["id"].ToString() + ";b," + temp["b"]["id"].ToString());
                }
                string markoId = this.ConvertToVertexId(graphCommand, "marko");
                string lopId   = this.ConvertToVertexId(graphCommand, "lop");
                string peterId = this.ConvertToVertexId(graphCommand, "peter");

                List <string> expected = new List <string>
                {
                    "a," + markoId + ";b," + lopId,
                    "a," + peterId + ";b," + lopId,
                };
                CheckUnOrderedResults(expected, ans);
            }
        }
Beispiel #7
0
        public void DedupByAnonymousTraversal()
        {
            using (GraphViewCommand GraphViewCommand = new GraphViewCommand(graphConnection))
            {
                // TODO: GremlinOrderOp.ModulateBy() is not implemented

                var traversal = GraphViewCommand.g().V()
                                .Both()
                                .Both()
                                .Dedup()
                                .By(GraphTraversal2.__()
                                    .OutE()
                                    .Count())
                                .Values("name");
                var result = traversal.Next();

                Assert.AreEqual(4, result.Count());
                Assert.IsTrue(result.Contains("josh"));
                Assert.IsTrue(result.Contains("peter"));
                Assert.IsTrue(result.Contains("marko"));
                Assert.IsTrue(result.Contains("vadas") || result.Contains("ripple") || result.Contains("lop"));
            }
        }
Beispiel #8
0
        public void HasLabelPersonProjectABByOutECountByAge()
        {
            using (GraphViewCommand graphCommand = new GraphViewCommand(graphConnection))
            {
                graphCommand.OutputFormat = OutputFormat.GraphSON;

                GraphTraversal2 traversal = graphCommand.g().V().HasLabel("person")
                                            .Project("a", "b")
                                            .By(GraphTraversal2.__().OutE().Count())
                                            .By("age");

                dynamic result = JsonConvert.DeserializeObject <dynamic>(traversal.FirstOrDefault());

                Assert.AreEqual(3, (int)result[0]["a"]);
                Assert.AreEqual(29, (int)result[0]["b"]);
                Assert.AreEqual(0, (int)result[1]["a"]);
                Assert.AreEqual(27, (int)result[1]["b"]);
                Assert.AreEqual(2, (int)result[2]["a"]);
                Assert.AreEqual(32, (int)result[2]["b"]);
                Assert.AreEqual(1, (int)result[3]["a"]);
                Assert.AreEqual(35, (int)result[3]["b"]);
            }
        }
Beispiel #9
0
        public void ChooseIfPersonThenUnionOutLangOutAndOutNameElseInLabelGroupCount()
        {
            using (GraphViewCommand command = new GraphViewCommand(graphConnection))
            {
                command.OutputFormat = OutputFormat.GraphSON;
                GraphTraversal2 traversal = command.g().V().Choose(
                    GraphTraversal2.__().Label().Is("person"),
                    GraphTraversal2.__().Union(
                        GraphTraversal2.__().Out().Values("lang"),
                        GraphTraversal2.__().Out().Values("name")),
                    GraphTraversal2.__().In().Label())
                                            .GroupCount();

                dynamic result = JsonConvert.DeserializeObject <dynamic>(traversal.Next().FirstOrDefault());

                Assert.AreEqual(4, (int)result[0]["java"]);
                Assert.AreEqual(1, (int)result[0]["ripple"]);
                Assert.AreEqual(4, (int)result[0]["person"]);
                Assert.AreEqual(1, (int)result[0]["vadas"]);
                Assert.AreEqual(1, (int)result[0]["josh"]);
                Assert.AreEqual(3, (int)result[0]["lop"]);
            }
        }
Beispiel #10
0
        public void UnionRepeatUnionOutCreatedInCreatedTimes2RepeatUnionInCreatedOutCreatedTimes2LabelGroupCount()
        {
            using (GraphViewCommand GraphViewCommand = new GraphViewCommand(graphConnection))
            {
                var traversal = GraphViewCommand.g().V().Union(
                    GraphTraversal2.__().Repeat(
                        GraphTraversal2.__().Union(
                            GraphTraversal2.__().Out("created"),
                            GraphTraversal2.__().In("created"))).Times(2),
                    GraphTraversal2.__().Repeat(
                        GraphTraversal2.__().Union(
                            GraphTraversal2.__().In("created"),
                            GraphTraversal2.__().Out("created"))).Times(2))
                                .Label().Group().By(GraphTraversal2.__().Count());

                var result = traversal.Next();

                // Assertions missing, revisit this once we actually get the above traversal to work.
                //assertEquals(12l, groupCount.get("software").longValue());
                //assertEquals(20l, groupCount.get("person").longValue());
                //assertEquals(2, groupCount.size());
            }
        }
Beispiel #11
0
        public void HasLabelSoftwareAsNameAsLanguageAsCreatorsSelectNameLanguageCreatorsByNameByLangByInCreatedValuesNameFoldOrderLocal()
        {
            using (GraphViewCommand graphCommand = new GraphViewCommand(graphConnection))
            {
                graphCommand.OutputFormat = OutputFormat.GraphSON;
                var traversal = graphCommand.g().V().HasLabel("software").As("name").As("language").As("creators").Select("name", "language", "creators").By("name").By("lang").
                                By(GraphTraversal2.__().In("created").Values("name").Fold().Order(/*local*/));

                // TODO: Implement this once above bugs are fixed.

                ////for (int i = 0; i < 2; i++)
                ////{
                ////    assertTrue(traversal.hasNext());
                ////    final Map< String, Object > map = traversal.next();
                ////    assertEquals(3, map.size());
                ////    final List< String > creators = (List<String>)map.get("creators");
                ////    final boolean isLop = "lop".equals(map.get("name")) && "java".equals(map.get("language")) &&
                ////            creators.size() == 3 && creators.get(0).equals("josh") && creators.get(1).equals("marko") && creators.get(2).equals("peter");
                ////    final boolean isRipple = "ripple".equals(map.get("name")) && "java".equals(map.get("language")) &&
                ////            creators.size() == 1 && creators.get(0).equals("josh");
                ////    assertTrue(isLop ^ isRipple);
                ////}
            }
        }
Beispiel #12
0
        public void get_g_V_group_byXlabelX_byXname_order_byXdecrX_foldX()
        {
            using (GraphViewCommand command = new GraphViewCommand(graphConnection))
            {
                command.OutputFormat = OutputFormat.GraphSON;
                GraphTraversal2 traversal = command.g().V().Group().By("label").By(GraphTraversal2.__().Values("name").Order().By(GremlinKeyword.Order.Decr).Fold());
                dynamic         results   = JsonConvert.DeserializeObject <dynamic>(traversal.FirstOrDefault());

                List <string> softwareList = new List <string>();
                foreach (string item in results[0]["software"])
                {
                    softwareList.Add(item);
                }

                List <string> personList = new List <string>();
                foreach (string item in results[0]["person"])
                {
                    personList.Add(item);
                }

                CheckOrderedResults(new [] { "ripple", "lop" }, softwareList);
                CheckOrderedResults(new [] { "vadas", "peter", "marko", "josh" }, personList);
            }
        }
Beispiel #13
0
        public void VerticesAsAOutCreatedAsBInCreatedAsCBothKnowsBothKnowsAsDWhereCNotEqAOrEqDSelectABCD()
        {
            using (GraphViewCommand graphCommand = new GraphViewCommand(graphConnection))
            {
                graphCommand.OutputFormat = OutputFormat.GraphSON;

                var traversal = graphCommand.g().V().As("a")
                                .Out("created").As("b")
                                .In("created").As("c")
                                .Both("knows").Both("knows").As("d")
                                .Where(
                    GraphTraversal2.__().Where("c", Predicate.not(Predicate.eq("a")))
                    .And()
                    .Where("c", Predicate.not(Predicate.eq("d"))))
                                .Select("a", "b", "c", "d");

                var     result        = traversal.Next();
                dynamic dynamicResult = JsonConvert.DeserializeObject <dynamic>(result.FirstOrDefault());

                Assert.AreEqual(4, dynamicResult.Count);

                // Skipping this validation until we can fix the multi-key select.
            }
        }
Beispiel #14
0
        public void VerticesOrOutEKnowsHasLabelSoftwareOrHasAgeGTE35ValuesName()
        {
            using (GraphViewCommand graphCommand = new GraphViewCommand(graphConnection))
            {
                GraphTraversal2 traversal = graphCommand.g().V()
                                            .Or(
                    GraphTraversal2.__()
                    .OutE("knows"),
                    GraphTraversal2.__()
                    .Where(
                        GraphTraversal2.__()
                        .Or(
                            GraphTraversal2.__()
                            .Has("label", "software"),
                            GraphTraversal2.__()
                            .Has("age", Predicate.gte(35)))))
                                            .Values("name");

                List <string> result = traversal.Next();
                CheckUnOrderedResults(new List <string> {
                    "marko", "ripple", "lop", "peter"
                }, result);
            }
        }
Beispiel #15
0
 public void get_g_V_group_byXlabelX_byXbothE_groupXaX_byXlabelX_byXweight_sumX_weight_sumX()
 {
     using (GraphViewCommand command = new GraphViewCommand(graphConnection))
     {
         command.OutputFormat = OutputFormat.GraphSON;
         GraphTraversal2 traversal =
             command.g()
             .V()
             .Group()
             .By("label")
             .By(
                 GraphTraversal2.__()
                 .BothE()
                 .Group("a")
                 .By("label")
                 .By(GraphTraversal2.__().Values("weight").Sum())
                 .Values("weight")
                 .Sum());
         dynamic results = JsonConvert.DeserializeObject <dynamic>(traversal.FirstOrDefault());
         Assert.AreEqual(1, results.Count);
         Assert.AreEqual(2.0, double.Parse(results[0]["software"].ToString()));
         Assert.AreEqual(5.0, double.Parse(results[0]["person"].ToString()));
     }
 }
Beispiel #16
0
        public void get_g_V_hasLabelXsoftwareX_group_byXnameX_byXbothE_weight_maxX()
        {
            using (GraphViewCommand command = new GraphViewCommand(graphConnection))
            {
                command.OutputFormat = OutputFormat.GraphSON;
                GraphTraversal2 traversal = command.g().V().HasLabel("software").Group().By("name").By(GraphTraversal2.__().BothE().Values("weight").Max());
                dynamic         results   = JsonConvert.DeserializeObject <dynamic>(traversal.FirstOrDefault());

                foreach (dynamic result in results)
                {
                    Assert.IsTrue(1.0 == double.Parse(result["ripple"].ToString()) && 0.4 == double.Parse(result["lop"].ToString()));
                }
            }
        }
Beispiel #17
0
        public void get_g_V_hasXlangX_group_byXlangX_byXcountX()
        {
            using (GraphViewCommand command = new GraphViewCommand(graphConnection))
            {
                command.OutputFormat = OutputFormat.GraphSON;
                GraphTraversal2 traversal = command.g().V().Has("lang").Group().By("lang").By(GraphTraversal2.__().Count());
                dynamic         results   = JsonConvert.DeserializeObject <dynamic>(traversal.FirstOrDefault());

                Assert.AreEqual(1, results.Count);
                Assert.AreEqual(2, int.Parse(results[0]["java"].ToString()));
            }
        }
Beispiel #18
0
        public void get_g_V_repeatXunionXoutXknowsX_groupXaX_byXageX__outXcreatedX_groupXbX_byXnameX_byXcountXX_groupXaX_byXnameXX_timesX2X_capXa_bX()
        {
            using (GraphViewCommand command = new GraphViewCommand(graphConnection))
            {
                command.OutputFormat = OutputFormat.GraphSON;
                GraphTraversal2 traversal =
                    command.g()
                    .V()
                    .Repeat(GraphTraversal2.__()
                            .Union(GraphTraversal2.__().Out("knows").Group("a").By("age"),
                                   GraphTraversal2.__().Out("created").Group("b").By("name").By(GraphTraversal2.__().Count()))
                            .Group("a").By("name"))
                    .Times(2)
                    .Cap("a", "b");
                dynamic results = JsonConvert.DeserializeObject <dynamic>(traversal.FirstOrDefault());

                dynamic mapA = results[0]["a"];
                Assert.AreEqual(1, mapA[32].Count);
                Assert.AreEqual(this.ConvertToVertexId(command, "josh"), mapA[32][0]["id"].ToString());
                Assert.AreEqual(1, mapA[27].Count);
                Assert.AreEqual(this.ConvertToVertexId(command, "vadas"), mapA[27][0]["id"].ToString());
                Assert.AreEqual(2, mapA["ripple"].Count);
                Assert.AreEqual(this.ConvertToVertexId(command, "ripple"), mapA["ripple"][0]["id"].ToString());
                Assert.AreEqual(this.ConvertToVertexId(command, "ripple"), mapA["ripple"][1]["id"].ToString());
                Assert.AreEqual(1, mapA["vadas"].Count);
                Assert.AreEqual(this.ConvertToVertexId(command, "vadas"), mapA["vadas"][0]["id"].ToString());
                Assert.AreEqual(1, mapA["josh"].Count);
                Assert.AreEqual(this.ConvertToVertexId(command, "josh"), mapA["josh"][0]["id"].ToString());
                Assert.AreEqual(4, mapA["lop"].Count);
                Assert.AreEqual(this.ConvertToVertexId(command, "lop"), mapA["lop"][0]["id"].ToString());
                Assert.AreEqual(this.ConvertToVertexId(command, "lop"), mapA["lop"][1]["id"].ToString());
                Assert.AreEqual(this.ConvertToVertexId(command, "lop"), mapA["lop"][2]["id"].ToString());
                Assert.AreEqual(this.ConvertToVertexId(command, "lop"), mapA["lop"][3]["id"].ToString());

                dynamic mapB = results[0]["b"];
                Assert.AreEqual(2, int.Parse(mapB["ripple"].ToString()));
                Assert.AreEqual(4, int.Parse(mapB["lop"].ToString()));
            }
        }
Beispiel #19
0
        public void get_g_V_repeatXout_groupXaX_byXnameX_byXcountX_timesX2X_capXaX()
        {
            using (GraphViewCommand command = new GraphViewCommand(graphConnection))
            {
                command.OutputFormat = OutputFormat.GraphSON;
                GraphTraversal2 traversal = command.g().V().Repeat(GraphTraversal2.__().Out().Group("a").By("name").By(GraphTraversal2.__().Count())).Times(2).Cap("a");
                dynamic         results   = JsonConvert.DeserializeObject <dynamic>(traversal.FirstOrDefault());

                Assert.AreEqual(1, results.Count);
                Assert.AreEqual(2, int.Parse(results[0]["ripple"].ToString()));
                Assert.AreEqual(1, int.Parse(results[0]["vadas"].ToString()));
                Assert.AreEqual(1, int.Parse(results[0]["josh"].ToString()));
                Assert.AreEqual(4, int.Parse(results[0]["lop"].ToString()));
            }
        }
Beispiel #20
0
        public void get_g_V_both_groupCountXaX_byXlabelX_asXbX_barrier_whereXselectXaX_selectXsoftwareX_isXgtX2XXX_selectXbX_name()
        {
            using (GraphViewCommand command = new GraphViewCommand(graphConnection))
            {
                GraphTraversal2 traversal = command.g().V().Both().GroupCount("a").By("label").As("b").Barrier().Where(GraphTraversal2.__().Select("a").Select("software").Is(Predicate.gt(2))).Select("b").Values("name");
                List <string>   results   = traversal.Next();

                CheckUnOrderedResults(new [] { "lop", "lop", "lop", "vadas", "josh", "josh", "josh", "marko", "marko", "marko", "peter", "ripple" }, results);
            }
        }
Beispiel #21
0
        public void VerticesUntilOutOutRepeatInAsAInAsBSelectABByName()
        {
            using (GraphViewCommand graphCommand = new GraphViewCommand(graphConnection))
            {
                var traversal = graphCommand.g().V().Until(GraphTraversal2.__().Out().Out()).Repeat(GraphTraversal2.__().In().As("a").In().As("b")).Select("a", "b").By("name");

                // Skipping asserts until we fix the above bug.

                ////Map<String, String> result = traversal.next();
                ////assertEquals(2, result.size());
                ////assertEquals("josh", result.get("a"));
                ////assertEquals("marko", result.get("b"));
                ////result = traversal.next();
                ////assertEquals(2, result.size());
                ////assertEquals("josh", result.get("a"));
                ////assertEquals("marko", result.get("b"));
            }
        }
Beispiel #22
0
        public void get_g_V_asXaX_out_asXaX_out_asXaX_selectXaX_byXunfold_valuesXnameX_foldX_tailXlocalX()
        {
            using (GraphViewCommand command = new GraphViewCommand(graphConnection))
            {
                GraphTraversal2 traversal = command.g().V().As("a").Out().As("a").Out().As("a").Select("a").By(GraphTraversal2.__().Unfold().Values("name").Fold()).Tail(GremlinKeyword.Scope.Local);
                List <string>   results   = traversal.Next();

                CheckUnOrderedResults(new[] { "ripple", "lop" }, results);
            }
        }
Beispiel #23
0
 public void get_g_V_hasXname_markoX_propertyXfriendWeight_outEXknowsX_weight_sum__acl_privateX()
 {
     using (GraphViewCommand command = new GraphViewCommand(graphConnection))
     {
         command.OutputFormat = OutputFormat.GraphSON;
         GraphTraversal2 traversal = command.g().V().Has("name", "marko").Property("friendWeight", GraphTraversal2.__().OutE("knows").Values("weight").Sum(), "acl", "private");
         dynamic         results   = JsonConvert.DeserializeObject <dynamic>(traversal.FirstOrDefault());
     }
 }
Beispiel #24
0
        public void VerticesAsAOutKnowsAsBLocalSelectABByName()
        {
            using (GraphViewCommand graphCommand = new GraphViewCommand(graphConnection))
            {
                var traversal = graphCommand.g().V().As("a").Out("knows").As("b").Local(GraphTraversal2.__().Select("a", "b").By("name"));

                // Skipping asserts until we fix the above bugs.
            }
        }
Beispiel #25
0
 public void get_g_VX1X_addVXanimalX_propertyXage_selectXaX_byXageXX_propertyXname_puppyX()
 {
     using (GraphViewCommand command = new GraphViewCommand(graphConnection))
     {
         command.OutputFormat = OutputFormat.GraphSON;
         string          markoId   = this.ConvertToVertexId(command, "marko");
         GraphTraversal2 traversal = command.g().V(markoId).As("a").AddV("animal").Property("age", GraphTraversal2.__().Select("a").By("age")).Property("name", "puppy");
         dynamic         results   = JsonConvert.DeserializeObject <dynamic>(traversal.FirstOrDefault());
     }
 }
Beispiel #26
0
        public void get_g_V_unionXrepeatXoutX_timesX2X_groupCountXmX_byXlangXX__repeatXinX_timesX2X_groupCountXmX_byXnameXX_capXmX()
        {
            using (GraphViewCommand command = new GraphViewCommand(graphConnection))
            {
                command.OutputFormat = OutputFormat.GraphSON;
                GraphTraversal2 traversal = command.g().V().Union(GraphTraversal2.__().Repeat(GraphTraversal2.__().Out()).Times(2).GroupCount("m").By("lang"), GraphTraversal2.__().Repeat(GraphTraversal2.__().In()).Times(2).GroupCount("m").By("name")).Cap("m");
                dynamic         results   = JsonConvert.DeserializeObject <dynamic>(traversal.FirstOrDefault());

                Assert.AreEqual(2, int.Parse(results[0]["java"].ToString()));
                Assert.AreEqual(2, int.Parse(results[0]["marko"].ToString()));
            }
        }
Beispiel #27
0
        public void get_g_V_asXaX_out_asXaX_out_asXaX_selectXaX_byXlimitXlocal_0XX_tailXlocal_1X()
        {
            using (GraphViewCommand command = new GraphViewCommand(graphConnection))
            {
                GraphTraversal2 traversal = command.g().V().As("a").Out().As("a").Out().As("a").Select("a").By(GraphTraversal2.__().Limit(GremlinKeyword.Scope.Local, 0)).Tail(GremlinKeyword.Scope.Local, 1);
                List <string>   results   = traversal.Next();

                Assert.AreEqual(0, results.Count);
            }
        }
Beispiel #28
0
 public void get_g_V_unionXoutXknowsX__outXcreatedX_inXcreatedXX_groupCount_selectXvaluesX_unfold_sum()
 {
     using (GraphViewCommand command = new GraphViewCommand(graphConnection))
     {
         GraphTraversal2 traversal = command.g().V().Union(GraphTraversal2.__().Out("knows"), GraphTraversal2.__().Out("created").In("created")).GroupCount().Select(GremlinKeyword.Column.Values).Unfold().Sum();
         List <string>   results   = traversal.Next();
         Assert.AreEqual(12, int.Parse(results[0]));
     }
 }
Beispiel #29
0
        public void HasVertexIdTimes2RepeatOutValuesName()
        {
            using (GraphViewCommand command = new GraphViewCommand(graphConnection))
            {
                string          vertexId  = this.ConvertToVertexId(command, "marko");
                GraphTraversal2 traversal = command.g().V().HasId(vertexId).Times(2).Repeat(GraphTraversal2.__().Out()).Values("name");

                List <string> results = traversal.Next();
                CheckUnOrderedResults(new string[] { "lop", "ripple" }, results);
            }
        }
Beispiel #30
0
        public void VerticesAsAOutECreatedAsBInVAsCInCreatedAsDWhereALtBOrGtCAndNeqDByAgeByWeightByInCreatedValuesAgeMinSelectACDByName()
        {
            using (GraphViewCommand graphCommand = new GraphViewCommand(graphConnection))
            {
                graphCommand.OutputFormat = OutputFormat.GraphSON;

                GraphTraversal2 traversal = graphCommand.g().V().As("a").OutE("created").As("b").InV().As("c").In("created").As("d").Where("a", Predicate.lt("b").Or(Predicate.gt("c")).And(Predicate.neq("d"))).By("age").By("weight").By(GraphTraversal2.__().In("created").Values("age").Min()).Select("a", "c", "d").By("name");

                List <string> result        = traversal.Next();
                dynamic       dynamicResult = JsonConvert.DeserializeObject <dynamic>(result.FirstOrDefault());

                Assert.AreEqual(4, dynamicResult.Count);
                List <string> ans = new List <string>();
                foreach (dynamic temp in dynamicResult)
                {
                    ans.Add("a," + temp["a"].ToString() + ";c," + temp["c"].ToString() + ";d," + temp["d"].ToString());
                }

                List <string> expected = new List <string>
                {
                    "a,josh;c,lop;d,marko",
                    "a,josh;c,lop;d,peter",
                    "a,peter;c,lop;d,marko",
                    "a,peter;c,lop;d,josh",
                };

                CheckUnOrderedResults(expected, ans);
            }
        }