public void ToArabic_return_2016_when_MMXVI() { var target = new NumeralConverter(); var actual = target.ToArabic("MMXVI"); Assert.AreEqual(2016, actual); }
public void ToArabic_return_3888_when_MMMDCCCLXXXVIII() { var target = new NumeralConverter(); var actual = target.ToArabic("MMMDCCCLXXXVIII"); Assert.AreEqual(3888, actual); }
public void ToArabic_return_50_when_L() { var target = new NumeralConverter(); var actual = target.ToArabic("L"); Assert.AreEqual(50, actual); }
public void ToArabic_returns_0_when_empty_string() { var target = new NumeralConverter(); var actual = target.ToArabic(""); Assert.AreEqual(0, actual); }
public void ToArabic_return_8_when_VIII() { var target = new NumeralConverter(); var actual = target.ToArabic("VIII"); Assert.AreEqual(8, actual); }
public void ToArabic_return_9_when_IX() { var target = new NumeralConverter(); var actual = target.ToArabic("IX"); Assert.AreEqual(9, actual); }
// Use this for initialization void Start() { _fragments = FindObjectsOfType <NumeralFragmentController>().ToList(); char[] result; _fragments.Reverse(); while (true) { System.Random rand = new System.Random(); _randInteger = rand.Next(1000, 3999); _randNumeral = NumeralConverter.ConvertDecimalToRoman(_randInteger.ToString()); result = _randNumeral.ToCharArray(); if ((result.Length % _fragments.Count) == 0 && result.Length != 0) { break; } else if (result.Length == 0) { return; } } int indexSkipper = 0; foreach (NumeralFragmentController controller in _fragments) { int portionResult = result.Length / _fragments.Count; for (int i = 0 + indexSkipper; i < portionResult + indexSkipper; i++) { controller._numerals.Add(result[i]); } indexSkipper += portionResult; } }
public void ConvertToArabic_WhenPassedSubtractiveNumeral_ReturnsCorrectIntegerValue() { const string numeral = "IV"; var expected = 4; var result = NumeralConverter.ToArabic(numeral); result.Should().Be(expected); }
public void Numeral_LXVIII_converts_to_number_29() { var numeral = "LXVIII"; var numeralParser = new NumeralConverter(); var result = numeralParser.Numberizer(numeral); Assert.AreEqual(68, result); }
public static string Add(string addend1, string addend2) { var numericAddend1 = NumeralConverter.ToArabic(addend1); var numericAddend2 = NumeralConverter.ToArabic(addend2); var sum = numericAddend1 + numericAddend2; return(ArabicConverter.ToNumeral(sum)); }
public void Numeral_XVI_converts_to_number_16() { var numeral = "XVI"; var numeralParser = new NumeralConverter(); var result = numeralParser.Numberizer(numeral); Assert.AreEqual(16, result); }
public void ConvertToArabic_CaseIsIgnored() { const string numeral = "xxV"; var expected = 25; var result = NumeralConverter.ToArabic(numeral); result.Should().Be(expected); }
public void ConvertToArabic_WhenPassedIIReturns2() { const string numeral = "II"; var expected = 2; var result = NumeralConverter.ToArabic(numeral); result.Should().Be(expected); }
public void Numeral_XXIX_converts_to_number_29() { var numeral = "XXIX"; var numeralParser = new NumeralConverter(); var result = numeralParser.Numberizer(numeral); Assert.AreEqual(29, result); }
public void Numeral_XLV_converts_to_number_45() { var numeral = "XLV"; var numeralParser = new NumeralConverter(); var result = numeralParser.Numberizer(numeral); Assert.AreEqual(45, result); }
public void ConvertToArabic_WhenPassedNumeralWithIllegalCharacterRepetitions_Throws() { const string numeral1 = "IIII"; const string numeral2 = "DD"; const string numeral3 = "VIIII"; Assert.Throws <ArgumentException>(() => NumeralConverter.ToArabic(numeral1)); Assert.Throws <ArgumentException>(() => NumeralConverter.ToArabic(numeral2)); Assert.Throws <ArgumentException>(() => NumeralConverter.ToArabic(numeral3)); }
public void ValidateAnswer() { string answer = _passcodeMenu.transform.Find("TxtPasscode").GetComponent <InputField>().text; int intAnswer = 0; bool isValid = int.TryParse(answer, out intAnswer); if (_doorInstance != null) { if (intAnswer == _doorInstance._randInteger && isValid) { _doorInstance._isSolved = true; _isPaused = false; _passcodeMenu.SetActive(false); _doorInstance.Open(); _doorInstance = null; } else { _passcodeMenu.SetActive(false); GenericPause("Wrong answer"); } } else if (_fragmentInstance != null) { int result = Convert.ToInt32(NumeralConverter.ConvertRomanToDecimal(answer)); if (result == _fragmentInstance._passcode) { _passcodeMenu.SetActive(false); StringBuilder sb = new StringBuilder(); foreach (char numeral in _fragmentInstance._numerals) { sb.Append(numeral); } string numeralResult = sb.ToString(); _txtRomanNumeralData.GetComponent <Text>().text += sb.ToString(); Destroy(_fragmentInstance.gameObject); _fragmentInstance = null; GenericPause("You found some Numerals in a memory fragment. Maybe this is a clue to get to the core? \r\n" + numeralResult); } else { _passcodeMenu.SetActive(false); GenericPause("Wrong answer"); } } _passcodeMenu.transform.Find("TxtPasscode").GetComponent <InputField>().text = ""; }
void MakePasscode() { List <char> numerals = _previousFragment.GetComponent <NumeralFragmentController>()._numerals; StringBuilder sb = new StringBuilder(); foreach (char numeral in numerals) { sb.Append(numeral); } string result = sb.ToString(); string decimalResult = NumeralConverter.ConvertRomanToDecimal(result); _passcode = Convert.ToInt32(decimalResult); }
public void Setup() { var ruleList = new List <Rule>(); _mappings = new Dictionary <int, string> { { 1, "i" }, { 2, "ii" }, { 3, "iii" }, { 4, "iv" }, { 5, "v" }, { 6, "vi" }, { 7, "vii" }, { 8, "viii" }, { 9, "ix" }, { 10, "x" }, { 50, "l" }, }; Func <int, bool> IsLessThanorEqualTo10 = i => i <= 10 && i > 0; Func <int, bool> isLessThan11 = _mappings.ContainsKey; var applicability = new Applicability(isLessThan11); Func <int, RuleResult> arabicNumeralToRomanNumeral = i => _mappings.ContainsKey(i) ? new RuleResult(_mappings[i], 0) : new RuleResult("", 0); var lessThan11 = new Rule(applicability, arabicNumeralToRomanNumeral); var between11and40 = new Applicability(i => i > 10 && i < 40); Func <int, RuleResult> printNumber11To40 = i => new RuleResult(arabicNumeralToRomanNumeral(10).GetStringOutput() + arabicNumeralToRomanNumeral(i).GetStringOutput(), i - 10); var ElevenToTwentyRule = new Rule(between11and40, printNumber11To40); var from40To49 = new Applicability(i => i >= 40 && i <= 49); Func <int, RuleResult> print40to50 = i => new RuleResult(arabicNumeralToRomanNumeral(10).GetStringOutput() + arabicNumeralToRomanNumeral(50).GetStringOutput() + arabicNumeralToRomanNumeral(i - 40).GetStringOutput(), 0); var FourtytoFourtyNineRule = new Rule(from40To49, print40to50); ruleList.Add(FourtytoFourtyNineRule); ruleList.Add(ElevenToTwentyRule); ruleList.Add(lessThan11); var numeralConverter = new NumeralConverter(ruleList); _subject = new NumeralPrinter(numeralConverter); }
static void Main(string[] args) { Char[] validChars = new Char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' }; System.Console.WriteLine("Please enter a number to convert or press escape to exit"); StringBuilder input = new StringBuilder(); Boolean loop = true; while (loop) { var key = System.Console.ReadKey(true); if (key.Key == ConsoleKey.Escape) { loop = false; } if (key.Key == ConsoleKey.Enter && input.Length > 0) { var toConvert = Convert.ToInt32(input.ToString()); System.Console.WriteLine("\r\n{0} Converts To {1}", input, NumeralConverter.ConvertToNumerals(toConvert)); input.Clear(); System.Console.WriteLine("Enter another number or press escape to exit"); } for (int i = 0; i < validChars.Length; i++) { if (key.KeyChar == validChars[i]) { System.Console.Write(key.KeyChar); input.Append(key.KeyChar); break; } } } }
public void ToArabic_throws_exception_when_InvalidFormat() { var target = new NumeralConverter(); target.ToArabic("IIX"); }
private void LoadRandomNumeral() { CurrentValue = _rand.Next(5000); CurrentNumeral = NumeralConverter.ConvertToNumerals(CurrentValue); }
public void ShouldConvertProperly(string numeral, int expected) { var result = NumeralConverter.ConvertRomanNumeralToInt(numeral); Assert.AreEqual(expected, result); }
public void ConvertToArabic_WhenPassedNumeralWithIllegalCharacters_Throws() { const string badNumeral = "WAT"; Assert.Throws <ArgumentException>(() => NumeralConverter.ToArabic(badNumeral)); }
public void ToArabic_throws_exception_when_InvalidCharater() { var target = new NumeralConverter(); target.ToArabic("S"); }
public NumeralPrinter(NumeralConverter numeralConverter) { _converter = numeralConverter; }
public void ShouldRaiseError(string numeral) { Assert.ThrowsException <ArgumentException>(() => NumeralConverter.ConvertRomanNumeralToInt(numeral)); }