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); }
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); }
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"); } }
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"); } }
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"); } }
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"); } }
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"); } }
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"); } }
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')); }
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')); }
public void TestDoubleBrackets() { RawMultiplierParser parser = new RawMultiplierParser(new RawMultiplier(6, "((x + 1)(x + 2))")); List <Expression> expressions = parser.Parse(); }
public void TestOneInBrackets() { RawMultiplierParser parser = new RawMultiplierParser(new RawMultiplier(6, "((1 - z) + 4)")); List <Expression> expressions = parser.Parse(); }