Пример #1
0
        public void DefaultConstructor_RetunsDefaultValues()
        {
            // Call
            var series = new MultipleLineSeries();

            // Assert
            Assert.AreEqual(OxyColors.Fuchsia, series.Color);
            Assert.AreEqual(0, series.StrokeThickness);
            Assert.AreEqual(LineStyle.Solid, series.LineStyle);
            CollectionAssert.IsEmpty(series.Lines);
        }
Пример #2
0
        public void Render_NoContext_ThrowsArgumentNullException()
        {
            var series = new MultipleLineSeries();

            // Call
            TestDelegate test = () => series.Render(null);

            // Assert
            string paramName = Assert.Throws <ArgumentNullException>(test).ParamName;

            Assert.AreEqual("rc", paramName);
        }
Пример #3
0
        public void Render_MultipleNonEmptyLine_RendersTheLines(LineStyle?style, double[] dashes)
        {
            // Setup
            var random    = new Random(21);
            int lineCount = random.Next(5, 455);
            var series    = new MultipleLineSeries();

            if (style.HasValue)
            {
                series.LineStyle = style.Value;
            }

            series.Dashes = dashes;
            var model = new PlotModel();

            model.Series.Add(series);

            var mocks         = new MockRepository();
            var renderContext = mocks.StrictMock <IRenderContext>();

            renderContext.Stub(rc => rc.SetClip(OxyRect.Create(0, 0, 0, 0))).Return(true);
            renderContext.Stub(rc => rc.ResetClip());
            renderContext.Expect(rc => rc.DrawLine(
                                     Arg <ScreenPoint[]> .Matches(sp => sp.Length == 1),
                                     Arg <OxyColor> .Is.Equal(series.Color),
                                     Arg <double> .Is.Equal(series.StrokeThickness),
                                     Arg <double[]> .Is.Equal(dashes ?? style.Value.GetDashArray()),
                                     Arg <LineJoin> .Is.Anything,
                                     Arg <bool> .Is.Anything)).Repeat.Times(lineCount);

            mocks.ReplayAll();

            for (var i = 0; i < lineCount; i++)
            {
                series.Lines.Add(new[]
                {
                    new DataPoint(random.Next(-50, 50), random.Next(-50, 50))
                });
            }

            ((IPlotModel)model).Update(false);

            // Call
            series.Render(renderContext);

            // Assert
            mocks.VerifyAll();
        }
Пример #4
0
        public void Render_NoLines_NoCallForDrawLine()
        {
            // Setup
            var mocks         = new MockRepository();
            var renderContext = mocks.StrictMock <IRenderContext>();

            mocks.ReplayAll();

            var series = new MultipleLineSeries();

            // Call
            series.Render(renderContext);

            // Assert
            mocks.VerifyAll();
        }
Пример #5
0
        public void ConvertSeriesProperties_ChartLineStyleSetWithDifferentStrokeWidths_AppliesStyleToSeries(int width)
        {
            // Setup
            var converter          = new ChartMultipleLineDataConverter();
            var multipleLineSeries = new MultipleLineSeries();
            var data = new ChartMultipleLineData("test", new ChartLineStyle
            {
                Color     = Color.Red,
                Width     = width,
                DashStyle = ChartLineDashStyle.Solid
            });

            // Call
            converter.ConvertSeriesProperties(data, multipleLineSeries);

            // Assert
            Assert.AreEqual(width, multipleLineSeries.StrokeThickness);
        }
Пример #6
0
        public void ConvertSeriesProperties_ChartLineStyleSetWithDifferentStrokeColors_AppliesStyleToSeries(KnownColor color)
        {
            // Setup
            var   converter          = new ChartMultipleLineDataConverter();
            var   multipleLineSeries = new MultipleLineSeries();
            Color expectedColor      = Color.FromKnownColor(color);
            var   data = new ChartMultipleLineData("test", new ChartLineStyle
            {
                Color     = expectedColor,
                Width     = 3,
                DashStyle = ChartLineDashStyle.Solid
            });

            // Call
            converter.ConvertSeriesProperties(data, multipleLineSeries);

            // Assert
            Assert.AreEqual(OxyColor.FromArgb(expectedColor.A, expectedColor.R, expectedColor.G, expectedColor.B), multipleLineSeries.Color);
        }
Пример #7
0
        public void ConvertSeriesProperties_ChartLineStyleSetWithDifferentDashStyles_AppliesStyleToSeries(ChartLineDashStyle dashStyle, LineStyle expectedLineStyle)
        {
            // Setup
            var converter          = new ChartMultipleLineDataConverter();
            var multipleLineSeries = new MultipleLineSeries();
            var data = new ChartMultipleLineData("test", new ChartLineStyle
            {
                Color     = Color.Red,
                Width     = 3,
                DashStyle = dashStyle
            });

            // Call
            converter.ConvertSeriesProperties(data, multipleLineSeries);

            // Assert
            Assert.AreEqual(expectedLineStyle, multipleLineSeries.LineStyle);
            Assert.IsNull(multipleLineSeries.Dashes);
        }
Пример #8
0
        public void ConvertSeriesItems_ChartMultipleLineDataWithRandomLineData_ConvertsAllLinesToMultipleLineSeries()
        {
            // Setup
            var converter          = new ChartMultipleLineDataConverter();
            var multipleLineSeries = new MultipleLineSeries();
            var random             = new Random(21);
            int randomCount        = random.Next(5, 10);

            var points1 = new Collection <Point2D>();
            var points2 = new Collection <Point2D>();

            for (var i = 0; i < randomCount; i++)
            {
                points1.Add(new Point2D(random.NextDouble(), random.NextDouble()));
                points2.Add(new Point2D(random.NextDouble(), random.NextDouble()));
            }

            var lines = new List <Point2D[]>
            {
                points1.ToArray(),
                points2.ToArray()
            };

            var lineData = new ChartMultipleLineData("test data")
            {
                Lines = lines
            };

            // Call
            converter.ConvertSeriesData(lineData, multipleLineSeries);

            // Assert
            Assert.AreEqual(2, multipleLineSeries.Lines.Count);
            CollectionAssert.AreEqual(lines.ElementAt(0).Select(t => new DataPoint(t.X, t.Y)), multipleLineSeries.Lines[0]);
            CollectionAssert.AreEqual(lines.ElementAt(1).Select(t => new DataPoint(t.X, t.Y)), multipleLineSeries.Lines[1]);
        }