public void ParseConstraintsSection_multipleConstraints()
        {
            ConstraintsSection section = new ConstraintsSection();

            section.Content = "x[0] <= 0;\nx[1] >= 1;";
            section.Parse();
            Assert.AreEqual(2, section.Constraints.Count);
            Assert.AreEqual("x[0]", section.Constraints[0].Lhs.Trim());
            Assert.AreEqual("0", section.Constraints[0].Rhs.Trim());
            Assert.AreEqual(ConstraintType.LessEqual, section.Constraints[0].Type);
            Assert.AreEqual("x[1]", section.Constraints[1].Lhs.Trim());
            Assert.AreEqual("1", section.Constraints[1].Rhs.Trim());
            Assert.AreEqual(ConstraintType.GreaterEqual, section.Constraints[1].Type);
        }
        public void ParseConstraintsSection_invalid()
        {
            ConstraintsSection section = new ConstraintsSection();

            section.Content = "x[0] <= 0";
            TestUtils.ExpectThrow(() => section.Parse());

            section.Content = "x[0] <= 0; x[1] <= 0";
            TestUtils.ExpectThrow(() => section.Parse());

            section.Content = "x[0] 0;";
            TestUtils.ExpectThrow(() => section.Parse());

            section.Content = "x[0] <= 0; ; x[1] <= 0;";
            TestUtils.ExpectThrow(() => section.Parse());
        }
        public void ParseConstraintsSection_singleConstraint()
        {
            ConstraintsSection section = new ConstraintsSection();

            section.Content = "x[0] <= 0;";
            section.Parse();
            Assert.AreEqual(1, section.Constraints.Count);
            Assert.AreEqual("x[0]", section.Constraints[0].Lhs.Trim());
            Assert.AreEqual("0", section.Constraints[0].Rhs.Trim());
            Assert.AreEqual(ConstraintType.LessEqual, section.Constraints[0].Type);

            section.Content = "x[0] + x[1] + a == c + d;";
            section.Parse();
            Assert.AreEqual(1, section.Constraints.Count);
            Assert.AreEqual("x[0] + x[1] + a", section.Constraints[0].Lhs.Trim());
            Assert.AreEqual("c + d", section.Constraints[0].Rhs.Trim());
            Assert.AreEqual(ConstraintType.Equality, section.Constraints[0].Type);
        }