public void TestCheckTrue() { RuleMain calculate = new RuleMain("MMCMMIII"); var output = calculate.Check(); Assert.AreEqual(true, output); }
public void TestCheckFalse() { RuleMain calculate = new RuleMain("MCMXLIVV"); var output = calculate.Check(); Assert.AreEqual(false, output); }
public void NumberCalculate() { StringBuilder stringBuilder = new StringBuilder(); foreach (var item in GalaxyNumber) { stringBuilder.Append(GalaxyNumberMapper[item].ToString()); } string romanStr = stringBuilder.ToString(); RuleMain ruleMain = new RuleMain(romanStr); if (ruleMain.Check()) { var _calculateSymbolList = romanStr.ToList(); for (int i = 0; i < _calculateSymbolList.Count; i++) { int nextIndex = i + 1; var currentPrice = (decimal)Tool.ToRomanNumeral(_calculateSymbolList[i].ToString()); var nextPrice = nextIndex < _calculateSymbolList.Count ? (decimal)Tool.ToRomanNumeral(_calculateSymbolList[nextIndex].ToString()) : 0M; if (currentPrice < nextPrice) { GalaxyNumberPrice += nextPrice - currentPrice; i++; } else { GalaxyNumberPrice += currentPrice; } } } else { throw new NotImplementedException("Check失败"); } }