Exemple #1
0
        public void TestCaseWithSimpleBrackets()
        {
            RawMultiplierParser parser      = new RawMultiplierParser(new RawMultiplier(0, "(xy)(zw)"));
            List <Expression>   expressions = parser.Parse();

            Assert.AreEqual(expressions.Count, 2);

            parser      = new RawMultiplierParser(new RawMultiplier(0, "(xy)(zw) x^2"));
            expressions = parser.Parse();
            Assert.AreEqual(expressions.Count, 4);
        }
Exemple #2
0
        public void TestCaseWithNumbers()
        {
            RawMultiplierParser parser      = new RawMultiplierParser(new RawMultiplier(0, "56^2x^3y^2z17.8"));
            List <Expression>   expressions = parser.Parse();

            Assert.AreEqual(expressions.Count, 9);

            Assert.AreEqual(expressions[0].summands[0].coeff, 56);
            Assert.AreEqual(expressions[1].summands[0].coeff, 56);

            Assert.AreEqual(expressions[8].summands[0].coeff, 17.8);
        }
Exemple #3
0
        public void TestOnlyLowerCase()
        {
            RawMultiplierParser parser = new RawMultiplierParser(new RawMultiplier(6, "2^2X76"));

            try
            {
                List <Expression> expressions = parser.Parse();
                Assert.Fail();
            }
            catch (ParseException e)
            {
                Assert.AreEqual(e.index, 9);
                Assert.AreEqual(e.Message, "Only lower case letters are allowed");
            }
        }
Exemple #4
0
        public void TestIllegalSign()
        {
            RawMultiplierParser parser = new RawMultiplierParser(new RawMultiplier(3, "2^2.76"));

            try
            {
                List <Expression> expressions = parser.Parse();
                Assert.Fail();
            }
            catch (ParseException e)
            {
                Assert.AreEqual(e.index, 6);
                Assert.AreEqual(e.Message, "'.' symbol is not allowed here");
            }
        }
Exemple #5
0
        public void TestImproperDotUsage()
        {
            RawMultiplierParser parser = new RawMultiplierParser(new RawMultiplier(5, "2^2zx45.76.7"));

            try
            {
                List <Expression> expressions = parser.Parse();
                Assert.Fail();
            }
            catch (ParseException e)
            {
                Assert.AreEqual(e.index, 15);
                Assert.AreEqual(e.Message, "Illigal symbol here");
            }
        }
Exemple #6
0
        public void TestImproperPowerUsage()
        {
            RawMultiplierParser parser = new RawMultiplierParser(new RawMultiplier(4, "^zx"));

            try
            {
                List <Expression> expressions = parser.Parse();
                Assert.Fail();
            }
            catch (ParseException e)
            {
                Assert.AreEqual(e.index, 5);
                Assert.AreEqual(e.Message, "Only digits are allowed here");
            }
        }
Exemple #7
0
        public void TestImproperPowerSign()
        {
            RawMultiplierParser parser = new RawMultiplierParser(new RawMultiplier(0, "^2zx"));

            try
            {
                List <Expression> expressions = parser.Parse();
                Assert.Fail();
            }
            catch (ParseException e)
            {
                Assert.AreEqual(e.index, 2);
                Assert.AreEqual(e.Message, "Power operation should follow some expression");
            }
        }
Exemple #8
0
        public void TestExceptionWhenBracketIsNotClosed()
        {
            RawMultiplierParser parser = new RawMultiplierParser(new RawMultiplier(0, "(xy)(zw"));

            try
            {
                List <Expression> expressions = parser.Parse();
                Assert.Fail();
            }
            catch (ParseException e)
            {
                Assert.AreEqual(e.index, 7);
                Assert.AreEqual(e.Message, "')' is expected here");
            }
        }
Exemple #9
0
        public void TestCaseWithPower()
        {
            RawMultiplierParser parser      = new RawMultiplierParser(new RawMultiplier(0, "x^3y^2"));
            List <Expression>   expressions = parser.Parse();

            Assert.AreEqual(expressions.Count, 5);
            Assert.AreEqual(expressions[0].summands[0].variables.Keys.Count, 1);
            Assert.IsTrue(expressions[0].summands[0].variables.ContainsKey('x'));

            Assert.AreEqual(expressions[1].summands[0].variables.Keys.Count, 1);
            Assert.IsTrue(expressions[1].summands[0].variables.ContainsKey('x'));

            Assert.AreEqual(expressions[2].summands[0].variables.Keys.Count, 1);
            Assert.IsTrue(expressions[2].summands[0].variables.ContainsKey('x'));

            Assert.AreEqual(expressions[3].summands[0].variables.Keys.Count, 1);
            Assert.IsTrue(expressions[3].summands[0].variables.ContainsKey('y'));

            Assert.AreEqual(expressions[4].summands[0].variables.Keys.Count, 1);
            Assert.IsTrue(expressions[4].summands[0].variables.ContainsKey('y'));
        }
Exemple #10
0
        public void TestParseSimple()
        {
            RawMultiplierParser parser      = new RawMultiplierParser(new RawMultiplier(0, "xyz"));
            List <Expression>   expressions = parser.Parse();

            Assert.AreEqual(expressions.Count, 3);
            Assert.AreEqual(expressions[0].summands.Count, 1);
            Assert.AreEqual(expressions[1].summands.Count, 1);
            Assert.AreEqual(expressions[2].summands.Count, 1);

            Assert.IsTrue(expressions[0].summands[0].variables.ContainsKey('x'));
            Assert.IsFalse(expressions[0].summands[0].variables.ContainsKey('y'));
            Assert.IsFalse(expressions[0].summands[0].variables.ContainsKey('z'));

            Assert.IsFalse(expressions[1].summands[0].variables.ContainsKey('x'));
            Assert.IsTrue(expressions[1].summands[0].variables.ContainsKey('y'));
            Assert.IsFalse(expressions[1].summands[0].variables.ContainsKey('z'));

            Assert.IsFalse(expressions[2].summands[0].variables.ContainsKey('x'));
            Assert.IsFalse(expressions[2].summands[0].variables.ContainsKey('y'));
            Assert.IsTrue(expressions[2].summands[0].variables.ContainsKey('z'));
        }
Exemple #11
0
 public void TestDoubleBrackets()
 {
     RawMultiplierParser parser      = new RawMultiplierParser(new RawMultiplier(6, "((x + 1)(x + 2))"));
     List <Expression>   expressions = parser.Parse();
 }
Exemple #12
0
 public void TestOneInBrackets()
 {
     RawMultiplierParser parser      = new RawMultiplierParser(new RawMultiplier(6, "((1 - z) + 4)"));
     List <Expression>   expressions = parser.Parse();
 }