예제 #1
0
        public void ShouldConvertToStringWithBullet()
        {
            TerminalsRange predicate;

            predicate = new TerminalsRange('a', 'c');

            Assert.AreEqual("•[a-c]", predicate.ToString(predicate));
        }
예제 #2
0
        public void ShouldEquals()
        {
            TerminalsRange a, b;


            a = new TerminalsRange('a', 'c');
            b = new TerminalsRange('a', 'c');

            Assert.IsTrue(a.Equals(b));
            Assert.IsTrue(b.Equals(a));
        }
예제 #3
0
        public void ShouldNotEquals()
        {
            TerminalsRange a, b;


            a = new TerminalsRange('a', 'c');
            b = new TerminalsRange('b', 'c');

            Assert.IsFalse(a.Equals(b));
            Assert.IsFalse(b.Equals(null));
            Assert.IsFalse(b.Equals(new AnyTerminal()));
            Assert.IsFalse(b.Equals(new EOS()));
        }
예제 #4
0
        public void ShouldGetInputs()
        {
            TerminalsRange predicate;

            IInput <char>[] inputs;

            predicate = new TerminalsRange('a', 'z');
            inputs    = predicate.GetInputs().ToArray();
            Assert.IsNotNull(inputs);
            Assert.AreEqual(1, inputs.Length);
            Assert.AreEqual('a', ((TerminalRangeInput)inputs[0]).FirstValue);
            Assert.AreEqual('z', ((TerminalRangeInput)inputs[0]).LastValue);
        }
        public void ShouldNotBuildTerminalRangeSegment()
        {
            SituationGraphSegmentFactory <char> factory;
            ISituationGraph <char> graph;
            LexicalRule            rule;
            MockedSituationEdge    capEdge;
            TerminalsRange         predicate;

            capEdge = new MockedSituationEdge();
            graph   = new SituationGraph <char>();
            factory = new SituationGraphSegmentFactory <char>();

            predicate = new TerminalsRange('a', 'b');
            rule      = new LexicalRule()
            {
                Name = "A", Predicate = predicate
            };
            Assert.ThrowsException <ArgumentNullException>(() => factory.BuildSegment(null, rule, predicate, capEdge.AsEnumerable()));
            Assert.ThrowsException <ArgumentNullException>(() => factory.BuildSegment(graph, null, predicate, capEdge.AsEnumerable()));
            Assert.ThrowsException <ArgumentNullException>(() => factory.BuildSegment(graph, rule, null as TerminalsRange, capEdge.AsEnumerable()));
            Assert.ThrowsException <ArgumentNullException>(() => factory.BuildSegment(graph, rule, predicate, null));
        }