public void ContextMenuStrip_InvisibleChartDataInChartDataCollection_ZoomToAllDisabled() { // Setup var builder = new CustomItemsOnlyContextMenuBuilder(); contextMenuBuilderProvider.Expect(p => p.Get(null, null)).IgnoreArguments().Return(builder); mocks.ReplayAll(); var pointData = new ChartPointData("test data") { IsVisible = false }; var chartDataCollection = new ChartDataCollection("test data"); chartDataCollection.Add(pointData); // Call using (ContextMenuStrip contextMenu = info.ContextMenuStrip(chartDataCollection, null, null)) { // Assert TestHelper.AssertContextMenuStripContainsItem(contextMenu, contextMenuZoomToAllIndex, "&Zoom naar alles", "Om het zoomniveau aan te passen moet er minstens één gegevensreeks in deze map met gegevensreeksen zichtbaar zijn.", Resources.ZoomToAllIcon, false); } }
public void GivenChartControlWithData_WhenDataSetToOtherChartDataCollection_ThenChartControlUpdated() { // Given using (var chartControl = new ChartControl()) { LinearPlotView linearPlotView = GetLinearPlotView(chartControl); var chartPointData = new ChartPointData("Points"); var chartLineData = new ChartLineData("Lines"); var chartAreaData = new ChartAreaData("Areas"); var chartDataCollection1 = new ChartDataCollection("Collection 1"); var chartDataCollection2 = new ChartDataCollection("Collection 2"); chartDataCollection1.Add(chartPointData); chartDataCollection2.Add(chartLineData); chartDataCollection2.Add(chartAreaData); chartControl.Data = chartDataCollection1; // Precondition Assert.AreEqual(1, linearPlotView.Model.Series.Count); Assert.AreEqual("Points", linearPlotView.Model.Series[0].Title); // When chartControl.Data = chartDataCollection2; // Then Assert.AreEqual(2, linearPlotView.Model.Series.Count); Assert.AreEqual("Lines", linearPlotView.Model.Series[0].Title); Assert.AreEqual("Areas", linearPlotView.Model.Series[1].Title); } }
public void Selection_NestedNodeData_ReturnsWrappedObjectData() { // Setup var mocks = new MockRepository(); var contextMenuBuilderProvider = mocks.Stub <IContextMenuBuilderProvider>(); mocks.ReplayAll(); ChartData chartData = CreateChartData(); var chartDataCollection = new ChartDataCollection("collection"); chartDataCollection.Add(chartData); using (var view = new ChartLegendView(contextMenuBuilderProvider) { Data = chartDataCollection }) { var context = new ChartDataContext(chartData, chartDataCollection); var treeViewControl = TypeUtils.GetField <TreeViewControl>(view, "treeViewControl"); WindowsFormsTestHelper.Show(treeViewControl); treeViewControl.TrySelectNodeForData(context); // Call object selection = view.Selection; // Assert Assert.AreSame(chartData, selection); } WindowsFormsTestHelper.CloseAll(); mocks.VerifyAll(); }
public async Task LoadChart() { var stockInfo = new StockInfoItem { Id = StockValueContext.Id, MarketType = StockValueContext.ExchangeTypeKey, Name = StockValueContext.Name }; StockChartModel chartModel = await _queryService.GetRealTimeTradeChartAsync(stockInfo); // Set the start and end value to y axis SetOpenCloseTimeToCharAxis(chartModel); // Set the top and bottom value for the chart SetUpDownLimitLineToChart(chartModel.StockMessage); // Draw the middle, up and down extra line for the chart DrawExtraLines(chartModel.StockMessage); // 設定股價座標顯示的區間次數 SetPriceTickInterval(Convert.ToDouble(chartModel.StockMessage.LimitUp), Convert.ToDouble(chartModel.StockMessage.LimitDown), 5); // Add stock point to chart foreach (var point in chartModel.ChartData) { DateTime xDateTime = DateTimeUtils.UnixTimeStampToDateTime(Convert.ToDouble(point.Timestemp)); var axisPoint = DateTimeAxis.CreateDataPoint(xDateTime, Convert.ToDouble(point.Value)); ChartDataCollection.Add(axisPoint); } }
public void GivenChartControlWithData_WhenChartDataNotifiesChange_ThenAllSeriesReused() { // Given using (var chartControl = new ChartControl()) { LinearPlotView linearPlotView = GetLinearPlotView(chartControl); var chartPointData = new ChartPointData("Points"); var chartLineData = new ChartLineData("Lines"); var chartAreaData = new ChartAreaData("Areas"); var chartDataCollection = new ChartDataCollection("Root collection"); var nestedChartDataCollection1 = new ChartDataCollection("Nested collection 1"); var nestedChartDataCollection2 = new ChartDataCollection("Nested collection 2"); chartDataCollection.Add(chartPointData); chartDataCollection.Add(nestedChartDataCollection1); nestedChartDataCollection1.Add(chartLineData); nestedChartDataCollection1.Add(nestedChartDataCollection2); nestedChartDataCollection2.Add(chartAreaData); chartControl.Data = chartDataCollection; List <Series> seriesBeforeUpdate = linearPlotView.Model.Series.ToList(); // When chartLineData.Points = new Point2D[0]; chartLineData.NotifyObservers(); // Then CollectionAssert.AreEqual(seriesBeforeUpdate, linearPlotView.Model.Series); } }
public void GivenChartControlWithoutData_WhenDataSetToChartDataCollection_ThenChartControlUpdated() { // Given using (var chartControl = new ChartControl()) { LinearPlotView linearPlotView = GetLinearPlotView(chartControl); var chartPointData = new ChartPointData("Points"); var chartLineData = new ChartLineData("Lines"); var chartAreaData = new ChartAreaData("Areas"); var chartDataCollection = new ChartDataCollection("Root collection"); var nestedChartDataCollection1 = new ChartDataCollection("Nested collection 1"); var nestedChartDataCollection2 = new ChartDataCollection("Nested collection 2"); chartDataCollection.Add(chartPointData); chartDataCollection.Add(nestedChartDataCollection1); nestedChartDataCollection1.Add(chartLineData); nestedChartDataCollection1.Add(nestedChartDataCollection2); nestedChartDataCollection2.Add(chartAreaData); // When chartControl.Data = chartDataCollection; // Then ElementCollection <Series> series = linearPlotView.Model.Series; Assert.AreEqual(3, series.Count); Assert.AreEqual("Points", series[0].Title); Assert.AreEqual("Lines", series[1].Title); Assert.AreEqual("Areas", series[2].Title); } }
public void ContextMenuStrip_ChartDataCollectionWithVisibleChartData_ZoomToAllEnabled() { // Setup var builder = new CustomItemsOnlyContextMenuBuilder(); contextMenuBuilderProvider.Expect(p => p.Get(null, null)).IgnoreArguments().Return(builder); mocks.ReplayAll(); var chartPointData = new ChartPointData("test") { IsVisible = true, Points = new[] { new Point2D(0, 1) } }; var chartDataCollection = new ChartDataCollection("test data"); chartDataCollection.Add(chartPointData); // Call using (ContextMenuStrip contextMenu = info.ContextMenuStrip(chartDataCollection, null, null)) { // Assert TestHelper.AssertContextMenuStripContainsItem(contextMenu, contextMenuZoomToAllIndex, "&Zoom naar alles", "Zet het zoomniveau van de grafiek dusdanig dat alle zichtbare gegevensreeksen in deze map met gegevensreeksen precies in het beeld passen.", Resources.ZoomToAllIcon); } }
public void ZoomToVisibleSeries_ChartInFormWithEmptyDataSetAndZoomChildChartData_ViewNotInvalidated() { // Setup using (var form = new Form()) { var chartControl = new ChartControl(); LinearPlotView linearPlotView = GetLinearPlotView(chartControl); form.Controls.Add(chartControl); form.Show(); var chartDataCollection = new ChartDataCollection("Collection"); var chartData = new ChartPointData("Test data"); var invalidated = 0; chartDataCollection.Add(chartData); chartControl.Data = chartDataCollection; chartControl.Update(); var expectedExtent = new Extent( linearPlotView.Model.Axes[0].ActualMinimum, linearPlotView.Model.Axes[0].ActualMaximum, linearPlotView.Model.Axes[1].ActualMinimum, linearPlotView.Model.Axes[1].ActualMaximum); linearPlotView.Invalidated += (sender, args) => invalidated++; // Call chartControl.ZoomToVisibleSeries(chartData); // Assert Assert.AreEqual(0, invalidated); AssertExpectedExtent(linearPlotView.Model.Axes, expectedExtent); } }
private static void SetWaternetZonesChartData(MacroStabilityInwardsWaternet waternet, MacroStabilityInwardsSurfaceLine surfaceLine, ChartDataCollection chartData) { chartData.Clear(); foreach (MacroStabilityInwardsPhreaticLine phreaticLine in waternet.PhreaticLines) { ChartLineData phreaticLineChartData = MacroStabilityInwardsChartDataFactory.CreatePhreaticLineChartData(phreaticLine.Name, true); phreaticLineChartData.Points = MacroStabilityInwardsChartDataPointsFactory.CreatePhreaticLinePoints(phreaticLine); chartData.Add(phreaticLineChartData); } foreach (MacroStabilityInwardsWaternetLine waternetLine in waternet.WaternetLines) { ChartMultipleAreaData waternetLineChartData = MacroStabilityInwardsChartDataFactory.CreateWaternetZoneChartData(waternetLine.Name, true); waternetLineChartData.Areas = MacroStabilityInwardsChartDataPointsFactory.CreateWaternetZonePoints(waternetLine, surfaceLine); chartData.Add(waternetLineChartData); } }
public void Clear_Always_RemovesAllItems() { // Setup var item1 = new ChartLineData("test"); var item2 = new ChartLineData("test"); var chartDataCollection = new ChartDataCollection("test"); chartDataCollection.Add(item1); chartDataCollection.Add(item2); // Precondition Assert.AreEqual(2, chartDataCollection.Collection.Count()); // Call chartDataCollection.Clear(); // Assert CollectionAssert.IsEmpty(chartDataCollection.Collection); }
public void GivenChartControlWithData_WhenChartDataAdded_ThenCorrespondingSeriesAddedAndOtherSeriesReused() { // Given using (var chartControl = new ChartControl()) { LinearPlotView linearPlotView = GetLinearPlotView(chartControl); var chartPointData = new ChartPointData("Points"); var chartLineData = new ChartLineData("Lines"); var chartAreaData = new ChartAreaData("Areas"); var chartDataCollection = new ChartDataCollection("Root collection"); var nestedChartDataCollection1 = new ChartDataCollection("Nested collection 1"); var nestedChartDataCollection2 = new ChartDataCollection("Nested collection 2"); chartDataCollection.Add(chartPointData); chartDataCollection.Add(nestedChartDataCollection1); nestedChartDataCollection1.Add(chartLineData); nestedChartDataCollection1.Add(nestedChartDataCollection2); nestedChartDataCollection2.Add(chartAreaData); chartControl.Data = chartDataCollection; List <Series> seriesBeforeUpdate = linearPlotView.Model.Series.ToList(); // Precondition Assert.AreEqual(3, seriesBeforeUpdate.Count); // When nestedChartDataCollection1.Insert(0, new ChartAreaData("Additional areas")); nestedChartDataCollection1.NotifyObservers(); // Then ElementCollection <Series> series = linearPlotView.Model.Series; Assert.AreEqual(4, series.Count); Assert.AreEqual("Points", series[0].Title); Assert.AreEqual("Additional areas", series[1].Title); Assert.AreEqual("Lines", series[2].Title); Assert.AreEqual("Areas", series[3].Title); Assert.AreEqual(0, seriesBeforeUpdate.Except(series).Count()); } }
public void GivenChartControlWithData_WhenChartDataMoved_ThenCorrespondingSeriesMovedAndAllSeriesReused() { // Given using (var chartControl = new ChartControl()) { LinearPlotView linearPlotView = GetLinearPlotView(chartControl); var chartPointData = new ChartPointData("Points"); var chartLineData = new ChartLineData("Lines"); var chartAreaData = new ChartAreaData("Areas"); var chartDataCollection = new ChartDataCollection("Root collection"); chartDataCollection.Add(chartPointData); chartDataCollection.Add(chartLineData); chartDataCollection.Add(chartAreaData); chartControl.Data = chartDataCollection; List <Series> seriesBeforeUpdate = linearPlotView.Model.Series.ToList(); // Precondition Assert.AreEqual(3, seriesBeforeUpdate.Count); Assert.AreEqual("Points", seriesBeforeUpdate[0].Title); Assert.AreEqual("Lines", seriesBeforeUpdate[1].Title); Assert.AreEqual("Areas", seriesBeforeUpdate[2].Title); // When chartDataCollection.Remove(chartPointData); chartDataCollection.Add(chartPointData); chartDataCollection.NotifyObservers(); // Then ElementCollection <Series> series = linearPlotView.Model.Series; Assert.AreEqual(3, series.Count); Assert.AreEqual("Lines", series[0].Title); Assert.AreEqual("Areas", series[1].Title); Assert.AreEqual("Points", series[2].Title); Assert.AreEqual(0, seriesBeforeUpdate.Except(series).Count()); } }
public void Add_Null_ThrowsArgumentNullException() { // Setup var chartDataCollection = new ChartDataCollection("test"); // Call TestDelegate call = () => chartDataCollection.Add(null); // Assert const string expectedMessage = "An item cannot be null when adding it to the collection."; TestHelper.AssertThrowsArgumentExceptionAndTestMessage <ArgumentNullException>(call, expectedMessage); }
private static void SetWaternetZonesChartData(MacroStabilityInwardsWaternet waternet, ChartDataCollection chartData, IDictionary <MacroStabilityInwardsPhreaticLine, ChartLineData> phreaticLineLookup, IDictionary <MacroStabilityInwardsWaternetLine, ChartMultipleAreaData> waternetLineLookup) { chartData.Clear(); phreaticLineLookup.Clear(); waternetLineLookup.Clear(); foreach (MacroStabilityInwardsPhreaticLine phreaticLine in waternet.PhreaticLines) { ChartLineData phreaticLineChartData = MacroStabilityInwardsChartDataFactory.CreatePhreaticLineChartData(phreaticLine.Name, false); chartData.Add(phreaticLineChartData); phreaticLineLookup.Add(phreaticLine, phreaticLineChartData); } foreach (MacroStabilityInwardsWaternetLine waternetLine in waternet.WaternetLines) { ChartMultipleAreaData waternetLineChartData = MacroStabilityInwardsChartDataFactory.CreateWaternetZoneChartData(waternetLine.Name, false); chartData.Add(waternetLineChartData); waternetLineLookup.Add(waternetLine, waternetLineChartData); } }
public void OnDrop_ChartDataMovedToPositionOutsideRange_ThrowsException(int position) { // Setup var observer = mocks.StrictMock <IObserver>(); mocks.ReplayAll(); var chartData1 = new ChartLineData("line"); var chartData2 = new ChartAreaData("area"); var chartData3 = new ChartPointData("point"); var chartData4 = new ChartMultipleAreaData("multiple area"); var chartData5 = new ChartMultipleLineData("multiple line"); var chartDataCollection = new ChartDataCollection("test"); chartDataCollection.Add(chartData1); chartDataCollection.Add(chartData2); chartDataCollection.Add(chartData3); chartDataCollection.Add(chartData4); chartDataCollection.Add(chartData5); chartDataCollection.Attach(observer); chartLegendView.Data = chartDataCollection; ChartDataContext context = GetContext(chartData1); ChartDataContext collectionContext = GetContext(chartDataCollection); chartDataCollection.Attach(observer); using (var treeViewControl = new TreeViewControl()) { // Call void Call() => info.OnDrop(context, collectionContext, collectionContext, position, treeViewControl); // Assert Assert.Throws <ArgumentOutOfRangeException>(Call); } }
public void ContextMenuStrip_VisibleChartDataWithoutFeaturesInChartDataCollection_ZoomToAllDisabled() { // Setup var builder = new CustomItemsOnlyContextMenuBuilder(); contextMenuBuilderProvider.Expect(p => p.Get(null, null)).IgnoreArguments().Return(builder); mocks.ReplayAll(); var lineData = new ChartLineData("test line") { IsVisible = false, Points = new[] { new Point2D(1, 5) } }; var pointData = new ChartPointData("test data") { IsVisible = true }; var chartDataCollection = new ChartDataCollection("test data"); chartDataCollection.Add(pointData); chartDataCollection.Add(lineData); // Call using (ContextMenuStrip contextMenu = info.ContextMenuStrip(chartDataCollection, null, null)) { // Assert TestHelper.AssertContextMenuStripContainsItem(contextMenu, contextMenuZoomToAllIndex, "&Zoom naar alles", "Om het zoomniveau aan te passen moet minstens één van de zichtbare gegevensreeksen in deze map met gegevensreeksen elementen bevatten.", Resources.ZoomToAllIcon, false); } }
public void Add_NotNull_AddsItemToCollection() { // Setup var item = new ChartLineData("test"); var chartDataCollection = new ChartDataCollection("test"); // Call chartDataCollection.Add(item); // Assert List <ChartData> chartData = chartDataCollection.Collection.ToList(); Assert.AreEqual(1, chartData.Count); Assert.AreSame(item, chartData.First()); }
public void Insert_InvalidIndex_ThrowsArgumentOutOfRangeException(int invalidIndex) { // Setup var itemToInsert = new ChartLineData("test"); var existingItem = new TestChartData("test"); var chartDataCollection = new ChartDataCollection("test"); chartDataCollection.Add(existingItem); // Call TestDelegate call = () => chartDataCollection.Insert(invalidIndex, itemToInsert); // Assert Assert.Throws <ArgumentOutOfRangeException>(call, "index"); }
public void Constructor_ExpectedValues() { // Setup ChartData data = new TestChartData(); var collection = new ChartDataCollection("test"); collection.Add(data); // Call var context = new ChartDataContext(data, collection); // Assert Assert.IsInstanceOf <ObservableWrappedObjectContextBase <ChartData> >(context); Assert.AreSame(data, context.WrappedData); Assert.AreSame(collection, context.ParentChartData); }
public void Remove_ExistingItem_RemovesItem() { // Setup var item = new ChartLineData("test"); var chartDataCollection = new ChartDataCollection("test"); chartDataCollection.Add(item); // Precondition Assert.AreEqual(1, chartDataCollection.Collection.Count()); Assert.IsInstanceOf <ChartLineData>(chartDataCollection.Collection.First()); // Call chartDataCollection.Remove(item); // Assert CollectionAssert.IsEmpty(chartDataCollection.Collection); }
public void ZoomToVisibleSeries_ChartInFormForChildChartData_ViewInvalidatedSeriesSame() { // Setup using (var form = new Form()) { var chartControl = new ChartControl(); LinearPlotView linearPlotView = GetLinearPlotView(chartControl); form.Controls.Add(chartControl); form.Show(); var chartDataCollection = new ChartDataCollection("Collection"); var chartData = new ChartLineData("test data") { IsVisible = true, Points = new[] { new Point2D(0.0, 0.0), new Point2D(1.0, 1.0) } }; chartDataCollection.Add(chartData); var invalidated = 0; chartControl.Data = chartDataCollection; chartControl.Update(); linearPlotView.Invalidated += (sender, args) => invalidated++; // Call chartControl.ZoomToVisibleSeries(chartData); // Assert Assert.AreEqual(1, invalidated); var expectedExtent = new Extent( -0.01, 1.01, -0.01, 1.01); AssertExpectedExtent(linearPlotView.Model.Axes, expectedExtent); } }
public void Remove_Null_DoesNotRemove() { // Setup var item = new ChartLineData("test"); var chartDataCollection = new ChartDataCollection("test"); chartDataCollection.Add(item); // Precondition Assert.AreEqual(1, chartDataCollection.Collection.Count()); Assert.IsInstanceOf <ChartLineData>(chartDataCollection.Collection.First()); List <ChartData> listBeforeRemove = chartDataCollection.Collection.ToList(); // Call chartDataCollection.Remove(null); // Assert CollectionAssert.AreEqual(listBeforeRemove, chartDataCollection.Collection); }
public void Insert_ItemNotNullAndValidIndex_InsertsItemToCollectionAtGivenIndex() { // Setup var itemToInsert = new ChartLineData("test"); var existingItem = new TestChartData("test"); var chartDataCollection = new ChartDataCollection("test"); chartDataCollection.Add(existingItem); // Precondition Assert.AreEqual(1, chartDataCollection.Collection.Count()); Assert.AreSame(existingItem, chartDataCollection.Collection.ElementAt(0)); // Call chartDataCollection.Insert(0, itemToInsert); // Assert Assert.AreEqual(2, chartDataCollection.Collection.Count()); Assert.AreSame(itemToInsert, chartDataCollection.Collection.ElementAt(0)); Assert.AreSame(existingItem, chartDataCollection.Collection.ElementAt(1)); }
public void DisplayData(Model.StatisticsData statisticData) { ElectolarWindow.instance.Width = desiredWindowWidth; ElectolarWindow.instance.Height = desiredWindowHeight; if (!needRecalculate) { return; } //BarChart.ItemsSource = null; ChartDataCollection.Clear(); BarChart.Legends.Clear(); foreach (var candidateVotes in statisticData.candidateVotes) { ChartDataCollection.Add(new ChartData() { X = 1, Value = candidateVotes.Value, EntryName = candidateVotes.Key.name }); } foreach (var partyVotes in statisticData.partyVotes) { ChartDataCollection.Add(new ChartData() { X = 2, Value = partyVotes.Value, EntryName = partyVotes.Key }); } ChartDataCollection.Add(new ChartData() { X = 3, Value = statisticData.invalidVotesNumber, EntryName = "Invalid votes" }); BarChart.ItemsSource = ChartDataCollection; needRecalculate = false; }
public void ContextMenuStrip_DisabledZoomToAllContextMenuItemClicked_DoesNotThrow() { // Setup var builder = new CustomItemsOnlyContextMenuBuilder(); contextMenuBuilderProvider.Expect(p => p.Get(null, null)).IgnoreArguments().Return(builder); mocks.ReplayAll(); var lineData = new ChartLineData("test line"); var chartDataCollection = new ChartDataCollection("test data"); chartDataCollection.Add(lineData); using (ContextMenuStrip contextMenu = info.ContextMenuStrip(chartDataCollection, null, null)) { // Call void Call() => contextMenu.Items[contextMenuZoomToAllIndex].PerformClick(); // Assert Assert.DoesNotThrow(Call); } }
public void ZoomToVisibleSeries_ForInvisibleChildChartData_DoNotChangeViewExtentsOfChartView() { // Setup using (var form = new Form()) { var chartControl = new ChartControl(); LinearPlotView linearPlotView = GetLinearPlotView(chartControl); form.Controls.Add(chartControl); form.Show(); var chartDataCollection = new ChartDataCollection("Collection"); var chartData = new ChartLineData("test data") { IsVisible = false, Points = new[] { new Point2D(3.2, 4.1), new Point2D(11.2, 5.8) } }; chartDataCollection.Add(chartData); chartControl.Data = chartDataCollection; chartControl.Update(); var expectedExtent = new Extent( linearPlotView.Model.Axes[0].ActualMinimum, linearPlotView.Model.Axes[0].ActualMaximum, linearPlotView.Model.Axes[1].ActualMinimum, linearPlotView.Model.Axes[1].ActualMaximum); // Call chartControl.ZoomToVisibleSeries(chartData); // Assert AssertExpectedExtent(linearPlotView.Model.Axes, expectedExtent); } }
public void ContextMenuStrip_EnabledZoomToAllContextMenuItemClicked_DoZoomToVisibleData() { // Setup var lineData = new ChartLineData("test line") { IsVisible = true, Points = new[] { new Point2D(1, 5) } }; var chartDataCollection = new ChartDataCollection("test data"); chartDataCollection.Add(lineData); var builder = new CustomItemsOnlyContextMenuBuilder(); contextMenuBuilderProvider.Expect(p => p.Get(null, null)).IgnoreArguments().Return(builder); var chartControl = mocks.StrictMock <IChartControl>(); chartControl.Expect(c => c.Data).Return(new ChartDataCollection("name")); chartControl.Expect(c => c.ZoomToVisibleSeries(chartDataCollection)); mocks.ReplayAll(); chartLegendView.ChartControl = chartControl; using (ContextMenuStrip contextMenu = info.ContextMenuStrip(chartDataCollection, null, null)) { // Call contextMenu.Items[contextMenuZoomToAllIndex].PerformClick(); // Assert // Assert expectancies are called in TearDown() } }
/// <summary> /// Creates a new instance of <see cref="MacroStabilityInwardsInputView"/>. /// </summary> /// <param name="data">The calculation to show the input for.</param> /// <param name="generalInput">General calculation parameters that are the same across all calculations.</param> /// <param name="assessmentSection">The assessment section the calculation belongs to.</param> /// <param name="getHydraulicBoundaryLocationCalculationFunc">The <see cref="Func{TResult}"/> for /// obtaining the hydraulic boundary location calculation.</param> /// <exception cref="ArgumentNullException">Thrown when any input parameter is <c>null</c>.</exception> public MacroStabilityInwardsInputView(MacroStabilityInwardsCalculationScenario data, GeneralMacroStabilityInwardsInput generalInput, IAssessmentSection assessmentSection, Func <HydraulicBoundaryLocationCalculation> getHydraulicBoundaryLocationCalculationFunc) { if (data == null) { throw new ArgumentNullException(nameof(data)); } if (generalInput == null) { throw new ArgumentNullException(nameof(generalInput)); } if (assessmentSection == null) { throw new ArgumentNullException(nameof(assessmentSection)); } if (getHydraulicBoundaryLocationCalculationFunc == null) { throw new ArgumentNullException(nameof(getHydraulicBoundaryLocationCalculationFunc)); } this.data = data; this.generalInput = generalInput; this.getHydraulicBoundaryLocationCalculationFunc = getHydraulicBoundaryLocationCalculationFunc; InitializeComponent(); calculationObserver = new Observer(UpdateChartTitle) { Observable = data }; calculationInputObserver = new Observer(UpdateViewData) { Observable = data.InputParameters }; hydraulicLocationCalculationObserver = new Observer(UpdateViewData) { Observable = getHydraulicBoundaryLocationCalculationFunc() }; failureMechanismContributionObserver = new Observer(UpdateViewData) { Observable = assessmentSection.FailureMechanismContribution }; chartDataCollection = new ChartDataCollection(RiskeerCommonFormsResources.Calculation_Input); soilProfileChartData = RiskeerChartDataFactory.CreateSoilProfileChartData(); surfaceLineChartData = RiskeerChartDataFactory.CreateSurfaceLineChartData(); surfaceLevelInsideChartData = MacroStabilityInwardsChartDataFactory.CreateSurfaceLevelInsideChartData(); ditchPolderSideChartData = RiskeerChartDataFactory.CreateDitchPolderSideChartData(); bottomDitchPolderSideChartData = RiskeerChartDataFactory.CreateBottomDitchPolderSideChartData(); bottomDitchDikeSideChartData = RiskeerChartDataFactory.CreateBottomDitchDikeSideChartData(); ditchDikeSideChartData = RiskeerChartDataFactory.CreateDitchDikeSideChartData(); dikeToeAtPolderChartData = RiskeerChartDataFactory.CreateDikeToeAtPolderChartData(); shoulderTopInsideChartData = MacroStabilityInwardsChartDataFactory.CreateShoulderTopInsideChartData(); shoulderBaseInsideChartData = MacroStabilityInwardsChartDataFactory.CreateShoulderBaseInsideChartData(); dikeTopAtPolderChartData = MacroStabilityInwardsChartDataFactory.CreateDikeTopAtPolderChartData(); dikeToeAtRiverChartData = RiskeerChartDataFactory.CreateDikeToeAtRiverChartData(); dikeTopAtRiverChartData = MacroStabilityInwardsChartDataFactory.CreateDikeTopAtRiverChartData(); surfaceLevelOutsideChartData = MacroStabilityInwardsChartDataFactory.CreateSurfaceLevelOutsideChartData(); tangentLinesData = MacroStabilityInwardsChartDataFactory.CreateTangentLinesChartData(); leftGridChartData = MacroStabilityInwardsChartDataFactory.CreateLeftGridChartData(); rightGridChartData = MacroStabilityInwardsChartDataFactory.CreateRightGridChartData(); waternetZonesExtremeChartData = MacroStabilityInwardsChartDataFactory.CreateWaternetZonesExtremeChartDataCollection(); waternetZonesDailyChartData = MacroStabilityInwardsChartDataFactory.CreateWaternetZonesDailyChartDataCollection(); chartDataCollection.Add(soilProfileChartData); chartDataCollection.Add(surfaceLineChartData); chartDataCollection.Add(surfaceLevelInsideChartData); chartDataCollection.Add(ditchPolderSideChartData); chartDataCollection.Add(bottomDitchPolderSideChartData); chartDataCollection.Add(bottomDitchDikeSideChartData); chartDataCollection.Add(ditchDikeSideChartData); chartDataCollection.Add(dikeToeAtPolderChartData); chartDataCollection.Add(shoulderTopInsideChartData); chartDataCollection.Add(shoulderBaseInsideChartData); chartDataCollection.Add(dikeTopAtPolderChartData); chartDataCollection.Add(dikeToeAtRiverChartData); chartDataCollection.Add(dikeTopAtRiverChartData); chartDataCollection.Add(surfaceLevelOutsideChartData); chartDataCollection.Add(tangentLinesData); chartDataCollection.Add(leftGridChartData); chartDataCollection.Add(rightGridChartData); chartDataCollection.Add(waternetZonesExtremeChartData); chartDataCollection.Add(waternetZonesDailyChartData); soilLayerChartDataLookup = new List <ChartMultipleAreaData>(); SetChartData(); chartControl.Data = chartDataCollection; UpdateChartTitle(); UpdateTableData(); }
/// <summary> /// Creates a new instance of <see cref="MacroStabilityInwardsOutputChartControl"/>. /// </summary> /// <param name="data">The calculation to show the output for.</param> /// <param name="generalInput">General calculation parameters that are the same across all calculations.</param> /// <param name="getNormativeAssessmentLevelFunc"><see cref="Func{TResult}"/> for obtaining the normative assessment level.</param> /// <exception cref="ArgumentNullException">Thrown when any input parameter is <c>null</c>.</exception> public MacroStabilityInwardsOutputChartControl(MacroStabilityInwardsCalculationScenario data, GeneralMacroStabilityInwardsInput generalInput, Func <RoundedDouble> getNormativeAssessmentLevelFunc) { if (data == null) { throw new ArgumentNullException(nameof(data)); } if (generalInput == null) { throw new ArgumentNullException(nameof(generalInput)); } if (getNormativeAssessmentLevelFunc == null) { throw new ArgumentNullException(nameof(getNormativeAssessmentLevelFunc)); } this.data = data; this.generalInput = generalInput; this.getNormativeAssessmentLevelFunc = getNormativeAssessmentLevelFunc; InitializeComponent(); chartDataCollection = new ChartDataCollection(RiskeerCommonFormsResources.CalculationOutput_DisplayName); soilProfileChartData = RiskeerChartDataFactory.CreateSoilProfileChartData(); surfaceLineChartData = RiskeerChartDataFactory.CreateSurfaceLineChartData(); surfaceLevelInsideChartData = MacroStabilityInwardsChartDataFactory.CreateSurfaceLevelInsideChartData(); ditchPolderSideChartData = RiskeerChartDataFactory.CreateDitchPolderSideChartData(); bottomDitchPolderSideChartData = RiskeerChartDataFactory.CreateBottomDitchPolderSideChartData(); bottomDitchDikeSideChartData = RiskeerChartDataFactory.CreateBottomDitchDikeSideChartData(); ditchDikeSideChartData = RiskeerChartDataFactory.CreateDitchDikeSideChartData(); dikeToeAtPolderChartData = RiskeerChartDataFactory.CreateDikeToeAtPolderChartData(); shoulderTopInsideChartData = MacroStabilityInwardsChartDataFactory.CreateShoulderTopInsideChartData(); shoulderBaseInsideChartData = MacroStabilityInwardsChartDataFactory.CreateShoulderBaseInsideChartData(); dikeTopAtPolderChartData = MacroStabilityInwardsChartDataFactory.CreateDikeTopAtPolderChartData(); dikeToeAtRiverChartData = RiskeerChartDataFactory.CreateDikeToeAtRiverChartData(); dikeTopAtRiverChartData = MacroStabilityInwardsChartDataFactory.CreateDikeTopAtRiverChartData(); surfaceLevelOutsideChartData = MacroStabilityInwardsChartDataFactory.CreateSurfaceLevelOutsideChartData(); waternetZonesExtremeChartData = MacroStabilityInwardsChartDataFactory.CreateWaternetZonesExtremeChartDataCollection(); waternetZonesDailyChartData = MacroStabilityInwardsChartDataFactory.CreateWaternetZonesDailyChartDataCollection(); tangentLinesChartData = MacroStabilityInwardsChartDataFactory.CreateTangentLinesChartData(); leftGridChartData = MacroStabilityInwardsChartDataFactory.CreateLeftGridChartData(); rightGridChartData = MacroStabilityInwardsChartDataFactory.CreateRightGridChartData(); slipPlaneChartData = MacroStabilityInwardsChartDataFactory.CreateSlipPlaneChartData(); leftCircleRadiusChartData = MacroStabilityInwardsChartDataFactory.CreateActiveCircleRadiusChartData(); rightCircleRadiusChartData = MacroStabilityInwardsChartDataFactory.CreatePassiveCircleRadiusChartData(); slicesChartData = MacroStabilityInwardsSliceChartDataFactory.CreateSlicesChartData(); sliceParametersChartDataCollection = MacroStabilityInwardsSliceChartDataFactory.CreateSliceParametersChartDataCollection(); sliceCohesionChartData = MacroStabilityInwardsSliceChartDataFactory.CreateCohesionChartData(); sliceEffectiveStressChartData = MacroStabilityInwardsSliceChartDataFactory.CreateEffectiveStressChartData(); sliceTotalPorePressureChartData = MacroStabilityInwardsSliceChartDataFactory.CreateTotalPorePressureChartData(); sliceWeightChartData = MacroStabilityInwardsSliceChartDataFactory.CreateWeightChartData(); slicePiezometricPorePressureChartData = MacroStabilityInwardsSliceChartDataFactory.CreatePiezometricPorePressureChartData(); slicePorePressureChartData = MacroStabilityInwardsSliceChartDataFactory.CreatePorePressureChartData(); sliceVerticalPorePressureChartData = MacroStabilityInwardsSliceChartDataFactory.CreateVerticalPorePressureChartData(); sliceHorizontalPorePressureChartData = MacroStabilityInwardsSliceChartDataFactory.CreateHorizontalPorePressureChartData(); sliceOverConsolidationRatioChartData = MacroStabilityInwardsSliceChartDataFactory.CreateOverConsolidationRatioChartData(); slicePopChartData = MacroStabilityInwardsSliceChartDataFactory.CreatePopChartData(); sliceNormalStressChartData = MacroStabilityInwardsSliceChartDataFactory.CreateNormalStressChartData(); sliceShearStressChartData = MacroStabilityInwardsSliceChartDataFactory.CreateShearStressChartData(); sliceLoadStressChartData = MacroStabilityInwardsSliceChartDataFactory.CreateLoadStressChartData(); chartDataCollection.Add(soilProfileChartData); chartDataCollection.Add(surfaceLineChartData); chartDataCollection.Add(surfaceLevelInsideChartData); chartDataCollection.Add(ditchPolderSideChartData); chartDataCollection.Add(bottomDitchPolderSideChartData); chartDataCollection.Add(bottomDitchDikeSideChartData); chartDataCollection.Add(ditchDikeSideChartData); chartDataCollection.Add(dikeToeAtPolderChartData); chartDataCollection.Add(shoulderTopInsideChartData); chartDataCollection.Add(shoulderBaseInsideChartData); chartDataCollection.Add(dikeTopAtPolderChartData); chartDataCollection.Add(dikeToeAtRiverChartData); chartDataCollection.Add(dikeTopAtRiverChartData); chartDataCollection.Add(surfaceLevelOutsideChartData); chartDataCollection.Add(waternetZonesExtremeChartData); chartDataCollection.Add(waternetZonesDailyChartData); chartDataCollection.Add(tangentLinesChartData); chartDataCollection.Add(leftGridChartData); chartDataCollection.Add(rightGridChartData); chartDataCollection.Add(slicesChartData); chartDataCollection.Add(slipPlaneChartData); chartDataCollection.Add(leftCircleRadiusChartData); chartDataCollection.Add(rightCircleRadiusChartData); chartDataCollection.Add(sliceParametersChartDataCollection); sliceParametersChartDataCollection.Add(sliceLoadStressChartData); sliceParametersChartDataCollection.Add(sliceShearStressChartData); sliceParametersChartDataCollection.Add(sliceNormalStressChartData); sliceParametersChartDataCollection.Add(slicePopChartData); sliceParametersChartDataCollection.Add(sliceOverConsolidationRatioChartData); sliceParametersChartDataCollection.Add(sliceHorizontalPorePressureChartData); sliceParametersChartDataCollection.Add(sliceVerticalPorePressureChartData); sliceParametersChartDataCollection.Add(slicePorePressureChartData); sliceParametersChartDataCollection.Add(slicePiezometricPorePressureChartData); sliceParametersChartDataCollection.Add(sliceWeightChartData); sliceParametersChartDataCollection.Add(sliceTotalPorePressureChartData); sliceParametersChartDataCollection.Add(sliceEffectiveStressChartData); sliceParametersChartDataCollection.Add(sliceCohesionChartData); soilLayerChartDataLookup = new List <ChartMultipleAreaData>(); phreaticLineExtremeLookup = new Dictionary <MacroStabilityInwardsPhreaticLine, ChartLineData>(); phreaticLineDailyLookup = new Dictionary <MacroStabilityInwardsPhreaticLine, ChartLineData>(); waternetLineExtremeLookup = new Dictionary <MacroStabilityInwardsWaternetLine, ChartMultipleAreaData>(); waternetLineDailyLookup = new Dictionary <MacroStabilityInwardsWaternetLine, ChartMultipleAreaData>(); UpdateChartData(); chartControl.Data = chartDataCollection; }
public void UpdateObserver_DataUpdated_ChartSeriesSameOrder() { // Setup const int updatedSoilProfileIndex = soilProfileIndex; const int updatedSurfaceLineIndex = surfaceLineIndex + 8; const int updatedDitchPolderSideIndex = ditchPolderSideIndex - 1; const int updatedBottomDitchPolderSideIndex = bottomDitchPolderSideIndex - 1; const int updatedBottomDitchDikeSideIndex = bottomDitchDikeSideIndex - 1; const int updatedDitchDikeSideIndex = ditchDikeSideIndex - 1; const int updatedDikeToeAtPolderIndex = dikeToeAtPolderIndex - 1; const int updatedDikeToeAtRiverIndex = dikeToeAtRiverIndex - 1; const int updatedExitPointIndex = exitPointIndex - 1; const int updatedEntryPointIndex = entryPointIndex - 1; var calculation = new TestPipingCalculationScenario(new TestPipingInput()); using (var view = new PipingInputView { Data = calculation }) { ChartDataCollection chartData = view.Chart.Data; ChartData dataToMove = chartData.Collection.ElementAt(surfaceLineIndex); chartData.Remove(dataToMove); chartData.Add(dataToMove); List <ChartData> chartDataList = chartData.Collection.ToList(); var soilProfileData = (ChartDataCollection)chartDataList[updatedSoilProfileIndex]; var surfaceLineData = (ChartLineData)chartDataList[updatedSurfaceLineIndex]; var entryPointData = (ChartPointData)chartDataList[updatedEntryPointIndex]; var exitPointData = (ChartPointData)chartDataList[updatedExitPointIndex]; var ditchDikeSideData = (ChartPointData)chartDataList[updatedDitchDikeSideIndex]; var bottomDitchDikeSideData = (ChartPointData)chartDataList[updatedBottomDitchDikeSideIndex]; var ditchPolderSideData = (ChartPointData)chartDataList[updatedDitchPolderSideIndex]; var bottomDitchPolderSideData = (ChartPointData)chartDataList[updatedBottomDitchPolderSideIndex]; var dikeToeAtPolderData = (ChartPointData)chartDataList[updatedDikeToeAtPolderIndex]; var dikeToeAtRiverData = (ChartPointData)chartDataList[updatedDikeToeAtRiverIndex]; Assert.AreEqual("Ondergrondschematisatie", soilProfileData.Name); Assert.AreEqual("Profielschematisatie", surfaceLineData.Name); Assert.AreEqual("Intredepunt", entryPointData.Name); Assert.AreEqual("Uittredepunt", exitPointData.Name); Assert.AreEqual("Insteek sloot dijkzijde", ditchDikeSideData.Name); Assert.AreEqual("Slootbodem dijkzijde", bottomDitchDikeSideData.Name); Assert.AreEqual("Insteek sloot polderzijde", ditchPolderSideData.Name); Assert.AreEqual("Slootbodem polderzijde", bottomDitchPolderSideData.Name); Assert.AreEqual("Teen dijk binnenwaarts", dikeToeAtPolderData.Name); Assert.AreEqual("Teen dijk buitenwaarts", dikeToeAtRiverData.Name); PipingSurfaceLine surfaceLine = GetSurfaceLineWithGeometry(); calculation.InputParameters.SurfaceLine = surfaceLine; // Call calculation.InputParameters.NotifyObservers(); // Assert chartDataList = chartData.Collection.ToList(); var actualSoilProfileData = (ChartDataCollection)chartDataList[updatedSoilProfileIndex]; var actualSurfaceLineData = (ChartLineData)chartDataList[updatedSurfaceLineIndex]; var actualEntryPointData = (ChartPointData)chartDataList[updatedEntryPointIndex]; var actualExitPointData = (ChartPointData)chartDataList[updatedExitPointIndex]; var actualDitchDikeSideData = (ChartPointData)chartDataList[updatedDitchDikeSideIndex]; var actualBottomDitchDikeSideData = (ChartPointData)chartDataList[updatedBottomDitchDikeSideIndex]; var actualDitchPolderSideData = (ChartPointData)chartDataList[updatedDitchPolderSideIndex]; var actualBottomDitchPolderSideData = (ChartPointData)chartDataList[updatedBottomDitchPolderSideIndex]; var actualDikeToeAtPolderData = (ChartPointData)chartDataList[updatedDikeToeAtPolderIndex]; var actualDikeToeAtRiverData = (ChartPointData)chartDataList[updatedDikeToeAtRiverIndex]; Assert.AreEqual("Ondergrondschematisatie", actualSoilProfileData.Name); Assert.AreEqual(surfaceLine.Name, actualSurfaceLineData.Name); Assert.AreEqual("Intredepunt", actualEntryPointData.Name); Assert.AreEqual("Uittredepunt", actualExitPointData.Name); Assert.AreEqual("Insteek sloot dijkzijde", actualDitchDikeSideData.Name); Assert.AreEqual("Slootbodem dijkzijde", actualBottomDitchDikeSideData.Name); Assert.AreEqual("Insteek sloot polderzijde", actualDitchPolderSideData.Name); Assert.AreEqual("Slootbodem polderzijde", actualBottomDitchPolderSideData.Name); Assert.AreEqual("Teen dijk binnenwaarts", actualDikeToeAtPolderData.Name); Assert.AreEqual("Teen dijk buitenwaarts", actualDikeToeAtRiverData.Name); } }