public CommodityConversionExpression(CommodityIndex commodityIndex, AliasMapper aliasMap, IDecimalConverter converter, ExpressionValidationHelper helper) { this.commodityIndex = commodityIndex; this.aliasMap = aliasMap; this.converter = converter; this.helper = helper; }
static void Main(string[] args) { Console.WriteLine("--- ROMAN TO DECIMAL CONVERTER --- "); Console.WriteLine(); string path = AppDomain.CurrentDomain.BaseDirectory + "input.txt"; // Open the file to read from. string readText = File.ReadAllText(path); string[] lines = readText.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries); Console.WriteLine("--- Input Start ---"); Console.WriteLine(readText); Console.WriteLine("--- Input End ---"); Console.WriteLine(); Console.WriteLine("--- Output Start ---"); #region "Initialize required components for the convertions" AliasMapper aliasMap = new AliasMapper(); IDecimalConverter converter = new RomanConverter(); CommodityIndex commodityIndex = new CommodityIndex(); #endregion ExpressionParser parser = new ExpressionParser(aliasMap, converter, commodityIndex); foreach (string line in lines) { parser.Parse(line); } Console.WriteLine("--- Output End ---"); Console.ReadLine(); }
public void UnitExpressionTest() { AliasMapper aliasMap = new AliasMapper(); RomanConverter converter = new RomanConverter(); CommodityIndex commodityIndex = new CommodityIndex(); aliasMap.AddAlias("glob", "C"); aliasMap.AddAlias("pish", "X"); ExpressionValidationHelper helper = new ExpressionValidationHelper(aliasMap, commodityIndex); UnitExpression expression = new UnitExpression(commodityIndex, aliasMap, converter, helper); expression.Execute("pish glob Iron is 7020 Credits"); Assert.IsTrue(commodityIndex.Exists("Iron")); Assert.AreEqual <double>(commodityIndex.GetPriceByCommodity("Iron"), 78); expression.Execute("pish glob Iron is 6300 Credits"); Assert.AreEqual <double>(commodityIndex.GetPriceByCommodity("Iron"), 70); }
public void UnitExpressionTest() { AliasMapper aliasMap = new AliasMapper(); RomanConverter converter = new RomanConverter(); CommodityIndex commodityIndex = new CommodityIndex(); aliasMap.AddAlias("glob", "I"); aliasMap.AddAlias("prok", "V"); aliasMap.AddAlias("pish", "X"); aliasMap.AddAlias("tegj", "L"); ExpressionValidationHelper helper = new ExpressionValidationHelper(aliasMap, commodityIndex); UnitExpression expression = new UnitExpression(commodityIndex, aliasMap, converter, helper); expression.Execute("glob glob silver is 34 Credits"); Assert.True(commodityIndex.Exists("silver")); Assert.Equal <double>(17, commodityIndex.GetPriceByCommodity("silver")); expression.Execute("glob prok iron is 400 Credits"); Assert.Equal <double>(100, commodityIndex.GetPriceByCommodity("iron")); }
static void Main(string[] args) { try { // The code provided will print ‘Hello World’ to the console. // Press Ctrl+F5 (or go to Debug > Start Without Debugging) to run your app. Console.WriteLine("--- Merchant Galaxy --- "); Console.WriteLine(); string path = "../../inputData.txt"; string readText = File.ReadAllText(path); string[] lines = readText.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries); Console.WriteLine("--- Input Start ---"); Console.WriteLine(readText); Console.WriteLine("--- Input End ---"); Console.WriteLine(); Console.WriteLine("--- Output Start ---"); #region "Initialize components for the conversions" AliasMapper aliasMap = new AliasMapper(); IDecimalConverter converter = new RomanConverter(); CommodityIndex commodityIndex = new CommodityIndex(); #endregion ExpressionParser parser = new ExpressionParser(aliasMap, converter, commodityIndex); foreach (string line in lines) { parser.Parse(line); } Console.WriteLine("--- Output End ---"); Console.ReadLine(); } catch (Exception ex) { Console.WriteLine("Error:" + ex.Message); } }
static void Main(string[] args) { Console.WriteLine("--- ROMAN TO DECIMAL CONVERTER --- "); Console.WriteLine(); if (args == null || args.Length == 0) { Console.WriteLine("Please specify a filename as a parameter."); return; } string path = args[0]; // Open the file to read from. string readText = File.ReadAllText(path); string[] lines = readText.Split(new string[] { "\n" }, StringSplitOptions.RemoveEmptyEntries); Console.WriteLine("--- Input Start ---"); Console.WriteLine(readText); Console.WriteLine("--- Input End ---"); Console.WriteLine(); Console.WriteLine("--- Output Start ---"); #region "Initialize required components for the convertions" AliasMapper aliasMap = new AliasMapper(); IDecimalConverter converter = new RomanConverter(); CommodityIndex commodityIndex = new CommodityIndex(); #endregion ExpressionParser parser = new ExpressionParser(aliasMap, converter, commodityIndex); foreach (string line in lines) { parser.Parse(line); } Console.WriteLine("--- Output End ---"); Console.ReadLine(); }
public ExpressionValidationHelper(AliasMapper aliasMap, CommodityIndex commodityIndex) { this.aliasMap = aliasMap; this.commodityIndex = commodityIndex; }
public static List <IExpression> GetExpressions(AliasMapper aliasMap, IDecimalConverter converter, CommodityIndex commodityIndex, ExpressionValidationHelper helper) { List <IExpression> expressions = new List <IExpression>(); expressions.Add(new AliasExpression(aliasMap)); expressions.Add(new UnitExpression(commodityIndex, aliasMap, converter, helper)); expressions.Add(new AliasQuestionExpression(aliasMap, converter, helper)); expressions.Add(new UnitQuestionExpression(commodityIndex, aliasMap, converter, helper)); expressions.Add(new CommodityConversionExpression(commodityIndex, aliasMap, converter, helper)); return(expressions); }
public ExpressionParser(AliasMapper aliasMap, IDecimalConverter converter, CommodityIndex commodityIndex) { helper = new ExpressionValidationHelper(aliasMap, commodityIndex); expressions = RomanToDecimalFactory.GetExpressions(aliasMap, converter, commodityIndex, helper); }