public void Testing_9IsIX() { var numeralsUnderTest = new NumeralSet('I', 'V', 'X'); var NumeralsPlaceHolder = new NumeralsPlaceHolder(numeralsUnderTest); string expected = "IX"; int numberUnderTest = 9; string actual = NumeralsPlaceHolder.generate(numberUnderTest); Assert.AreEqual(expected, actual); }
public static Number Load(int numeralsCount, NumeralSet numerals) { int powerOfBase = numeralsCount - 1; int localValue = 0; for (int i = 0; i < numeralsCount; i++) { var numeralValue = GetNextNumeralValue(numerals); localValue += numeralValue * (int)Math.Pow(BASE, powerOfBase); powerOfBase--; } Console.Error.WriteLine(localValue); return(new Number(localValue)); }
public void WriteMayan(NumeralSet numerals) { var numeralValues = new Stack <long>(); var localValue = this.value; do { var numeralValue = localValue % BASE; numeralValues.Push(numeralValue); localValue = localValue / BASE; } while (0 < localValue); foreach (var numeralValue in numeralValues) { numerals.Write((int)numeralValue); } }
private static void Main(string[] args) { string[] inputs = Console.ReadLine().Split(' '); int numeralWidth = int.Parse(inputs[0]); int numeralHeight = int.Parse(inputs[1]); var numerals = new NumeralSet(numeralWidth, numeralHeight); numerals.Load(); int numberOfLines = int.Parse(Console.ReadLine()); var firstNumber = Number.Load(numberOfLines / numeralHeight, numerals); numberOfLines = int.Parse(Console.ReadLine()); var secondNumber = Number.Load(numberOfLines / numeralHeight, numerals); string operation = Console.ReadLine(); var result = Calculate(firstNumber, operation, secondNumber); result.WriteMayan(numerals); }
private static int GetNextNumeralValue(NumeralSet numerals) { var numeral = numerals.LoadNumeral(); return((int)numeral); }
public static void Test() { //init the set NumeralSet set = new NumeralSet(".", "-"); for (int i = 0; i < 10; i++) { set.AddSymbolToSet(i.ToString()); } //var num = new Number(null, set); //var b = num.SymbolsText; var num1 = new Number("123456789", set); var f = num1.SymbolicNumber.FirstDigit; var l = num1.SymbolicNumber.LastDigit; Debug.Assert(num1.SymbolsText == "123456789"); num1.AddOne(); Debug.Assert(num1.SymbolsText == "123456790"); var counter = 123456790; for (int i = 1; i < 100; i++) { num1.AddOne(); counter++; Debug.Assert(num1.SymbolsText == counter.ToString()); } for (int i = 1; i < 100; i++) { num1.SubtractOne(); counter--; Debug.Assert(num1.SymbolsText == counter.ToString()); } var num2 = new Number("0", set); counter = 0; for (int i = 0; i < 200; i++) { num2.SubtractOne(); counter--; Debug.Assert(num2.SymbolsText == counter.ToString()); } }
public static Number New(string digits, NumeralSet numberSystem) { return new Number(digits, numberSystem); }
public Number(string digits, NumeralSet numberSystem) { this.SymbolicNumber = new SymbolicNumber(digits, numberSystem); }
public static void TestOperations() { //init the set NumeralSet set = new NumeralSet(".", "-"); for (int i = 0; i < 10; i++) { set.AddSymbolToSet(i.ToString()); } int number = 0; var num1 = new Number(number.ToString(), set); Debug.Assert(num1.SymbolsText == number.ToString()); for (int i = 0; i < 1000; i++) { num1.AddOne(); number++; Debug.Assert(num1.SymbolsText == number.ToString()); } for (int i = 0; i < 1000; i++) { num1.SubtractOne(); number--; Debug.Assert(num1.SymbolsText == number.ToString()); } }