public void GivenPipingInputViewWithSoilProfileSeries_WhenSurfaceLineSetToNull_ThenCollectionOfEmptyChartDataSetForSoilProfiles() { // Given using (var view = new PipingInputView()) { PipingSurfaceLine surfaceLine = GetSurfaceLineWithGeometry(); PipingStochasticSoilProfile stochasticSoilProfile = GetStochasticSoilProfile(); var calculation = new TestPipingCalculationScenario(new TestPipingInput()) { InputParameters = { SurfaceLine = surfaceLine, StochasticSoilProfile = stochasticSoilProfile } }; view.Data = calculation; ChartDataCollection chartData = view.Chart.Data; // Precondition Assert.IsNotNull(chartData); Assert.AreEqual(10, chartData.Collection.Count()); AssertSoilProfileChartData(stochasticSoilProfile, chartData.Collection.ElementAt(soilProfileIndex), true); // When calculation.InputParameters.SurfaceLine = null; calculation.InputParameters.NotifyObservers(); // Then AssertSoilProfileChartData(stochasticSoilProfile, chartData.Collection.ElementAt(soilProfileIndex), 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 Data_WithSurfaceLineWithoutStochasticSoilProfile_CollectionOfEmptyChartDataSetForSoilProfile() { // Setup using (var view = new PipingInputView()) { PipingSurfaceLine surfaceLine = GetSurfaceLineWithGeometry(); var calculation = new TestPipingCalculationScenario(new TestPipingInput()) { InputParameters = { SurfaceLine = surfaceLine } }; // Call view.Data = calculation; // Assert Assert.AreSame(calculation, view.Data); ChartDataCollection chartData = view.Chart.Data; Assert.IsInstanceOf <ChartDataCollection>(chartData); Assert.AreEqual(10, chartData.Collection.Count()); var soilProfileData = (ChartDataCollection)chartData.Collection.ElementAt(soilProfileIndex); CollectionAssert.IsEmpty(soilProfileData.Collection); Assert.AreEqual("Ondergrondschematisatie", soilProfileData.Name); } }
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 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); } }
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 Constructor_Always_PropertiesHaveExpectedAttributesValues() { // Setup var chartDataCollection = new ChartDataCollection("Test"); // Call var properties = new ChartDataCollectionProperties { Data = chartDataCollection }; // Assert PropertyDescriptorCollection dynamicProperties = PropertiesTestHelper.GetAllVisiblePropertyDescriptors(properties); Assert.AreEqual(1, dynamicProperties.Count); const string generalCategory = "Algemeen"; PropertyDescriptor nameProperty = dynamicProperties[namePropertyIndex]; PropertiesTestHelper.AssertRequiredPropertyDescriptorProperties(nameProperty, generalCategory, "Naam", "De naam van deze gegevensreeks.", true); }
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 GivenCalculationWithStochasticSoilProfileAndSurfaceLine_WhenStochasticSoilProfileUpdate_ThenChartDataUpdated() { // Given MacroStabilityInwardsStochasticSoilProfile originalSoilProfile = MacroStabilityInwardsStochasticSoilProfileTestFactory.CreateMacroStabilityInwardsStochasticSoilProfile2D(); var calculation = new MacroStabilityInwardsCalculationScenario { InputParameters = { StochasticSoilProfile = originalSoilProfile, SurfaceLine = GetSurfaceLineWithGeometry() }, Output = MacroStabilityInwardsOutputTestFactory.CreateOutput() }; using (new MacroStabilityInwardsCalculatorFactoryConfig()) using (var control = new MacroStabilityInwardsOutputChartControl(calculation, new GeneralMacroStabilityInwardsInput(), AssessmentSectionTestHelper.GetTestAssessmentLevel)) { ChartDataCollection chartData = GetChartControl(control).Data; // Precondition MacroStabilityInwardsOutputViewChartDataAssert.AssertInputChartData(calculation, chartData); MacroStabilityInwardsStochasticSoilProfile newSoilProfile = MacroStabilityInwardsStochasticSoilProfileTestFactory.CreateMacroStabilityInwardsStochasticSoilProfile2D(); // When calculation.InputParameters.StochasticSoilProfile = newSoilProfile; control.UpdateChartData(); // Then MacroStabilityInwardsOutputViewChartDataAssert.AssertInputChartData(calculation, chartData); } }
public void GivenChartLegendView_WhenSelectedNodeChanged_SelectionChangedFired() { // Given ChartData chartData = CreateChartData(); var chartDataCollection = new ChartDataCollection("collection"); chartDataCollection.Add(chartData); var mocks = new MockRepository(); var contextMenuBuilderProvider = mocks.Stub <IContextMenuBuilderProvider>(); mocks.ReplayAll(); using (var view = new ChartLegendView(contextMenuBuilderProvider) { Data = chartDataCollection }) { var treeViewControl = TypeUtils.GetField <TreeViewControl>(view, "treeViewControl"); WindowsFormsTestHelper.Show(treeViewControl); var selectionChangedCount = 0; view.SelectionChanged += (sender, args) => selectionChangedCount++; // When var context = new ChartDataContext(chartData, chartDataCollection); treeViewControl.TrySelectNodeForData(context); // Then Assert.AreEqual(1, selectionChangedCount); } WindowsFormsTestHelper.CloseAll(); mocks.VerifyAll(); }
public void GivenChartDataContainingCollection_WhenDragDroppingFromRootToRoot_ThenDataPositionChanged(int index) { // Given var mocks = new MockRepository(); var menuBuilderProvider = mocks.Stub <IContextMenuBuilderProvider>(); mocks.ReplayAll(); ChartData chartData = CreateChartData(); var rootCollection = new ChartDataCollection("test data"); rootCollection.Add(chartData); rootCollection.Add(CreateChartData()); rootCollection.Add(CreateChartData()); using (var chartLegendView = new ChartLegendView(menuBuilderProvider) { Data = rootCollection }) { var treeViewControl = TypeUtils.GetField <TreeViewControl>(chartLegendView, "treeViewControl"); var treeNodeInfoLookup = TypeUtils.GetField <Dictionary <Type, TreeNodeInfo> >(treeViewControl, "tagTypeTreeNodeInfoLookup"); TreeNodeInfo info = treeNodeInfoLookup[typeof(ChartDataCollection)]; var context = new ChartDataContext(chartData, rootCollection); // When info.OnDrop(context, rootCollection, rootCollection, index, treeViewControl); // Then Assert.AreEqual(2 - index, rootCollection.Collection.ToList().IndexOf(chartData)); } mocks.VerifyAll(); }
public void CreateInstance_WaveImpactAsphaltCoverWaveConditionsInputContext_ReturnViewWithStylingApplied() { // Setup var calculation = new WaveImpactAsphaltCoverWaveConditionsCalculation(); var context = new WaveImpactAsphaltCoverWaveConditionsInputContext( new WaveConditionsInput(), calculation, new AssessmentSectionStub(), Array.Empty <ForeshoreProfile>()); // Call var view = (WaveConditionsInputView)info.CreateInstance(context); // Assert ChartDataCollection chartData = view.Chart.Data; var lowerBoundaryRevetmentChartData = (ChartLineData)chartData.Collection.ElementAt(lowerBoundaryRevetmentChartDataIndex); var upperBoundaryRevetmentChartData = (ChartLineData)chartData.Collection.ElementAt(upperBoundaryRevetmentChartDataIndex); var revetmentBaseChartData = (ChartLineData)chartData.Collection.ElementAt(revetmentBaseChartDataIndex); var revetmentChartData = (ChartLineData)chartData.Collection.ElementAt(revetmentChartDataIndex); Color revetmentLineColor = Color.Gray; Assert.AreEqual(revetmentLineColor, lowerBoundaryRevetmentChartData.Style.Color); Assert.AreEqual(revetmentLineColor, upperBoundaryRevetmentChartData.Style.Color); Assert.AreEqual(Color.FromArgb(120, revetmentLineColor), revetmentBaseChartData.Style.Color); Assert.AreEqual(revetmentLineColor, revetmentChartData.Style.Color); }
public void Selection_RootNodeData_ReturnsObjectData() { // 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 treeViewControl = TypeUtils.GetField <TreeViewControl>(view, "treeViewControl"); WindowsFormsTestHelper.Show(treeViewControl); treeViewControl.TrySelectNodeForData(chartDataCollection); // Call object selection = view.Selection; // Assert Assert.AreSame(chartDataCollection, selection); } WindowsFormsTestHelper.CloseAll(); mocks.VerifyAll(); }
public void Constructor_CalculationWithoutOutputAndWithWaternet_ChartDataEmpty() { // Setup MacroStabilityInwardsSurfaceLine surfaceLine = GetSurfaceLineWithGeometry(); MacroStabilityInwardsStochasticSoilProfile stochasticSoilProfile = MacroStabilityInwardsStochasticSoilProfileTestFactory.CreateMacroStabilityInwardsStochasticSoilProfile2D(); var calculation = new MacroStabilityInwardsCalculationScenario { InputParameters = { SurfaceLine = surfaceLine, StochasticSoilProfile = stochasticSoilProfile } }; // Call using (new MacroStabilityInwardsCalculatorFactoryConfig()) using (var control = new MacroStabilityInwardsOutputChartControl(calculation, new GeneralMacroStabilityInwardsInput(), AssessmentSectionTestHelper.GetTestAssessmentLevel)) { // Assert IChartControl chartControl = GetChartControl(control); ChartDataCollection chartData = chartControl.Data; MacroStabilityInwardsOutputViewChartDataAssert.AssertEmptyChartDataWithEmptySoilLayerAndWithWaternetChartData(chartData); MacroStabilityInwardsOutputViewChartDataAssert.AssertEmptyOutputChartData(chartData); Assert.AreEqual(calculation.Name, chartControl.ChartTitle); } }
public void ChildNodeObjects_WithData_ReturnsChildrenWithContextAndDataReversed() { // Setup var chartData1 = new TestChartData(); var chartData2 = new TestChartData(); var chartData3 = new TestChartData(); var chartDataCollection = new ChartDataCollection("test data"); chartDataCollection.Add(chartData1); chartDataCollection.Add(chartData2); chartDataCollection.Add(chartData3); // Call object[] objects = info.ChildNodeObjects(chartDataCollection); // Assert var expectedChildren = new[] { new ChartDataContext(chartData3, chartDataCollection), new ChartDataContext(chartData2, chartDataCollection), new ChartDataContext(chartData1, chartDataCollection) }; CollectionAssert.AreEqual(expectedChildren, objects); }
/// <summary> /// Creates a new instance of <see cref="PipingInputView"/>. /// </summary> public PipingInputView() { InitializeComponent(); calculationObserver = new Observer(UpdateChartTitle); calculationInputObserver = new Observer(UpdateViewData); chartDataCollection = new ChartDataCollection(RiskeerCommonFormsResources.Calculation_Input); soilProfileChartData = RiskeerChartDataFactory.CreateSoilProfileChartData(); surfaceLineChartData = RiskeerChartDataFactory.CreateSurfaceLineChartData(); ditchPolderSideChartData = RiskeerChartDataFactory.CreateDitchPolderSideChartData(); bottomDitchPolderSideChartData = RiskeerChartDataFactory.CreateBottomDitchPolderSideChartData(); bottomDitchDikeSideChartData = RiskeerChartDataFactory.CreateBottomDitchDikeSideChartData(); ditchDikeSideChartData = RiskeerChartDataFactory.CreateDitchDikeSideChartData(); dikeToeAtPolderChartData = RiskeerChartDataFactory.CreateDikeToeAtPolderChartData(); dikeToeAtRiverChartData = RiskeerChartDataFactory.CreateDikeToeAtRiverChartData(); exitPointChartData = PipingChartDataFactory.CreateExitPointChartData(); entryPointChartData = PipingChartDataFactory.CreateEntryPointChartData(); chartDataCollection.Add(soilProfileChartData); chartDataCollection.Add(surfaceLineChartData); chartDataCollection.Add(ditchPolderSideChartData); chartDataCollection.Add(bottomDitchPolderSideChartData); chartDataCollection.Add(bottomDitchDikeSideChartData); chartDataCollection.Add(ditchDikeSideChartData); chartDataCollection.Add(dikeToeAtPolderChartData); chartDataCollection.Add(dikeToeAtRiverChartData); chartDataCollection.Add(exitPointChartData); chartDataCollection.Add(entryPointChartData); soilLayerChartDataLookup = new List <ChartMultipleAreaData>(); // Use lookup because the ordering in the chart data collection might change }
/// <summary> /// Asserts whether <paramref name="chartDataCollection"/> contains empty output data. /// </summary> /// <param name="chartDataCollection">The actual <see cref="ChartData"/>.</param> /// <exception cref="AssertionException">Thrown when <paramref name="chartDataCollection"/> /// is not empty.</exception> public static void AssertEmptyOutputChartData(ChartDataCollection chartDataCollection) { ChartData[] chartDataArray = chartDataCollection.Collection.ToArray(); Assert.AreEqual(nrOfChartData, chartDataArray.Length); var tangentLinesData = (ChartMultipleLineData)chartDataArray[tangentLinesIndex]; var leftGridData = (ChartPointData)chartDataArray[leftGridIndex]; var rightGridData = (ChartPointData)chartDataArray[rightGridIndex]; var slicesData = (ChartMultipleAreaData)chartDataArray[slicesIndex]; var slipPlaneData = (ChartLineData)chartDataArray[slipPlaneIndex]; var activeCircleRadiusData = (ChartLineData)chartDataArray[activeCircleRadiusIndex]; var passiveCircleRadiusData = (ChartLineData)chartDataArray[passiveCircleRadiusIndex]; CollectionAssert.IsEmpty(tangentLinesData.Lines); CollectionAssert.IsEmpty(leftGridData.Points); CollectionAssert.IsEmpty(rightGridData.Points); CollectionAssert.IsEmpty(slicesData.Areas); CollectionAssert.IsEmpty(slipPlaneData.Points); CollectionAssert.IsEmpty(activeCircleRadiusData.Points); CollectionAssert.IsEmpty(passiveCircleRadiusData.Points); Assert.AreEqual("Tangentlijnen", tangentLinesData.Name); Assert.AreEqual("Linker grid", leftGridData.Name); Assert.AreEqual("Rechter grid", rightGridData.Name); Assert.AreEqual("Lamellen", slicesData.Name); Assert.AreEqual("Glijvlak", slipPlaneData.Name); Assert.AreEqual("Radius actieve cirkel", activeCircleRadiusData.Name); Assert.AreEqual("Radius passieve cirkel", passiveCircleRadiusData.Name); AssertEmptySliceParameterChartData((ChartDataCollection)chartDataArray[sliceParameterIndex]); }
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 Data_UseForeshoreFalse_SetEmptyForeshoreDataOnChart() { // Setup using (var view = new GrassCoverErosionInwardsInputView()) { DikeProfile dikeProfile = GetDikeProfileWithGeometry(); var calculation = new GrassCoverErosionInwardsCalculation { InputParameters = { DikeProfile = dikeProfile, UseForeshore = false } }; // Call view.Data = calculation; // Assert Assert.AreSame(calculation, view.Data); ChartDataCollection chartData = view.Chart.Data; Assert.IsInstanceOf <ChartDataCollection>(chartData); Assert.AreEqual(3, chartData.Collection.Count()); var dikeGeometryData = (ChartLineData)chartData.Collection.ElementAt(dikeProfileIndex); var foreshoreData = (ChartLineData)chartData.Collection.ElementAt(foreshoreIndex); var dikeHeightData = (ChartLineData)chartData.Collection.ElementAt(dikeHeightIndex); CollectionAssert.IsEmpty(foreshoreData.Points); Assert.AreEqual("Voorlandprofiel", foreshoreData.Name); AssertDikeProfileChartData(dikeProfile, dikeGeometryData); AssertDikeHeightChartData(dikeProfile, dikeHeightData); } }
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 ContextMenuStrip_WithChartDataCollection_CallsContextMenuBuilderMethods() { // Setup var chartDataCollection = new ChartDataCollection("test data"); using (var treeViewControl = new TreeViewControl()) { var menuBuilder = mocks.StrictMock <IContextMenuBuilder>(); using (mocks.Ordered()) { menuBuilder.Expect(mb => mb.AddCustomItem(null)).IgnoreArguments().Return(menuBuilder); menuBuilder.Expect(mb => mb.AddSeparator()).Return(menuBuilder); menuBuilder.Expect(mb => mb.AddPropertiesItem()).Return(menuBuilder); menuBuilder.Expect(mb => mb.Build()).Return(null); } contextMenuBuilderProvider.Expect(cmbp => cmbp.Get(null, null)) .IgnoreArguments() .Return(menuBuilder); mocks.ReplayAll(); // Call info.ContextMenuStrip(chartDataCollection, null, treeViewControl); // Assert // Asserts done in TearDown } }
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 chartDataCollection = new ChartDataCollection("test data"); chartDataCollection.Add(chartData1); chartDataCollection.Add(chartData2); chartDataCollection.Add(chartData3); chartDataCollection.Add(chartData4); chartDataCollection.Attach(observer); chartLegendView.Data = chartDataCollection; ChartDataContext context1 = GetContext(chartData1); chartDataCollection.Attach(observer); using (var treeViewControl = new TreeViewControl()) { // Call void Call() => info.OnDrop(context1, chartDataCollection, chartDataCollection, position, treeViewControl); // Assert Assert.Throws <ArgumentOutOfRangeException>(Call); } }
public void ChildNodeObjects_ChartDataCollection_ReturnsItemsFromChartDataCollectionList() { // Setup var chartData1 = new TestChartData(); var chartData2 = new TestChartData(); var chartData3 = new TestChartData(); var chartDataCollection = new ChartDataCollection("test"); chartDataCollection.Add(chartData1); chartDataCollection.Add(chartData2); chartDataCollection.Add(chartData3); ChartDataContext context = GetContext(chartDataCollection); // Call object[] objects = info.ChildNodeObjects(context); // Assert var expectedChildren = new[] { new ChartDataContext(chartData3, new ChartDataCollection("test")), new ChartDataContext(chartData2, new ChartDataCollection("test")), new ChartDataContext(chartData1, new ChartDataCollection("test")) }; CollectionAssert.AreEqual(expectedChildren, objects); }
public void GetFeatureBasedChartDataRecursively_CollectionWithNestedData_ReturnAllFeatureBasedChartData() { // Setup var line = new ChartLineData("line"); var polygon = new ChartAreaData("polygon"); var nestedCollection = new ChartDataCollection("nested"); nestedCollection.Add(line); nestedCollection.Add(polygon); var collection = new ChartDataCollection("test"); var point = new ChartPointData("point"); collection.Add(point); collection.Add(nestedCollection); // Call ChartData[] featureBasedChartDatas = collection.GetChartDataRecursively().ToArray(); // Assert Assert.AreEqual(3, featureBasedChartDatas.Length); Assert.IsInstanceOf <ChartPointData>(featureBasedChartDatas[0]); Assert.IsInstanceOf <ChartLineData>(featureBasedChartDatas[1]); Assert.IsInstanceOf <ChartAreaData>(featureBasedChartDatas[2]); }
public void OnDrop_ChartDataMovedToPositionInsideRange_SetsNewReverseOrder(int position) { // Setup var observer = mocks.StrictMock <IObserver>(); observer.Expect(o => o.UpdateObserver()); mocks.ReplayAll(); var chartData1 = new TestChartData(); var chartData2 = new TestChartData(); var chartData3 = new TestChartData(); var chartDataCollection = new ChartDataCollection("test"); chartDataCollection.Add(chartData1); chartDataCollection.Add(chartData2); chartDataCollection.Add(chartData3); ChartDataContext context1 = GetContext(chartData1); ChartDataContext collectionContext = GetContext(chartDataCollection); chartDataCollection.Attach(observer); using (var treeViewControl = new TreeViewControl()) { // Call info.OnDrop(context1, collectionContext, collectionContext, position, treeViewControl); // Assert int reversedIndex = 2 - position; var wrappedCollectionData = (ChartDataCollection)collectionContext.WrappedData; Assert.AreSame(context1.WrappedData, wrappedCollectionData.Collection.ElementAt(reversedIndex)); } }
/// <summary> /// Updates the name of <paramref name="chartData"/> based on <paramref name="soilProfile"/>. /// </summary> /// <param name="chartData">The <see cref="ChartDataCollection"/> to update the name for.</param> /// <param name="soilProfile">The <see cref="IMacroStabilityInwardsSoilProfile{T}"/> used for obtaining the name.</param> /// <remarks>A default name is set when <paramref name="soilProfile"/> is <c>null</c>.</remarks> public static void UpdateSoilProfileChartDataName(ChartDataCollection chartData, IMacroStabilityInwardsSoilProfile <IMacroStabilityInwardsSoilLayer> soilProfile) { chartData.Name = soilProfile != null ? soilProfile.Name : RiskeerCommonFormsResources.StochasticSoilProfileProperties_DisplayName; }
public void Constructor_CalculationWithoutStochasticSoilProfile_ChartDataSetWithDefaultSoilProfileChartDataName() { // Setup MacroStabilityInwardsSurfaceLine surfaceLine = GetSurfaceLineWithGeometry(); var calculation = new MacroStabilityInwardsCalculationScenario { InputParameters = { SurfaceLine = surfaceLine } }; // Call using (new MacroStabilityInwardsCalculatorFactoryConfig()) using (var control = new MacroStabilityInwardsOutputChartControl(calculation, new GeneralMacroStabilityInwardsInput(), AssessmentSectionTestHelper.GetTestAssessmentLevel)) { // Assert IChartControl chartControl = GetChartControl(control); ChartDataCollection chartData = chartControl.Data; MacroStabilityInwardsViewChartDataAssert.AssertSoilProfileChartData(calculation.InputParameters.SoilProfileUnderSurfaceLine, "Ondergrondschematisatie", false, chartData.Collection.ElementAt(soilProfileIndex)); Assert.AreEqual(calculation.Name, chartControl.ChartTitle); } }
public void CreateInstance_WithContextThatHasInputWithSpecificWaterLevelType_ReturnViewWithCorrespondingAssessmentLevel( IAssessmentSection assessmentSection, Action <WaveConditionsInput> configureInputAction, RoundedDouble expectedAssessmentLevel) { // Setup var calculation = new WaveImpactAsphaltCoverWaveConditionsCalculation(); configureInputAction(calculation.InputParameters); var context = new WaveImpactAsphaltCoverWaveConditionsInputContext( calculation.InputParameters, calculation, assessmentSection, Array.Empty <ForeshoreProfile>()); // Call var view = (WaveConditionsInputView)info.CreateInstance(context); // Assert ChartDataCollection chartData = view.Chart.Data; var designWaterLevelChartData = (ChartLineData)chartData.Collection.ElementAt(designWaterLevelChartDataIndex); if (expectedAssessmentLevel != RoundedDouble.NaN) { Assert.AreEqual(expectedAssessmentLevel, designWaterLevelChartData.Points.First().Y); } else { Assert.IsEmpty(designWaterLevelChartData.Points); } }
public void Data_SetChartData_ChartDataSet() { // Setup using (var view = new GrassCoverErosionInwardsInputView()) { DikeProfile dikeProfile = GetDikeProfileWithGeometry(); var calculation = new GrassCoverErosionInwardsCalculation { InputParameters = { DikeProfile = dikeProfile } }; // Call view.Data = calculation; // Assert Assert.AreSame(calculation, view.Data); ChartDataCollection chartData = view.Chart.Data; Assert.IsInstanceOf <ChartDataCollection>(chartData); Assert.AreEqual(3, chartData.Collection.Count()); AssertDikeProfileChartData(dikeProfile, chartData.Collection.ElementAt(dikeProfileIndex)); AssertForeshoreChartData(dikeProfile, chartData.Collection.ElementAt(foreshoreIndex)); AssertDikeHeightChartData(dikeProfile, chartData.Collection.ElementAt(dikeHeightIndex)); } }
/// <summary> /// Creates a new instance of <see cref="WaveConditionsInputView"/>. /// </summary> /// <param name="calculation">The calculation to show in the view.</param> /// <param name="getHydraulicBoundaryLocationCalculationFunc">The <see cref="Func{TResult}"/> for obtaining the <see cref="HydraulicBoundaryLocationCalculation"/>.</param> /// <param name="inputViewStyle">The style which should be applied to the <see cref="ChartLineData"/>.</param> /// <exception cref="ArgumentNullException">Thrown when any input parameter is <c>null</c>.</exception> public WaveConditionsInputView(ICalculation <WaveConditionsInput> calculation, Func <HydraulicBoundaryLocationCalculation> getHydraulicBoundaryLocationCalculationFunc, IWaveConditionsInputViewStyle inputViewStyle) { if (calculation == null) { throw new ArgumentNullException(nameof(calculation)); } if (getHydraulicBoundaryLocationCalculationFunc == null) { throw new ArgumentNullException(nameof(getHydraulicBoundaryLocationCalculationFunc)); } if (inputViewStyle == null) { throw new ArgumentNullException(nameof(inputViewStyle)); } InitializeComponent(); this.getHydraulicBoundaryLocationCalculationFunc = getHydraulicBoundaryLocationCalculationFunc; calculationObserver = new Observer(UpdateChartTitle); calculationInputObserver = new Observer(UpdateCalculationInput); hydraulicBoundaryLocationCalculationObserver = new Observer(UpdateChartData); this.calculation = calculation; calculationObserver.Observable = calculation; calculationInputObserver.Observable = calculation.InputParameters; hydraulicBoundaryLocationCalculationObserver.Observable = getHydraulicBoundaryLocationCalculationFunc(); chartDataCollection = new ChartDataCollection(RiskeerCommonFormsResources.Calculation_Input); foreshoreChartData = RiskeerChartDataFactory.CreateForeshoreGeometryChartData(); lowerBoundaryRevetmentChartData = WaveConditionsChartDataFactory.CreateLowerRevetmentBoundaryChartData(inputViewStyle.RevetmentLineColor); upperBoundaryRevetmentChartData = WaveConditionsChartDataFactory.CreateUpperRevetmentBoundaryChartData(inputViewStyle.RevetmentLineColor); lowerBoundaryWaterLevelsChartData = WaveConditionsChartDataFactory.CreateLowerWaterLevelsBoundaryChartData(); upperBoundaryWaterLevelsChartData = WaveConditionsChartDataFactory.CreateUpperWaterLevelsBoundaryChartData(); assessmentLevelChartData = WaveConditionsChartDataFactory.CreateAssessmentLevelChartData(); waterLevelsChartData = WaveConditionsChartDataFactory.CreateWaterLevelsChartData(); revetmentBaseChartData = WaveConditionsChartDataFactory.CreateRevetmentBaseChartData(inputViewStyle.RevetmentLineColor); revetmentChartData = WaveConditionsChartDataFactory.CreateRevetmentChartData(inputViewStyle.RevetmentLineColor); chartDataCollection.Add(foreshoreChartData); chartDataCollection.Add(lowerBoundaryRevetmentChartData); chartDataCollection.Add(upperBoundaryRevetmentChartData); chartDataCollection.Add(lowerBoundaryWaterLevelsChartData); chartDataCollection.Add(upperBoundaryWaterLevelsChartData); chartDataCollection.Add(assessmentLevelChartData); chartDataCollection.Add(waterLevelsChartData); chartDataCollection.Add(revetmentBaseChartData); chartDataCollection.Add(revetmentChartData); SetChartData(); chartControl.Data = chartDataCollection; UpdateChartTitle(); }