public void TimeSeriesComparisonGraphSecondOrderResponseTest()
        {
            const double zetaExpected  = 0.205;
            const double zetaActual    = 0.2;
            const double omega         = 1;
            const double theta         = Math.PI / 2;
            var          timestampBase = DateTime.Today;
            var          minY          = double.MaxValue;
            var          maxY          = double.MinValue;

            var expected = new TimeSeries();
            var actual   = new TimeSeries();

            for (double time = 0; time <= 31; time += 0.5)
            {
                var timestamp     = timestampBase.AddSeconds(time);
                var expectedValue = TimeSeriesChartTest.SecondOrderResponse(time, zetaExpected, omega, theta);
                var actualValue   = TimeSeriesChartTest.SecondOrderResponse(time, zetaActual, omega, theta);
                if (actualValue > maxY)
                {
                    maxY = actualValue;
                }
                if (actualValue < minY)
                {
                    minY = actualValue;
                }

                var okValue = time < 12 || time > 16 && time <25 || time> 25.5;

                actual.AddMeasurement(new Measurement
                {
                    Timestamp = timestamp,
                    Value     = actualValue.To <string>(),
                    IsGood    = okValue
                });
                expected.AddMeasurement(new Measurement
                {
                    Timestamp = timestamp,
                    Value     = expectedValue.To <string>(),
                    IsGood    = true
                });
            }

            var parameters = new Dictionary <string, string>
            {
                { "Min Value", "0.7" },
                { "Max Value", "1.6" },
                { "start timestamp", timestampBase.ToRoundTripFormat() },
                { "end timestamp", timestampBase.AddSeconds(30).ToRoundTripFormat() }
            };
            var comparison = new TimeSeriesComparison(expected, actual, Tolerance.Parse("1.0"));
            var result     = comparison.Graph(parameters);

            TimeSeriesChartTest.AssertChartImage(result, SecondOrderResponseLimitedYFile, nameof(TimeSeriesComparisonGraphSecondOrderResponseTest));
            parameters.Remove("Min Value");
            parameters.Remove("Max Value");
            var result2 = new TimeSeriesComparison(expected, actual, Tolerance.Parse("1.0")).Graph(parameters);

            TimeSeriesChartTest.AssertChartImage(result2, SecondOrderResponseFile, nameof(TimeSeriesComparisonGraphSecondOrderResponseTest));
        }