public void Generate_start_stop_count_sequence_ok(double start, double stop, int count, double[] expectedOutput)
        {
            var generator = new SequentialDoubleGenerator
            {
                Start = start,
                End = stop,
                Count = count
            };

            var actualOutput = generator.Run().Cast<double>();
            Assert.AreElementsEqual(expectedOutput, actualOutput, approximative);
        }
        public void Generate_sequence_with_invalid_property_settings_should_throw_exception(double?start, double?stop, double?step, int?count)
        {
            var generator = new SequentialDoubleGenerator
            {
                Start = start,
                End   = stop,
                Step  = step,
                Count = count
            };

            Assert.Throws <GenerationException>(() => generator.Run().Cast <double>().ToArray());
        }
        public void Generate_start_stop_step_sequence_ok(double start, double stop, double step, double[] expectedOutput)
        {
            var generator = new SequentialDoubleGenerator
            {
                Start = start,
                End   = stop,
                Step  = step
            };

            var actualOutput = generator.Run().Cast <double>();

            Assert.AreElementsEqual(expectedOutput, actualOutput, approximative);
        }
        public void Generate_filtered_sequence()
        {
            var generator = new SequentialDoubleGenerator
            {
                Start  = 0,
                End    = 100,
                Step   = 1,
                Filter = IsPrime
            };

            var actualOutput = generator.Run().Cast <double>();

            Assert.AreElementsEqual(new double[] { 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97 }, actualOutput);
        }
            private static IEnumerable <double> NumbersImpl(double?start, double?end, double?step, int?count)
            {
                var generator = new SequentialDoubleGenerator
                {
                    Start = start,
                    End   = end,
                    Step  = step,
                    Count = count,
                };

                foreach (double value in generator.Run())
                {
                    yield return(value);
                }
            }
        public void Generate_filtered_sequence()
        {
            var generator = new SequentialDoubleGenerator
            {
                Start = 0,
                End = 100,
                Step = 1,
                Filter = IsPrime
            };

            var actualOutput = generator.Run().Cast<double>();
            Assert.AreElementsEqual(new double[] { 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97 }, actualOutput);
        }
        public void Generate_sequence_with_invalid_property_settings_should_throw_exception(double? start, double? stop, double? step, int? count)
        {
            var generator = new SequentialDoubleGenerator
            {
                Start = start,
                End = stop,
                Step = step,
                Count = count
            };

            Assert.Throws<GenerationException>(() => generator.Run().Cast<double>().ToArray());
        }
            private static IEnumerable<double> NumbersImpl(double? start, double? end, double? step, int? count)
            {
                var generator = new SequentialDoubleGenerator
                {
                    Start = start,
                    End = end,
                    Step = step,
                    Count = count,
                };

                foreach (double value in generator.Run())
                    yield return value;
            }