public void SparqlDateTimeCompare(String x, String y) { IGraph g = new Graph(); INode dateTime1 = g.CreateLiteralNode(x, UriFactory.Create(XmlSpecsHelper.XmlSchemaDataTypeDateTime)); INode dateTime2 = g.CreateLiteralNode(y, UriFactory.Create(XmlSpecsHelper.XmlSchemaDataTypeDateTime)); SparqlOrderingComparer comparer = new SparqlOrderingComparer(); // Expected result is that x < y so return should be -1 Assert.AreEqual(-1, comparer.Compare(dateTime1, dateTime2)); // Thus inverse should give 1 Assert.AreEqual(1, comparer.Compare(dateTime2, dateTime1)); // Also both should compare equal to self Assert.AreEqual(0, comparer.Compare(dateTime1, dateTime1)); Assert.AreEqual(0, comparer.Compare(dateTime2, dateTime2)); }
public void NodesSortingSparqlOrder() { SparqlOrderingComparer comparer = new SparqlOrderingComparer(); //Stream for Output Console.WriteLine("## Sorting Test"); Console.WriteLine("NULLs < Blank Nodes < URI Nodes < Untyped Literals < Typed Literals"); Console.WriteLine(); //Create a Graph Graph g = new Graph(); g.BaseUri = new Uri("http://example.org/"); g.NamespaceMap.AddNamespace("", new Uri("http://example.org/")); //Create a list of various Nodes List<INode> nodes = new List<INode>(); nodes.Add(g.CreateUriNode(":someUri")); nodes.Add(g.CreateBlankNode()); nodes.Add(null); nodes.Add(g.CreateBlankNode()); nodes.Add(g.CreateLiteralNode("cheese")); nodes.Add(g.CreateLiteralNode("aardvark")); nodes.Add(g.CreateLiteralNode(DateTime.Now.AddDays(-25).ToString(XmlSpecsHelper.XmlSchemaDateTimeFormat), new Uri(XmlSpecsHelper.XmlSchemaDataTypeDateTime))); nodes.Add(g.CreateLiteralNode("duck")); nodes.Add(g.CreateUriNode(":otherUri")); nodes.Add(g.CreateLiteralNode("1.5", new Uri(XmlSpecsHelper.XmlSchemaDataTypeDouble))); nodes.Add(g.CreateUriNode(new Uri("http://www.google.com"))); nodes.Add(g.CreateLiteralNode(DateTime.Now.AddYears(3).ToString(XmlSpecsHelper.XmlSchemaDateTimeFormat), new Uri(XmlSpecsHelper.XmlSchemaDataTypeDateTime))); nodes.Add(g.CreateLiteralNode("23", new Uri(XmlSpecsHelper.XmlSchemaDataTypeInteger))); nodes.Add(g.CreateLiteralNode("M43d", new Uri(XmlSpecsHelper.XmlSchemaDataTypeBase64Binary))); nodes.Add(g.CreateUriNode(new Uri("http://www.dotnetrdf.org"))); nodes.Add(g.CreateLiteralNode("12", new Uri(XmlSpecsHelper.XmlSchemaDataTypeInteger))); nodes.Add(g.CreateBlankNode("monkey")); nodes.Add(g.CreateBlankNode()); nodes.Add(g.CreateLiteralNode("chaese")); nodes.Add(g.CreateLiteralNode("1.0456345", new Uri(XmlSpecsHelper.XmlSchemaDataTypeDouble))); nodes.Add(g.CreateLiteralNode("cheese")); nodes.Add(g.CreateLiteralNode(Convert.ToBase64String(new byte[] { Byte.Parse("32") }), new Uri(XmlSpecsHelper.XmlSchemaDataTypeBase64Binary))); nodes.Add(g.CreateLiteralNode("TA==", new Uri(XmlSpecsHelper.XmlSchemaDataTypeBase64Binary))); nodes.Add(g.CreateLiteralNode("-45454", new Uri(XmlSpecsHelper.XmlSchemaDataTypeInteger))); nodes.Add(g.CreateLiteralNode(DateTime.Now.ToString(XmlSpecsHelper.XmlSchemaDateTimeFormat), new Uri(XmlSpecsHelper.XmlSchemaDataTypeDateTime))); nodes.Add(g.CreateLiteralNode("-3", new Uri(XmlSpecsHelper.XmlSchemaDataTypeInteger))); nodes.Add(g.CreateLiteralNode("242344.3456435", new Uri(XmlSpecsHelper.XmlSchemaDataTypeDouble))); nodes.Add(g.CreateLiteralNode("true", new Uri(XmlSpecsHelper.XmlSchemaDataTypeBoolean))); nodes.Add(g.CreateUriNode(":what")); nodes.Add(null); nodes.Add(g.CreateLiteralNode("false", new Uri(XmlSpecsHelper.XmlSchemaDataTypeBoolean))); nodes.Add(g.CreateLiteralNode("invalid-value", new Uri(XmlSpecsHelper.XmlSchemaDataTypeInteger))); nodes.Sort(comparer); //Output the Results foreach (INode n in nodes) { if (n == null) { Console.WriteLine("NULL"); } else { Console.WriteLine(n.ToString()); } } Console.WriteLine(); Console.WriteLine("Now in reverse..."); Console.WriteLine(); nodes.Reverse(); //Output the Results foreach (INode n in nodes) { if (n == null) { Console.WriteLine("NULL"); } else { Console.WriteLine(n.ToString()); } } }
public void NodesSortingSparqlOrder() { SparqlOrderingComparer comparer = new SparqlOrderingComparer(); //Stream for Output Console.WriteLine("## Sorting Test"); Console.WriteLine("NULLs < Blank Nodes < URI Nodes < Untyped Literals < Typed Literals"); Console.WriteLine(); //Create a Graph Graph g = new Graph(); g.BaseUri = new Uri("http://example.org/"); g.NamespaceMap.AddNamespace("", new Uri("http://example.org/")); //Create a list of various Nodes List <INode> nodes = new List <INode>(); nodes.Add(g.CreateUriNode(":someUri")); nodes.Add(g.CreateBlankNode()); nodes.Add(null); nodes.Add(g.CreateBlankNode()); nodes.Add(g.CreateLiteralNode("cheese")); nodes.Add(g.CreateLiteralNode("aardvark")); nodes.Add(g.CreateLiteralNode(DateTime.Now.AddDays(-25).ToString(XmlSpecsHelper.XmlSchemaDateTimeFormat), new Uri(XmlSpecsHelper.XmlSchemaDataTypeDateTime))); nodes.Add(g.CreateLiteralNode("duck")); nodes.Add(g.CreateUriNode(":otherUri")); nodes.Add(g.CreateLiteralNode("1.5", new Uri(XmlSpecsHelper.XmlSchemaDataTypeDouble))); nodes.Add(g.CreateUriNode(new Uri("http://www.google.com"))); nodes.Add(g.CreateLiteralNode(DateTime.Now.AddYears(3).ToString(XmlSpecsHelper.XmlSchemaDateTimeFormat), new Uri(XmlSpecsHelper.XmlSchemaDataTypeDateTime))); nodes.Add(g.CreateLiteralNode("23", new Uri(XmlSpecsHelper.XmlSchemaDataTypeInteger))); nodes.Add(g.CreateLiteralNode("M43d", new Uri(XmlSpecsHelper.XmlSchemaDataTypeBase64Binary))); nodes.Add(g.CreateUriNode(new Uri("http://www.dotnetrdf.org"))); nodes.Add(g.CreateLiteralNode("12", new Uri(XmlSpecsHelper.XmlSchemaDataTypeInteger))); nodes.Add(g.CreateBlankNode("monkey")); nodes.Add(g.CreateBlankNode()); nodes.Add(g.CreateLiteralNode("chaese")); nodes.Add(g.CreateLiteralNode("1.0456345", new Uri(XmlSpecsHelper.XmlSchemaDataTypeDouble))); nodes.Add(g.CreateLiteralNode("cheese")); nodes.Add(g.CreateLiteralNode(Convert.ToBase64String(new byte[] { Byte.Parse("32") }), new Uri(XmlSpecsHelper.XmlSchemaDataTypeBase64Binary))); nodes.Add(g.CreateLiteralNode("TA==", new Uri(XmlSpecsHelper.XmlSchemaDataTypeBase64Binary))); nodes.Add(g.CreateLiteralNode("-45454", new Uri(XmlSpecsHelper.XmlSchemaDataTypeInteger))); nodes.Add(g.CreateLiteralNode(DateTime.Now.ToString(XmlSpecsHelper.XmlSchemaDateTimeFormat), new Uri(XmlSpecsHelper.XmlSchemaDataTypeDateTime))); nodes.Add(g.CreateLiteralNode("-3", new Uri(XmlSpecsHelper.XmlSchemaDataTypeInteger))); nodes.Add(g.CreateLiteralNode("242344.3456435", new Uri(XmlSpecsHelper.XmlSchemaDataTypeDouble))); nodes.Add(g.CreateLiteralNode("true", new Uri(XmlSpecsHelper.XmlSchemaDataTypeBoolean))); nodes.Add(g.CreateUriNode(":what")); nodes.Add(null); nodes.Add(g.CreateLiteralNode("false", new Uri(XmlSpecsHelper.XmlSchemaDataTypeBoolean))); nodes.Add(g.CreateLiteralNode("invalid-value", new Uri(XmlSpecsHelper.XmlSchemaDataTypeInteger))); nodes.Sort(comparer); //Output the Results foreach (INode n in nodes) { if (n == null) { Console.WriteLine("NULL"); } else { Console.WriteLine(n.ToString()); } } Console.WriteLine(); Console.WriteLine("Now in reverse..."); Console.WriteLine(); nodes.Reverse(); //Output the Results foreach (INode n in nodes) { if (n == null) { Console.WriteLine("NULL"); } else { Console.WriteLine(n.ToString()); } } }