Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        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));
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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);
        }