public void DefaultConstructor_IsChartDataConverter()
        {
            // Call
            var converter = new ChartMultipleAreaDataConverter();

            // Assert
            Assert.IsInstanceOf <ChartDataConverter <ChartMultipleAreaData, MultipleAreaSeries> >(converter);
        }
        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);
        }
        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]);
        }