Esempio n. 1
0
        public void GivenChartControlWithoutData_WhenDataSetToStackChartData_ThenChartControlUpdated()
        {
            // Given
            using (var chart = new StackChartControl())
            {
                var data = new StackChartData();
                data.AddColumn("Column 1");
                data.AddColumn("Column 2");
                data.AddRow("Row 1", new[]
                {
                    0.4,
                    0.2
                });
                data.AddRow("Row 2", new[]
                {
                    0.6,
                    0.8
                });

                // When
                chart.Data = data;

                // Then
                CategoryPlotView plotView = chart.Controls.OfType <CategoryPlotView>().Single();
                AssertColumns(data.Columns.ToList(), plotView);
                AssertSeries(data.Rows.Select(r => r.Name).ToList(), plotView);
            }
        }
        private static void CreateRowsForStochasts(StackChartData stackChartData, IDictionary <string, List <RoundedDouble> > stochasts)
        {
            IDictionary <string, List <RoundedDouble> > significantStochasts = new Dictionary <string, List <RoundedDouble> >();
            IDictionary <string, List <RoundedDouble> > remainingStochasts   = new Dictionary <string, List <RoundedDouble> >();

            foreach (KeyValuePair <string, List <RoundedDouble> > stochast in stochasts)
            {
                if (StochastIsSignificant(stochast))
                {
                    significantStochasts.Add(stochast);
                }
                else
                {
                    remainingStochasts.Add(stochast);
                }
            }

            foreach (KeyValuePair <string, List <RoundedDouble> > significantStochast in significantStochasts)
            {
                stackChartData.AddRow(significantStochast.Key, significantStochast.Value.Select(v => v.Value).ToArray());
            }

            if (remainingStochasts.Any())
            {
                stackChartData.AddRow(Resources.RiskeerStackChartDataFactory_RemainingRow_DisplayName,
                                      GetValuesForRemainingRow(remainingStochasts),
                                      Color.Gray);
            }
        }
Esempio n. 3
0
        public void GivenChartControlWithData_WhenDataSetToOtherStackChartData_ThenChartControlUpdated()
        {
            // Given
            using (var chart = new StackChartControl())
            {
                var data = new StackChartData();
                data.AddColumn("Column 1");
                data.AddColumn("Column 2");
                data.AddRow("Row 1", new[]
                {
                    0.4,
                    0.2
                });
                data.AddRow("Row 2", new[]
                {
                    0.6,
                    0.8
                });

                chart.Data = data;

                // Precondition
                CategoryPlotView plotView = chart.Controls.OfType <CategoryPlotView>().Single();
                AssertColumns(data.Columns.ToList(), plotView);
                AssertSeries(data.Rows.Select(r => r.Name).ToList(), plotView);

                // When
                var newData = new StackChartData();
                newData.AddColumn("Column 3");
                newData.AddColumn("Column 4");
                newData.AddRow("Row 3", new[]
                {
                    0.5,
                    0.7
                });
                newData.AddRow("Row 4", new[]
                {
                    0.5,
                    0.3
                });
                chart.Data = newData;

                // Then
                ElementCollection <Series> series = plotView.Model.Series;
                Assert.AreEqual(2, series.Count);
                Assert.AreEqual("Row 3", series[0].Title);
                Assert.AreEqual("Row 4", series[1].Title);

                CategoryAxis axis = plotView.Model.Axes.OfType <CategoryAxis>().Single();

                Assert.AreEqual(2, axis.Labels.Count);
                Assert.AreEqual("Column 3", axis.Labels[0]);
                Assert.AreEqual("Column 4", axis.Labels[1]);

                AssertColumns(newData.Columns.ToList(), plotView);
                AssertSeries(newData.Rows.Select(r => r.Name).ToList(), plotView);
            }
        }
Esempio n. 4
0
        public void GivenChartControlWithData_WhenDataNotified_ThenChartControlUpdated()
        {
            // Given
            using (var chart = new StackChartControl())
            {
                var data = new StackChartData();
                data.AddColumn("Column 1");
                data.AddColumn("Column 2");
                data.AddRow("Row 1", new[]
                {
                    0.4,
                    0.2
                });
                data.AddRow("Row 2", new[]
                {
                    0.6,
                    0.8
                });

                chart.Data = data;

                CategoryPlotView plotView = chart.Controls.OfType <CategoryPlotView>().Single();
                AssertColumns(data.Columns.ToList(), plotView);
                AssertSeries(data.Rows.Select(r => r.Name).ToList(), plotView);

                // When
                data.Clear();
                data.AddColumn("New column 1");
                data.AddColumn("New column 2");
                data.AddRow("New row 1", new[]
                {
                    0.3,
                    0.8
                });
                data.AddRow("New row 2", new[]
                {
                    0.8,
                    0.2
                });
                data.NotifyObservers();

                // Then
                ElementCollection <Series> series = plotView.Model.Series;
                Assert.AreEqual(2, series.Count);
                Assert.AreEqual("New row 1", series[0].Title);
                Assert.AreEqual("New row 2", series[1].Title);

                CategoryAxis axis = plotView.Model.Axes.OfType <CategoryAxis>().Single();

                Assert.AreEqual(2, axis.Labels.Count);
                Assert.AreEqual("New column 1", axis.Labels[0]);
                Assert.AreEqual("New column 2", axis.Labels[1]);
            }
        }
Esempio n. 5
0
        public void AddRow_ValidDataWithColor_AddRowToCollection()
        {
            // Setup
            const string name   = "Row 1";
            var          values = new[]
            {
                1.2
            };
            Color color = Color.Yellow;

            var data = new StackChartData();

            data.AddColumn("Column 1");

            // Call
            data.AddRow(name, values, color);

            // Assert
            Assert.AreEqual(1, data.Rows.Count());
            RowChartData row = data.Rows.First();

            Assert.AreEqual(name, row.Name);
            CollectionAssert.AreEqual(values, row.Values);
            Assert.AreEqual(color, row.Color);
        }
Esempio n. 6
0
        public void GivenChartControlWithData_WhenDataSetToNull_ThenChartControlUpdated()
        {
            // Given
            using (var chart = new StackChartControl())
            {
                var data = new StackChartData();
                data.AddColumn("Column 1");
                data.AddColumn("Column 2");
                data.AddRow("Row 1", new[]
                {
                    0.4,
                    0.2
                });
                data.AddRow("Row 2", new[]
                {
                    0.6,
                    0.8
                });

                chart.Data = data;

                // Precondition
                CategoryPlotView plotView = chart.Controls.OfType <CategoryPlotView>().Single();
                AssertColumns(data.Columns.ToList(), plotView);
                AssertSeries(data.Rows.Select(r => r.Name).ToList(), plotView);

                // When
                chart.Data = null;

                // Then
                ElementCollection <Series> series = plotView.Model.Series;
                CollectionAssert.IsEmpty(series);

                CategoryAxis axis = plotView.Model.Axes.OfType <CategoryAxis>().Single();

                CollectionAssert.IsEmpty(axis.Labels);
            }
        }
Esempio n. 7
0
        public void AddRow_ValuesNull_ThrowsArgumentNullException()
        {
            // Setup
            var data = new StackChartData();

            data.AddColumn("Column 1");

            // Call
            TestDelegate test = () => data.AddRow("test", null, Color.White);

            // Assert
            var exception = Assert.Throws <ArgumentNullException>(test);

            Assert.AreEqual("values", exception.ParamName);
        }
Esempio n. 8
0
        public void AddRow_NoColumnsAdded_ThrowInvalidOperationException()
        {
            // Setup
            var data = new StackChartData();
            // Call
            TestDelegate test = () => data.AddRow("Row", new[]
            {
                1.1,
                2.2
            });

            // Assert
            var exception = Assert.Throws <InvalidOperationException>(test);

            Assert.AreEqual("Cannot add rows before columns are added.", exception.Message);
        }
Esempio n. 9
0
        public void AddRow_NameNull_ThrowsArgumentNullException()
        {
            // Setup
            var data = new StackChartData();

            data.AddColumn("column 1");

            // Call
            TestDelegate test = () => data.AddRow(null, new[]
            {
                1.0
            }, Color.White);

            // Assert
            var exception = Assert.Throws <ArgumentNullException>(test);

            Assert.AreEqual("name", exception.ParamName);
        }
Esempio n. 10
0
        public void AddColumn_RowsAdded_ThrowsInvalidOperationException()
        {
            // Setup
            var data = new StackChartData();

            data.AddColumn("Column 1");
            data.AddRow("Row 1", new[]
            {
                1.1
            });

            // Call
            TestDelegate test = () => data.AddColumn("Column 2");

            // Assert
            var exception = Assert.Throws <InvalidOperationException>(test);

            Assert.AreEqual("Cannot add columns when rows already present.", exception.Message);
        }
        public void Create_CompleteStackChartData_ReturnChartDataSeriesForRows()
        {
            // Setup
            var data = new StackChartData();

            data.AddColumn("Column 1");
            data.AddColumn("Column 2");

            data.AddRow("Row 1", new[]
            {
                0.1,
                0.9
            });

            // Call
            IEnumerable <RowChartDataSeries> series = RowChartDataSeriesFactory.Create(data);

            // Assert
            Assert.AreEqual(data.Rows.Count(), series.Count());
        }
Esempio n. 12
0
        public void AddRow_NumberOfColumnsDifferentThanValueItems_ThrowsArgumentException()
        {
            // Setup
            var data = new StackChartData();

            data.AddColumn("column 1");
            data.AddColumn("column 2");

            // Call
            TestDelegate test = () => data.AddRow("test", new[]
            {
                2.1
            });

            // Assert
            const string message   = "The number of value items must be the same as the number of columns.";
            var          exception = TestHelper.AssertThrowsArgumentExceptionAndTestMessage <ArgumentException>(test, message);

            Assert.AreEqual("values", exception.ParamName);
        }
Esempio n. 13
0
        public void Clear_Always_ClearsAllColumnsAndRows()
        {
            // Setup
            var data = new StackChartData();

            data.AddColumn("Column 1");
            data.AddColumn("Column 2");
            data.AddRow("Row 1", new[]
            {
                1.0,
                2.0
            });

            // Precondition
            Assert.AreEqual(2, data.Columns.Count());
            Assert.AreEqual(1, data.Rows.Count());

            // Call
            data.Clear();

            // Assert
            CollectionAssert.IsEmpty(data.Columns);
            CollectionAssert.IsEmpty(data.Rows);
        }