コード例 #1
0
        public void BoundaryArabicTest()
        {
            GalacticUnit gu = new GalacticUnit("MMMCMXCIX");

            int arabicVal = gu.ToArabic();

            Assert.AreEqual <int>(arabicVal, 3999);
        }
コード例 #2
0
        public void ZeroArabicTest()
        {
            GalacticUnit gu = new GalacticUnit();

            int arabicVal = gu.ToArabic();

            Assert.AreEqual <int>(arabicVal, 0);
        }
コード例 #3
0
        public void ArabicTest()
        {
            GalacticUnit gu = new GalacticUnit("MCMXLIV");

            int arabicVal = gu.ToArabic();

            Assert.AreEqual <int>(arabicVal, 1944);
        }
コード例 #4
0
        public void SubtractionTest()
        {
            GalacticUnit a  = new GalacticUnit("X"); //10
            GalacticUnit b  = new GalacticUnit("V"); //5
            GalacticUnit gu = a - b;

            Assert.AreEqual <long>(gu.ToArabic(), 5);
            Assert.AreEqual <string>(gu.Value, "V");
        }
コード例 #5
0
        public void DivisionTest()
        {
            GalacticUnit a  = new GalacticUnit("X"); //10
            GalacticUnit b  = new GalacticUnit("V"); //5
            GalacticUnit gu = a / b;

            Assert.AreEqual <long>(gu.ToArabic(), 2);
            Assert.AreEqual <string>(gu.Value, "II");
        }
コード例 #6
0
        public void MultiplicationTest()
        {
            GalacticUnit a  = new GalacticUnit("X"); //10
            GalacticUnit b  = new GalacticUnit("V"); //5
            GalacticUnit gu = a * b;

            Assert.AreEqual <long>(gu.ToArabic(), 50);
            Assert.AreEqual <string>(gu.Value, "L");
        }
コード例 #7
0
        public float ProcessStatement(IContext _context, string statement)
        {
            string[] split = statement.Split(' ');

            GalacticUnit gu = new GalacticUnit(split[2]);

            _context.AddVariable(split[0], gu);

            return(gu.ToArabic());
        }
コード例 #8
0
        public float ProcessStatement(IContext _context, string statement)
        {
            string[] calculationSplit = statement.Split(new string[] { " is " }, StringSplitOptions.None);

            string[] tokens = calculationSplit[1].Split(' ', '?');

            StringBuilder sb = new StringBuilder();

            foreach (var t in tokens)
            {
                if (string.IsNullOrWhiteSpace(t))
                {
                    continue;
                }
                sb.Append(_context.GetVariable(t).Value);
            }

            GalacticUnit galacticUnit = new GalacticUnit(sb.ToString());

            return(galacticUnit.ToArabic());
        }