示例#1
0
        internal Parameter(double min, double max, bool logBase = false, int steps = 100)
        {
            Contract.Assert(max > min);
            Contract.Assert(steps > 0);
            Contract.Assert(!logBase || (logBase && min > 0));
            var option = new DoubleValueGenerator.Option()
            {
                Min     = min,
                Max     = max,
                Steps   = steps,
                LogBase = logBase,
            };

            this.ValueGenerator = new DoubleValueGenerator(option);
        }
        public void DoubleValueGenerator_should_generate_value_from_normalize(double min, double max, int step, bool logbase, double expect)
        {
            var option = new DoubleValueGenerator.Option()
            {
                Min     = min,
                Max     = max,
                Name    = "double",
                Steps   = step,
                LogBase = logbase,
            };

            var generator = new DoubleValueGenerator(option);

            generator.CreateFromNormalized(1.0f).RawValue.As <double>().Should().BeApproximately(max, 0.0001);
            generator.CreateFromNormalized(0f).RawValue.As <double>().Should().BeApproximately(min, 0.0001);
            generator.CreateFromNormalized(0.5f).RawValue.As <double>().Should().BeApproximately(expect, 0.0001);
        }
        public void DoubleValueGenerator_should_work_with_index(double min, double max, int step, bool logBase, int count)
        {
            var option = new DoubleValueGenerator.Option()
            {
                Min     = min,
                Max     = max,
                Steps   = step,
                Name    = "double",
                LogBase = logBase,
            };

            var generator = new DoubleValueGenerator(option);

            generator.Count.Should().Be(count + 1);
            generator[0].RawValue.Should().Be(min);
            ((double)generator[count].RawValue)
            .Should()
            .BeApproximately(max, 0.00001);
        }