Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
            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));
            }
Ejemplo n.º 3
0
            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);
                }
            }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
            private static int GetNextNumeralValue(NumeralSet numerals)
            {
                var numeral = numerals.LoadNumeral();

                return((int)numeral);
            }
Ejemplo n.º 6
0
        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());
            }
        }
Ejemplo n.º 7
0
 public static Number New(string digits, NumeralSet numberSystem)
 {
     return new Number(digits, numberSystem);
 }
Ejemplo n.º 8
0
 public Number(string digits, NumeralSet numberSystem)
 {
     this.SymbolicNumber = new SymbolicNumber(digits, numberSystem);
 }
Ejemplo n.º 9
0
        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());
            }
        }