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); } }
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); } }
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]); } }
/// <summary> /// Creates the columns for the given <paramref name="stackChartData"/>. /// </summary> /// <param name="illustrationPointControlItems">The data to create the columns from.</param> /// <param name="stackChartData">The stack chart data to create the columns for.</param> /// <exception cref="ArgumentNullException">Thrown when any parameter is <c>null</c>.</exception> public static void CreateColumns(IEnumerable <IllustrationPointControlItem> illustrationPointControlItems, StackChartData stackChartData) { if (illustrationPointControlItems == null) { throw new ArgumentNullException(nameof(illustrationPointControlItems)); } if (stackChartData == null) { throw new ArgumentNullException(nameof(stackChartData)); } IEnumerable <Tuple <string, string> > labels = illustrationPointControlItems.Select(controlItem => Tuple.Create(controlItem.WindDirectionName, controlItem.ClosingSituation)).ToArray(); bool showClosingSituation = illustrationPointControlItems.HasMultipleUniqueValues(item => item.ClosingSituation); foreach (Tuple <string, string> label in labels) { string columnName = label.Item1; if (showClosingSituation) { columnName = string.Format(Resources.RiskeerStackChartDataFactory_CreateColumns_WindDirection_0_ClosingSituation_1, columnName, label.Item2); } stackChartData.AddColumn(columnName); } }
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); }
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()); }
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); }
public void AddColumn_NameNull_ThrowsArgumentNullException() { // Setup var data = new StackChartData(); // Call TestDelegate test = () => data.AddColumn(null); // Assert var exception = Assert.Throws <ArgumentNullException>(test); Assert.AreEqual("name", exception.ParamName); }
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); } }
public void AddColumn_WithName_AddColumnToCollection() { // Setup const string columnName = "Column 1"; var data = new StackChartData(); // Call data.AddColumn(columnName); // Assert Assert.AreEqual(1, data.Columns.Count()); string column = data.Columns.First(); Assert.AreEqual(columnName, column); }
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); }
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); }