Beispiel #1
0
        public void SetTerminalShouldRecognizeCharacterInSet()
        {
            var setTerminal = new SetTerminal("az");

            Assert.IsTrue(setTerminal.CanApply('a'));
            Assert.IsTrue(setTerminal.CanApply('z'));
        }
Beispiel #2
0
        public void SetTerminalGetIntervalsShouldReturnMergedIntervalWhenCharactersOverlap()
        {
            var setTerminal = new SetTerminal("abcdez");
            var intervals   = setTerminal.GetIntervals();

            Assert.AreEqual(2, intervals.Count);
            Assert.AreEqual('a', intervals[0].Min);
            Assert.AreEqual('e', intervals[0].Max);
            Assert.AreEqual('z', intervals[1].Min);
            Assert.AreEqual('z', intervals[1].Max);
        }
Beispiel #3
0
        public void ProductionExpressionShouldSupportConcatenationOfStringAndTerminal()
        {
            ProductionExpression
                S = "S";
            AtomTerminal
                a = new SetTerminal("ab");

            S.Rule = (Expr)"b" + a;

            Assert.IsNotNull(S.ProductionModel);
            Assert.AreEqual(1, S.ProductionModel.Alterations.Count);
            Assert.AreEqual(2, S.ProductionModel.Alterations[0].Symbols.Count);
        }
Beispiel #4
0
        public void SetTerminalShouldUseIntervalsForToString()
        {
            var setTerminal = new SetTerminal("abcdez");

            Assert.AreEqual("[a-ez]", setTerminal.ToString());

            setTerminal = new SetTerminal("zabcde");

            Assert.AreEqual("[a-ez]", setTerminal.ToString());

            setTerminal = new SetTerminal("abcde");

            Assert.AreEqual("[a-e]", setTerminal.ToString());

            setTerminal = new SetTerminal("z");

            Assert.AreEqual("[z]", setTerminal.ToString());
        }
Beispiel #5
0
        public void SetTerminalShouldNotRecognizeCharacterOutOfSet()
        {
            var setTerminal = new SetTerminal("az");

            Assert.IsFalse(setTerminal.CanApply('b'));
        }
        public void SetTerminalShouldRecognizeCharacterInSet()
        {
            var setTerminal = new SetTerminal('a', 'z');

            Assert.IsTrue(setTerminal.IsMatch('a'));
        }
        public void SetTerminalShouldNotRecognizeCharacterOutOfSet()
        {
            var setTerminal = new SetTerminal('a', 'z');

            Assert.IsFalse(setTerminal.IsMatch('b'));
        }