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); } }
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]); } }
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 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 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); }
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); }
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); }
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 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); }