Beispiel #1
0
        public void DefaultConstructor_RetunsDefaultValues()
        {
            // Call
            var series = new MultipleAreaSeries();

            // Assert
            Assert.AreEqual(OxyColors.Fuchsia, series.Fill);
            Assert.AreEqual(OxyColors.Fuchsia, series.Color);
            Assert.AreEqual(0, series.StrokeThickness);
            CollectionAssert.IsEmpty(series.Areas);
        }
Beispiel #2
0
        public void Render_NoContext_ThrowsArgumentNullException()
        {
            // Setup
            var series = new MultipleAreaSeries();

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

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

            Assert.AreEqual("rc", paramName);
        }
Beispiel #3
0
        public void Render_NoAreas_NoCallForDrawPolygon()
        {
            // Setup
            var mocks         = new MockRepository();
            var renderContext = mocks.StrictMock <IRenderContext>();

            mocks.ReplayAll();

            var series = new MultipleAreaSeries();

            // Call
            series.Render(renderContext);

            // Assert
            mocks.VerifyAll();
        }
        public void ConvertSeriesProperties_ChartAreaStyleSetWithDifferentStrokeWidths_AppliesStyleToSeries(int width)
        {
            // Setup
            var converter          = new ChartMultipleAreaDataConverter();
            var multipleAreaSeries = new MultipleAreaSeries();
            var data = new ChartMultipleAreaData("test", new ChartAreaStyle
            {
                FillColor       = Color.Red,
                StrokeColor     = Color.Red,
                StrokeThickness = width
            });

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

            // Assert
            Assert.AreEqual(width, multipleAreaSeries.StrokeThickness);
        }
        public void ConvertSeriesProperties_ChartAreaStyleSetWithDifferentFillColors_AppliesStyleToSeries(KnownColor color)
        {
            // Setup
            var   converter          = new ChartMultipleAreaDataConverter();
            var   multipleAreaSeries = new MultipleAreaSeries();
            Color expectedColor      = Color.FromKnownColor(color);
            var   data = new ChartMultipleAreaData("test", new ChartAreaStyle
            {
                FillColor       = expectedColor,
                StrokeColor     = Color.Red,
                StrokeThickness = 3
            });

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

            // Assert
            AssertColors(expectedColor, multipleAreaSeries.Fill);
        }
Beispiel #6
0
        public void Render_MultipleNonEmptyArea_RendersTheAreas()
        {
            // Setup
            var random    = new Random(21);
            int areaCount = random.Next(5, 455);
            var series    = new MultipleAreaSeries();
            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.DrawPolygon(
                                     Arg <ScreenPoint[]> .Matches(sp => sp.Length == 1),
                                     Arg <OxyColor> .Is.Equal(series.Fill),
                                     Arg <OxyColor> .Is.Equal(series.Color),
                                     Arg <double> .Is.Equal(series.StrokeThickness),
                                     Arg <double[]> .Is.Anything,
                                     Arg <LineJoin> .Is.Anything,
                                     Arg <bool> .Is.Anything)).Repeat.Times(areaCount);

            mocks.ReplayAll();

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

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

            // Call
            series.Render(renderContext);

            // Assert
            mocks.VerifyAll();
        }
Beispiel #7
0
        public void GivenMultipleAreaSeriesAddedToView_WhenViewOpenedAndUpdated_ThenXYAxisIncludesSeriesValues()
        {
            // Given
            const int maxY   = 100;
            const int minY   = -25;
            const int maxX   = 50;
            const int minX   = -10;
            var       series = new MultipleAreaSeries
            {
                Areas =
                {
                    new[]
                    {
                        new DataPoint(minX, maxY)
                    },
                    new[]
                    {
                        new DataPoint(maxX, minY)
                    }
                }
            };

            using (var form = new Form())
                using (var view = new LinearPlotView())
                {
                    form.Controls.Add(view);

                    view.Model.Series.Add(series);

                    // When
                    form.Show();
                    view.Update();
                }

            // Then
            Assert.AreEqual(maxX, series.XAxis.DataMaximum);
            Assert.AreEqual(minX, series.XAxis.DataMinimum);
            Assert.AreEqual(maxY, series.YAxis.DataMaximum);
            Assert.AreEqual(minY, series.YAxis.DataMinimum);
        }
Beispiel #8
0
        public void GivenEmptyMultipleAreaSeriesAddedToView_WhenViewOpenedAndUpdated_ThenXYAxisNotChanged()
        {
            // Given

            var series = new MultipleAreaSeries();

            using (var form = new Form())
                using (var view = new LinearPlotView())
                {
                    form.Controls.Add(view);
                    view.Model.Series.Add(series);

                    // When
                    form.Show();
                    view.Update();
                }

            // Then
            Assert.AreEqual(double.NaN, series.XAxis.DataMaximum);
            Assert.AreEqual(double.NaN, series.XAxis.DataMinimum);
            Assert.AreEqual(double.NaN, series.YAxis.DataMaximum);
            Assert.AreEqual(double.NaN, series.YAxis.DataMinimum);
        }
        public void ConvertSeriesItems_ChartMultipleAreaDataWithRandomAreaData_ConvertsAllAreasToMultipleAreaSeries()
        {
            // Setup
            var converter          = new ChartMultipleAreaDataConverter();
            var multipleAreaSeries = new MultipleAreaSeries();
            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 areas = new List <Point2D[]>
            {
                points1.ToArray(),
                points2.ToArray()
            };

            var areaData = new ChartMultipleAreaData("test data")
            {
                Areas = areas
            };

            // Call
            converter.ConvertSeriesData(areaData, multipleAreaSeries);

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