public void ExponentialAverageTransform_Throw_On_Min_equal_One()
        {
            var sut     = new ExponentialAverageTransform();
            var sampler = new RandomUniform(seed: 32);

            sut.Transform(min: 1.0, max: 0.5, sampler: sampler);
        }
예제 #2
0
        public void ParameterBounds_NextValue()
        {
            var sut = new MinMaxParameterSpec(min: 20, max: 200,
                                              transform: Transform.Linear);

            var sampler = new RandomUniform(seed: 32);

            var actual = new double[10];

            for (int i = 0; i < actual.Length; i++)
            {
                actual[i] = sut.SampleValue(sampler: sampler);
            }

            var expected = new double[]
            {
                99.8935983236384,
                57.2098020451189,
                44.4149092419142,
                89.9002946307418,
                137.643828772774,
                114.250629522954,
                63.8914499915631,
                109.294177409864,
                188.567149950455,
                33.2731248034505
            };

            Assert.AreEqual(expected.Length, actual.Length);
            for (int i = 0; i < expected.Length; i++)
            {
                Assert.AreEqual(expected[i], actual[i], 0.000001);
            }
        }
        public void LogarithmicTransform_Throw_On_Min_equal_Zero()
        {
            var sut     = new LogarithmicTransform();
            var sampler = new RandomUniform(seed: 32);

            sut.Transform(min: 0, max: 1, sampler: sampler);
        }
        public void ExponentialAverageTransform_Throw_On_Max_Larger_Than_One()
        {
            var sut     = new ExponentialAverageTransform();
            var sampler = new RandomUniform(seed: 32);

            sut.Transform(min: 0.99, max: 1.1, sampler: sampler);
        }
        public void ExponentialAverageTransform_Throw_On_Min_Larger_Than_One()
        {
            var sut     = new ExponentialAverageTransform();
            var sampler = new RandomUniform(seed: 32);

            sut.Transform(min: 1.1, max: 0.99,
                          parameterType: ParameterType.Continuous, sampler: sampler);
        }
        public void Log10Transform_Throw_On_Max_below_Zero()
        {
            var sut     = new Log10Transform();
            var sampler = new RandomUniform(seed: 32);

            sut.Transform(min: 0.1, max: -0.1,
                          parameterType: ParameterType.Continuous, sampler: sampler);
        }
        public void ExponentialAverageTransform_Throw_On_Max_equal_One()
        {
            var sut     = new ExponentialAverageTransform();
            var sampler = new RandomUniform(seed: 32);

            sut.Transform(min: 0.9, max: 1.0,
                          parameterType: ParameterType.Continuous, sampler: sampler);
        }
예제 #8
0
        public void LogarithmicTransform_Throw_On_Max_equal_Zero()
        {
            var sut     = new LogarithmicTransform();
            var sampler = new RandomUniform(seed: 32);

            sut.Transform(min: 0.01, max: 0,
                          parameterType: ParameterType.Continuous, sampler: sampler);
        }
        public void LinearTransform_Transform()
        {
            var sut     = new LinearTransform();
            var sampler = new RandomUniform(seed: 32);

            var actual = new double[10];

            for (int i = 0; i < actual.Length; i++)
            {
                actual[i] = sut.Transform(min: 20, max: 200,
                                          parameterType: ParameterType.Continuous, sampler: sampler);
            }

            var expected = new double[] { 99.8935983236384, 57.2098020451189, 44.4149092419142, 89.9002946307418, 137.643828772774, 114.250629522954, 63.8914499915631, 109.294177409864, 188.567149950455, 33.2731248034505 };

            ArrayAssert.AssertAreEqual(expected, actual);
        }
예제 #10
0
        public void ExponentialAverageTransform_Transform()
        {
            var sut     = new ExponentialAverageTransform();
            var sampler = new RandomUniform(seed: 32);

            var actual = new double[10];

            for (int i = 0; i < actual.Length; i++)
            {
                actual[i] = sut.Transform(min: 0.9, max: 0.999,
                                          parameterType: ParameterType.Continuous, sampler: sampler);
            }

            var expected = new double[] { 0.992278411595665, 0.997409150148125, 0.998132430514324, 0.994020430192635, 0.979715997610774, 0.988851171960333, 0.996926149242493, 0.990178958939479, 0.925360566800827, 0.998595637693094 };

            ArrayAssert.AssertAreEqual(expected, actual);
        }
예제 #11
0
        public void Log10Transform_Transform()
        {
            var sut     = new Log10Transform();
            var sampler = new RandomUniform(seed: 32);

            var actual = new double[10];

            for (int i = 0; i < actual.Length; i++)
            {
                actual[i] = sut.Transform(min: 0.0001, max: 1,
                                          parameterType: ParameterType.Continuous, sampler: sampler);
            }

            var expected = new double[] { 0.00596229274859676, 0.000671250295495889, 0.000348781578382963, 0.00357552550811494, 0.0411440752926137, 0.012429636665806, 0.000944855847942692, 0.00964528475124291, 0.557104498829374, 0.000197223348905772, };

            ArrayAssert.AssertAreEqual(expected, actual);
        }
예제 #12
0
        public void RandomUniform_Sample_Continous()
        {
            var sut = new RandomUniform(32);

            var actual = new double[10];

            for (int i = 0; i < actual.Length; i++)
            {
                actual[i] = sut.Sample(min: 20, max: 200, parameterType: ParameterType.Continuous);
            }

            var expected = new double[] { 99.8935983236384, 57.2098020451189, 44.4149092419142, 89.9002946307418, 137.643828772774, 114.250629522954, 63.8914499915631, 109.294177409864, 188.567149950455, 33.2731248034505 };

            Assert.AreEqual(expected.Length, actual.Length);
            for (int i = 0; i < expected.Length; i++)
            {
                Assert.AreEqual(expected[i], actual[i], 0.000001);
            }
        }
예제 #13
0
        public void RandomUniformIntergers_Sample_Integer()
        {
            var sut = new RandomUniform(32);

            var actual = new double[10];

            for (int i = 0; i < actual.Length; i++)
            {
                actual[i] = sut.Sample(min: 20, max: 200, parameterType: ParameterType.Discrete);
            }

            var expected = new double[] { 100, 57, 44, 90, 138, 114, 64, 109, 189, 33 };

            Assert.AreEqual(expected.Length, actual.Length);
            for (int i = 0; i < expected.Length; i++)
            {
                Assert.AreEqual(expected[i], actual[i], 0.000001);
            }
        }
        public void ExponentialAverageTransform_Transform()
        {
            var sut     = new ExponentialAverageTransform();
            var sampler = new RandomUniform(seed: 32);

            var actual = new double[10];

            for (int i = 0; i < actual.Length; i++)
            {
                actual[i] = sut.Transform(min: 0.9, max: 0.999, sampler: sampler);
                Trace.Write(actual[i] + ", ");
            }

            var expected = new double[] { 0.992278411595665, 0.997409150148125, 0.998132430514324, 0.994020430192635, 0.979715997610774, 0.988851171960333, 0.996926149242493, 0.990178958939479, 0.925360566800827, 0.998595637693094 };

            Assert.AreEqual(expected.Length, actual.Length);
            for (int i = 0; i < expected.Length; i++)
            {
                Assert.AreEqual(expected[i], actual[i], 0.000001);
            }
        }
        public void RandomUniform_Throw_On_Min_Larger_Than_Max()
        {
            var sut = new RandomUniform(32);

            sut.Sample(min: 20, max: 10);
        }
        public void RandomUniform_Throw_On_Min_Equals_Than_Max()
        {
            var sut = new RandomUniform(32);

            sut.Sample(min: 20, max: 20);
        }
예제 #17
0
        public void RandomUniform_Throw_On_Min_Equals_Than_Max()
        {
            var sut = new RandomUniform(32);

            sut.Sample(min: 20, max: 20, parameterType: ParameterType.Continuous);
        }