public WordExpression(RomanPseudonymMapper pseudonymMap, WordMapper wordMap, IDecimalConverter converter, ExpressionValidationHelper helper)
 {
     _pseudonymMap = pseudonymMap;
     _wordMap      = wordMap;
     _converter    = converter;
     _helper       = helper;
 }
示例#2
0
        public void PseudonymExpressionTest()
        {
            RomanPseudonymMapper pseudonymMap = new RomanPseudonymMapper();
            PseudonymExpression  expression   = new PseudonymExpression(pseudonymMap);

            Assert.True(expression.Match("glob is I"));
            Assert.False(expression.Match("glob is N"));
            expression.Execute("glob is I");
            Assert.True(pseudonymMap.Exists("glob"));
            Assert.Equal("I", pseudonymMap.GetValueForPseudonym("glob"));
        }
示例#3
0
        private List <IExpression> GetExpressions(RomanPseudonymMapper pseudonymMap, IDecimalConverter converter, WordMapper wordMap, ExpressionValidationHelper helper)
        {
            List <IExpression> expressions = new List <IExpression>
            {
                new PseudonymExpression(pseudonymMap),
                new UnitExpression(pseudonymMap, wordMap, converter, helper),
                new PseudonymQuestionExpression(pseudonymMap, converter, helper),
                new UnitQuestionExpression(pseudonymMap, wordMap, converter, helper),
                new WordExpression(pseudonymMap, wordMap, converter, helper)
            };

            return(expressions);
        }
示例#4
0
        public void UnitExpressionTest()
        {
            RomanPseudonymMapper pseudonymMap = new RomanPseudonymMapper();
            RomanConverter       converter    = new RomanConverter();
            WordMapper           wordMap      = new WordMapper();

            pseudonymMap.AddPseudonym("glob", "I");
            pseudonymMap.AddPseudonym("pish", "X");
            ExpressionValidationHelper helper     = new ExpressionValidationHelper(pseudonymMap, wordMap);
            UnitExpression             expression = new UnitExpression(pseudonymMap, wordMap, converter, helper);

            expression.Execute("pish glob Iron is 110 Credits");
            Assert.True(wordMap.Exists("Iron"));
            Assert.Equal <double>(10, wordMap.GetPriceByWord("Iron"));
            expression.Execute("glob pish Iron is 6300 Credits");
            Assert.Equal <double>(700, wordMap.GetPriceByWord("Iron"));
        }
示例#5
0
        static void Main()
        {
            Console.WriteLine("File Details");
            Console.WriteLine("_______________");
            string path     = "../../file.txt";
            string readText = File.ReadAllText(path);

            string[] lines = readText.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);
            Console.WriteLine(readText);
            Console.WriteLine();
            RomanPseudonymMapper pseudonymMap = new RomanPseudonymMapper();
            IDecimalConverter    converter    = new RomanConverter();
            WordMapper           wordMap      = new WordMapper();
            ExpressionParser     parser       = new ExpressionParser(pseudonymMap, converter, wordMap);

            foreach (string line in lines)
            {
                parser.Parse(line.ToUpper());
            }
            Console.ReadLine();
        }
示例#6
0
 public ExpressionParser(RomanPseudonymMapper pseudonymMap, IDecimalConverter converter, WordMapper wordMap)
 {
     helper      = new ExpressionValidationHelper(pseudonymMap, wordMap);
     expressions = GetExpressions(pseudonymMap, converter, wordMap, helper);
 }
 public ExpressionValidationHelper(RomanPseudonymMapper pseudonymMap, WordMapper wordMap)
 {
     _pseudonymMap = pseudonymMap;
     _wordMap      = wordMap;
 }
示例#8
0
 public PseudonymExpression(RomanPseudonymMapper pseudonymMap)
 {
     _pseudonymMap = pseudonymMap;
 }
示例#9
0
 public PseudonymQuestionExpression(RomanPseudonymMapper pseudonymMap, IDecimalConverter converter, ExpressionValidationHelper helper)
 {
     _pseudonymMap = pseudonymMap;
     _converter    = converter;
     _helper       = helper;
 }