Accord.Tests.Math.NonlinearConstraintTest.ConstructorTest6 C# (CSharp) Method

ConstructorTest6() private method

private ConstructorTest6 ( ) : void
return void
        public void ConstructorTest6()
        {
            var constraints = new[]
            {
                new NonlinearConstraint(2, x =>  1.0 - x[0] * x[0] - x[1] * x[1]),
                new NonlinearConstraint(2, x =>  1.0 - x[0] * x[0] - x[1] * x[1] >= 0),
                new NonlinearConstraint(2, x =>  -x[0] * x[0] - x[1] * x[1] >= -1.0),
                new NonlinearConstraint(2, x =>  -(-x[0] * x[0] - x[1] * x[1]) <= 1.0),
            };

            Assert.AreEqual(ConstraintType.GreaterThanOrEqualTo, constraints[0].ShouldBe);
            Assert.AreEqual(ConstraintType.GreaterThanOrEqualTo, constraints[1].ShouldBe);
            Assert.AreEqual(ConstraintType.GreaterThanOrEqualTo, constraints[2].ShouldBe);
            Assert.AreEqual(ConstraintType.LesserThanOrEqualTo, constraints[3].ShouldBe);

            Assert.AreEqual(0.0, constraints[0].Value);
            Assert.AreEqual(0.0, constraints[1].Value);
            Assert.AreEqual(-1.0, constraints[2].Value);
            Assert.AreEqual(1.0, constraints[3].Value);

            foreach (var c1 in constraints)
            {
                double v1 = c1.GetViolation(new double[] { 4, 2 });

                foreach (var c2 in constraints)
                {
                    double v2 = c2.GetViolation(new double[] { 4, 2 });

                    Assert.AreEqual(v1, v2);
                }
            }
        }