public void TestSimpleCase()
        {
            IEnumerable <object> x    = new object[] { 0d, 1d, 2d };
            IEnumerable <object> y    = new object[] { 1d, 2d, 4d };
            IEnumerable <object> xerr = new object[] { 0.25, 0.5, 0.75 };
            IEnumerable <object> yerr = new object[] { 0.5, 0.25, 0.125 };
            Line          line        = new Line(LineType.Solid, LineThickness.Thin);
            LineThickness bar         = LineThickness.Thin;
            LineThickness stopper     = LineThickness.Normal;
            Marker        marker      = new Marker(MarkerType.Cross, MarkerSize.Normal, 1);

            ErrorSeries input  = new ErrorSeries("asdf", Color.Blue, true, x, y, line, marker, bar, stopper, xerr, yerr, "", "");
            var         output = exporter.Export(input, AxisLabelCollection.Empty()).Result;

            Assert.NotNull(output);
            Assert.True(output is ScatterErrorSeries);
            ScatterErrorSeries errorSeries = (ScatterErrorSeries)output;

            Assert.AreEqual("asdf", errorSeries.Title);
            Assert.AreEqual(3, errorSeries.ItemsSource.Count());

            // Marker style
            Assert.AreEqual(OxyPlot.MarkerType.Cross, errorSeries.MarkerType);
            Assert.AreEqual(7, errorSeries.MarkerSize);

            // Line style TBI

            // Bar style
            Assert.AreEqual(0.25, errorSeries.ErrorBarStrokeThickness);

            // TBI: stopper thickness

            // Colours
            Assert.AreEqual(OxyColors.Blue, errorSeries.ErrorBarColor);
        }
        public void TestSeriesWithThisData(IEnumerable <double> x, IEnumerable <double> y, IEnumerable <double> xerr, IEnumerable <double> yerr)
        {
            Line          line    = new Line(LineType.Solid, LineThickness.Thin);
            LineThickness bar     = LineThickness.Thin;
            LineThickness stopper = LineThickness.Normal;
            Marker        marker  = new Marker(MarkerType.Cross, MarkerSize.Normal, 1);

            ErrorSeries input  = new ErrorSeries("asdf", Color.Blue, true, x, y, line, marker, bar, stopper, xerr, yerr, "", "");
            var         output = exporter.Export(input, AxisLabelCollection.Empty()).Result;

            Assert.NotNull(output);
            Assert.True(output is ScatterErrorSeries);
            ScatterErrorSeries series = (ScatterErrorSeries)output;

            int n = x.Count();

            Assert.AreEqual(n, series.ItemsSource.Count());
            IEnumerable <ScatterErrorPoint> points = series.ItemsSource.Cast <ScatterErrorPoint>();
            bool havexError = xerr != null && xerr.Any();
            bool haveyError = yerr != null && yerr.Any();

            IEnumerator <double>            enumeratorX      = x.GetEnumerator();
            IEnumerator <double>            enumeratorY      = y.GetEnumerator();
            IEnumerator <ScatterErrorPoint> seriesEnumerator = points.GetEnumerator();
            IEnumerator <double>            enumeratorXErr   = xerr?.GetEnumerator();
            IEnumerator <double>            enumeratorYErr   = yerr?.GetEnumerator();

            while (enumeratorX.MoveNext() && enumeratorY.MoveNext() && seriesEnumerator.MoveNext() &&
                   (!havexError || enumeratorXErr.MoveNext()) &&
                   (!haveyError || enumeratorYErr.MoveNext()))
            {
                ScatterErrorPoint point = seriesEnumerator.Current;
                Assert.AreEqual(enumeratorX.Current, point.X);
                Assert.AreEqual(enumeratorY.Current, point.Y);
                double expectedXerr = havexError ? enumeratorXErr.Current : 0;
                double expectedYerr = haveyError ? enumeratorYErr.Current : 0;
                Assert.AreEqual(expectedXerr, point.ErrorX);
                Assert.AreEqual(expectedYerr, point.ErrorY);
            }
            Assert.False(enumeratorX.MoveNext(), "X input has more data");
            Assert.False(enumeratorY.MoveNext(), "Y input has more data");
            Assert.False(seriesEnumerator.MoveNext(), "Series has more data");
        }