Beispiel #1
0
        public void HangingConnection_Positive()
        {
            string file = "# Test" + Environment.NewLine +
                          "A:	INPUT_HIGH;"+ Environment.NewLine +
                          "B:	INPUT_HIGH;"+ Environment.NewLine +
                          "S:	PROBE;"+ Environment.NewLine +
                          "NODE1:	NAND;"+ Environment.NewLine +
                          "" + Environment.NewLine +
                          "A:	NODE1;"+ Environment.NewLine +
                          "B:	NODE1;"+ Environment.NewLine +
                          "NODE1:	S;";

            FileAsObject             o = new FileAsObject();
            HangingConnectionChecker hangingConnectionChecker = new HangingConnectionChecker(file);

            o.Attach(new NodeLine("A:	INPUT_HIGH;"));
            o.Attach(new NodeLine("B:	INPUT_HIGH;"));
            o.Attach(new NodeLine("S:	PROBE;"));
            o.Attach(new NodeLine("NODE1:	NAND;"));

            o.Attach(new ConnectionLine("A:	NODE1;"));
            o.Attach(new ConnectionLine("B:	NODE1;"));
            o.Attach(new ConnectionLine("NODE1:	S;"));

            (bool success, string validationError)res = o.Accept(hangingConnectionChecker);
            Assert.AreEqual(true, res.success);
        }
Beispiel #2
0
        public static (bool success, string validationError) Validate(string content)
        {
            FileAsObject o = new FileAsObject();

            using (StringReader reader = new StringReader(content))
            {
                bool   blockOne = true;
                string line;
                while ((line = reader.ReadLine()) != null)
                {
                    if (line.StartsWith("#"))
                    {
                        continue;
                    }
                    if (line.Equals(""))
                    {
                        blockOne = false; continue;
                    }

                    if (blockOne)
                    {
                        o.Attach(new NodeLine(line));
                    }
                    else
                    {
                        o.Attach(new ConnectionLine(line));
                    }
                }
            }

            FormatChecker formatChecker = new FormatChecker(content);
            LineChecker   lineChecker   = new LineChecker();

            if (InternalCircuitNamesForTests != null)
            {
                lineChecker.SetInternalCircuitNamesForTests(InternalCircuitNamesForTests);
            }
            LoopChecker loopChecker = new LoopChecker(content);
            HangingConnectionChecker hangingConnectionChecker = new HangingConnectionChecker(content);

            (bool success, string validationError)res;
            if (!(res = o.Accept(formatChecker)).success)
            {
                return(res);
            }
            if (!(res = o.Accept(lineChecker)).success)
            {
                return(res);
            }
            if (!(res = o.Accept(hangingConnectionChecker)).success)
            {
                return(res);
            }
            if (!(res = o.Accept(loopChecker)).success)
            {
                return(res);
            }

            return(
                success : true,
                validationError : ""
                );
        }