Esempio n. 1
0
        public object Parse(IEnumerable <Tsource> source, Tcontroller controller)
        {
            var pc = new ParseController(source, controller);

            pc.MoveTo(this);
            return(pc.controller.GetResult());
        }
Esempio n. 2
0
        public void ParseNumbers_Give_1_Return_1()
        {
            //Assign
            var data = new List <List <char> >()
            {
                new List <char>()
                {
                    '|', '\r', '\n'
                },
                new List <char>()
                {
                    '|', '\r', '\n'
                },
                new List <char>()
                {
                    '|', '\r', '\n'
                },
                new List <char>()
                {
                    '|'
                }
            };
            var controller = new ParseController();

            //Act
            var actual = controller.ParseNumbers(data);
            //Assert
            var expected = new List <char>()
            {
                '1'
            };

            Assert.IsTrue(actual.SequenceEqual(expected));
        }
Esempio n. 3
0
        private static List <char> GetParsedResult(string filePath)
        {
            MyDataReader reader = new DataFromTxt(filePath);
            var          data   = reader.GetData();

            IParseController controller = new ParseController();
            var result = controller.ParseNumbers(data);

            return(result);
        }
Esempio n. 4
0
        public void UAClientIsBot(string ua)
        {
            ParseController parseCRL = new ParseController();

            parseCRL.SetUA(ua);

            var result = parseCRL.ParseUA();

            Assert.True(result.IsBot);
        }
Esempio n. 5
0
        public void UADeviceIsMobile(string ua)
        {
            ParseController parseCRL = new ParseController();

            parseCRL.SetUA(ua);

            var result = parseCRL.ParseUA();

            Assert.True(result.Device.IsMobile);
        }
Esempio n. 6
0
        public void ParseNumbers_Give_3sss2ssss1ss4sss5n1ss4sss5_Return_3_2_1_4_5_n_1_4_5()
        {
            //Assign
            char sp   = ' ';
            var  data = new List <List <char> >()
            {
                new List <char>()
                {
                    '-', '-', '-', sp, sp, sp, '-', '-', '-', sp, sp, sp, sp, '|', sp, sp, '|', ' ', ' ', ' ', '|', sp, sp, sp, '-', '-', '-', '-', '-', '\r', '\n'
                },
                new List <char>()
                {
                    ' ', '/', ' ', sp, sp, sp, ' ', '_', '|', sp, sp, sp, sp, '|', sp, sp, '|', '_', '_', '_', '|', sp, sp, sp, '|', '_', '_', '_', '\r', '\n'
                },
                new List <char>()
                {
                    ' ', '\\', ' ', sp, sp, sp, '|', ' ', ' ', sp, sp, sp, sp, '|', sp, sp, ' ', ' ', ' ', ' ', '|', sp, sp, sp, ' ', ' ', ' ', ' ', '|', '\r', '\n'
                },
                new List <char>()
                {
                    '-', '-', ' ', sp, sp, sp, '-', '-', '-', sp, sp, sp, sp, '|', sp, sp, ' ', ' ', ' ', ' ', '|', sp, sp, sp, '_', '_', '_', '_', '|'
                },
                new List <char>()
                {
                    '|', sp, sp, '|', ' ', ' ', ' ', '|', sp, sp, sp, '-', '-', '-', '-', '-', '\r', '\n'
                },
                new List <char>()
                {
                    '|', sp, sp, '|', '_', '_', '_', '|', sp, sp, sp, '|', '_', '_', '_', '\r', '\n'
                },
                new List <char>()
                {
                    '|', sp, sp, ' ', ' ', ' ', ' ', '|', sp, sp, sp, ' ', ' ', ' ', ' ', '|', '\r', '\n'
                },
                new List <char>()
                {
                    '|', sp, sp, ' ', ' ', ' ', ' ', '|', sp, sp, sp, '_', '_', '_', '_', '|'
                }
            };
            var controller = new ParseController();

            //Act
            var actual = controller.ParseNumbers(data);
            //Assert
            var expected = new List <char>()
            {
                '3', '2', '1', '4', '5', '\r', '\n', '1', '4', '5'
            };

            Assert.IsTrue(actual.SequenceEqual(expected));
        }
Esempio n. 7
0
        void Parse(ParseController pc)
        {
            EnterHandle(pc.value, pc.controller);
            pc.ClearValues();

            while (pc.Next() != -1)
            {
                Transition transition = pc.transition;

                //removing key from value sequence
                if (transition.clearKeyBuffer)
                {
                    pc.ClearKey();
                }

                //if the value is meaningful
                if (transition.noZero && !pc.hasValue)
                {
                    continue;
                }

                if (transition.handler != null)
                {
                    var node = transition.handler(pc.value, pc.controller);
                    if (node != null)
                    {
                        pc.MoveTo(node);
                    }
                }
                if (transition.node != null)
                {
                    pc.MoveTo(transition.node);
                }
                if (transition.isExit)
                {
                    ExitHandle(pc.value, pc.controller);
                    return;
                }

                if (transition.clearOnBack)
                {
                    pc.ClearValues();
                }
            }

            if (!ignoreEnd)
            {
                throw new EndOfSequenceParseException();
            }
            ExitHandle(pc.value, pc.controller);
        }