public void GetGridPoints_StateSpaceLowerBoundHigherThanUpperBound_ThrowsArgumentException()
        {
            const double spacing = 15.0;
            const double stateSpaceLowerBound = 121.2;
            const double stateSpaceUpperBound = 121.19;

            var gridCalc = new FixedSpacingStateSpaceGridCalc(spacing);

            Assert.Throws <ArgumentException>(() =>
                                              gridCalc.GetGridPoints(stateSpaceLowerBound, stateSpaceUpperBound).ToArray());
        }
        public void GetGridPoints_StateSpaceLessThanSpacing_ReturnsStateSpaceLowerAndUpperBounds()
        {
            const double spacing = 50.0;
            const double stateSpaceLowerBound = 120.55;
            const double stateSpaceUpperBound = 161.89;

            var gridCalc = new FixedSpacingStateSpaceGridCalc(spacing);

            var gridPoints = gridCalc.GetGridPoints(stateSpaceLowerBound, stateSpaceUpperBound);

            var expectedGridPoints = new[] { stateSpaceLowerBound, stateSpaceUpperBound };

            Assert.Equal(expectedGridPoints, gridPoints);
        }
        public void GetGridPoints_StateSpaceLowerBoundEqualToUpperBound_ReturnsSinglePoint()
        {
            const double spacing = 15.0;
            const double stateSpaceLowerBound = 121.2;
            const double stateSpaceUpperBound = stateSpaceLowerBound;

            var gridCalc = new FixedSpacingStateSpaceGridCalc(spacing);

            var gridPoints = gridCalc.GetGridPoints(stateSpaceLowerBound, stateSpaceUpperBound);

            var expectedGridPoints = new[]
            {
                stateSpaceLowerBound
            };

            Assert.Equal(expectedGridPoints, gridPoints);
        }
        public void GetGridPoints_StateSpaceUpperEqualsLowerPlusSpacing_ReturnsStateSpaceLowerAndUpperBounds()
        {
            const double spacing = 15.0;
            const double stateSpaceLowerBound = 121.2;
            const double stateSpaceUpperBound = stateSpaceLowerBound + spacing;

            var gridCalc = new FixedSpacingStateSpaceGridCalc(spacing);

            var gridPoints = gridCalc.GetGridPoints(stateSpaceLowerBound, stateSpaceUpperBound);

            var expectedGridPoints = new[]
            {
                stateSpaceLowerBound,
                stateSpaceUpperBound
            };

            Assert.Equal(expectedGridPoints, gridPoints);
        }
        public void GetGridPoints_ReturnsStateSpaceLowerAndUpperBoundsSeparatedBySpacing()
        {
            const double spacing = 15.0;
            const double stateSpaceLowerBound = 121.2;
            const double stateSpaceUpperBound = 174.89;

            var gridCalc = new FixedSpacingStateSpaceGridCalc(spacing);

            var gridPoints = gridCalc.GetGridPoints(stateSpaceLowerBound, stateSpaceUpperBound);

            var expectedGridPoints = new[]
            {
                stateSpaceLowerBound,
                136.2,
                151.2,
                166.2,
                stateSpaceUpperBound,
            };

            Assert.Equal(expectedGridPoints, gridPoints);
        }