public static void NoLeadingNumberTest() { var id = '1' + GetLongId(); var input = "digraph " + id + " { A; }"; var graph = GraphParser.GetGraph(input); Assert.AreNotEqual(id, graph.Id); Assert.Catch(() => GraphParser.SyntaxChecker(input)); }
public static void SpecialCharacterIdsTest() { var id = GetLongId(); var input = "digraph " + id + " { A; }"; var graph = GraphParser.GetGraph(input); Assert.AreEqual(id, graph.Id); //TODO: This should be true but apparently graphviz does not support its own grammar... //Assert.IsTrue(GraphParser.SyntaxChecker(input)); }
public static void GraphTypeTest() { var input = TestHelper.ExampleDot.Replace("digraph {", "graph MyId {"); var graph = GraphParser.GetGraph(input); Assert.IsFalse(graph.IsDirected); Assert.IsFalse(graph.IsStrict); Assert.IsTrue(graph.Id == "MyId"); CheckIdConsistencies(graph); Assert.IsTrue(graph.GetEdges().GroupBy(e => new { e.SourceNode, e.EndNode }).Any(c => c.Count() > 1)); var output = graph.ToDot(); Assert.IsTrue(output.StartsWith("graph MyId {", StringComparison.OrdinalIgnoreCase)); }
public static void DuplicateNodesTest() { var input = "A\nA"; var graph = GraphParser.GetGraph(FormattableString.Invariant($"digraph {{\n{input}\n}}")); var output = graph.ToDot(); var expectedOutput = "digraph GraphId {\n A\n}\n"; Assert.AreEqual(expectedOutput, output); input = "A->B\nA"; graph = GraphParser.GetGraph(FormattableString.Invariant($"digraph {{\n{input}\n}}")); output = graph.ToDot(); expectedOutput = "digraph GraphId {\n A -> B\n}\n"; Assert.AreEqual(expectedOutput, output); }
public static void EmptyGraphTest() { var input = ""; var graph = GraphParser.GetGraph(FormattableString.Invariant($"digraph {{\n{input}\n}}")); Assert.IsTrue(!graph.GetNodes().Any()); Assert.IsTrue(!graph.GetEdges().Any()); Assert.IsTrue(!graph.GetSubGraphs().Any()); Assert.IsTrue(!graph.GetAttributes().Any()); Assert.IsTrue(!graph.GetNodeAttributes().Any()); Assert.IsTrue(!graph.GetEdgeAttributes().Any()); var output = graph.ToDot(); var expectedOutput = "digraph GraphId {\n}\n"; Assert.AreEqual(expectedOutput, output); }