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"); }