Exemple #1
0
        public void BoundsCheck_WithInvalidType_ThrowsError()
        {
            var vbl = new VariableContinuous(-1.2, 4.2);

            Assert.Throws <System.FormatException>(
                () => vbl.IsInBounds("bf"));
        }
Exemple #2
0
        public void AddOrWrap_MixedBounds_CorrectValuesReturned(double val1, double val2, double expectedResult)
        {
            var vbl    = new VariableContinuous(-2.0, 2.0);
            var result = vbl.AddOrWrap(val1, val2);

            Assert.True(Math.Abs(expectedResult - (double)result) < 1e-6);
        }
Exemple #3
0
        public void AddOrWrap_PositiveBounds_UsingIntegers_CorrectValuesReturned(int val1, int val2, double expectedResult)
        {
            var vbl    = new VariableContinuous(1.2, 4.6);
            var result = vbl.AddOrWrap(val1, val2);

            Assert.True(Math.Abs(expectedResult - (double)result) < 1e-6);
        }
Exemple #4
0
        public void BoundsCheckNonsense_ThrowsError()
        {
            var min = -1.4;
            var max = 2.5;
            var vbl = new VariableContinuous(min, max);

            Assert.Throws <System.FormatException>(
                () => vbl.IsInBounds("nonsense"));
        }
Exemple #5
0
        public void GetNearestLegalLocation_InputLocationIsLegal_ReturnsOriginal()
        {
            var min = -1.4;
            var max = 2.5;
            var vbl = new VariableContinuous(min, max);

            var testValue = -0.2;

            Assert.Equal(testValue, vbl.GetNearestLegalLocation(testValue));
        }
Exemple #6
0
        public void TwoVariablesSame_AreEqual()
        {
            var min = -1.4;
            var max = 2.5;

            var vbl1 = new VariableContinuous(min, max);
            var vbl2 = new VariableContinuous(min, max);

            Assert.Equal(vbl1, vbl2);
        }
Exemple #7
0
        public void GetSpacedArray_WithTwoPoints_ReturnsBounds()
        {
            var min    = 4.0;
            var max    = 8.0;
            var vbl1   = new VariableContinuous(min, max);
            var points = vbl1.GetSpacedArray(2);

            Assert.Equal(min, points.First());
            Assert.Equal(max, points.Last());
        }
Exemple #8
0
        public void GetNearestLegalLocation_InputLocationIsLow_ReturnsLowerBound()
        {
            var min = -1.4;
            var max = 2.5;
            var vbl = new VariableContinuous(min, max);

            var testValue = -5.8;

            Assert.Equal(min, vbl.GetNearestLegalLocation(testValue));
            Assert.True(vbl.IsInBounds(vbl.GetNearestLegalLocation(testValue)));
        }
Exemple #9
0
        public void GetNearestLegalLocation_InputLocationIsHigh_ReturnsUpperBound()
        {
            var min = -1.4;
            var max = 2.5;
            var vbl = new VariableContinuous(min, max);

            var testValue = 3.1;

            Assert.True(max - (double)vbl.GetNearestLegalLocation(testValue) < 1e-9);
            Assert.True(vbl.IsInBounds(vbl.GetNearestLegalLocation(testValue)));
        }
Exemple #10
0
        public void GetSpacedArray_WithThreePoints_ReturnsEvenSpacedArray()
        {
            var min    = 4.0;
            var max    = 8.0;
            var vbl1   = new VariableContinuous(min, max);
            var points = vbl1.GetSpacedArray(3);

            Assert.Equal(min, points.First());
            Assert.Equal(6.0, points.ElementAt(1));
            Assert.Equal(max, points.Last());
        }
Exemple #11
0
        public void BoundsOk_CreatesOk()
        {
            var min = -1.4;
            var max = 2.5;
            var vbl = new VariableContinuous(min, max);

            var range = max - min;

            Assert.True(vbl.IsInBounds(min + range / 2));
            Assert.False(vbl.IsInBounds(max + range / 2));
            Assert.False(vbl.IsInBounds(min - range / 2));
        }
Exemple #12
0
        public void CreatedWithMixedArray_ConstructsOk()
        {
            var vbl1 = new VariableContinuous(-2.5, 2.6);
            var vbl2 = new VariableDiscrete(-6, 1);
            var vbl3 = new VariableContinuous(2, 7.4);
            var vbl4 = new VariableDiscrete(4, 12);

            var space = new DecisionSpace(new List <IVariable> {
                vbl1, vbl2, vbl3, vbl4
            });

            Assert.Equal(4, space.Count);
            Assert.Equal(space.ElementAt(0).IsInBounds(0), vbl1.IsInBounds(0));
            Assert.Equal(space.ElementAt(1).IsInBounds(0), vbl2.IsInBounds(0));
            Assert.Equal(space.ElementAt(2).IsInBounds(0), vbl3.IsInBounds(0));
            Assert.Equal(space.ElementAt(3).IsInBounds(0), vbl4.IsInBounds(0));
        }