public void CanHaveSummerDikeIfInnerDefinitionIsZw() { var innerDefinition = CrossSectionDefinitionZW.CreateDefault(); var proxyDefinition = new CrossSectionDefinitionProxy(innerDefinition); Assert.IsTrue(proxyDefinition.CanHaveSummerDike); proxyDefinition.InnerDefinition = CrossSectionDefinitionYZ.CreateDefault(); Assert.IsFalse(proxyDefinition.CanHaveSummerDike); }
public void ChangeOfInnerDefinitionFiresDataChanged() { //functionality is needed because datachanged is used to invalidate the geometry of the cs. int callCount = 0; var innerDefinition = CrossSectionDefinitionZW.CreateDefault(); var proxyDefinition = new CrossSectionDefinitionProxy(innerDefinition); proxyDefinition.DataChanged += (s, e) => { callCount++; }; proxyDefinition.InnerDefinition = CrossSectionDefinitionYZ.CreateDefault(); Assert.AreEqual(1, callCount); }
public void MakeDefinitionSharedCopiesDefinitionToNetwork() { var crossSectionDefinitionYZ = CrossSectionDefinitionYZ.CreateDefault(); var hydroNetwork = HydroNetworkHelper.GetSnakeHydroNetwork(1); var crossSection = new CrossSection(crossSectionDefinitionYZ) { Branch = hydroNetwork.Channels.First() }; Assert.AreEqual(0, hydroNetwork.SharedCrossSectionDefinitions.Count); crossSection.ShareDefinitionAndChangeToProxy(); Assert.AreEqual(1, hydroNetwork.SharedCrossSectionDefinitions.Count); Assert.AreEqual(crossSectionDefinitionYZ, hydroNetwork.SharedCrossSectionDefinitions.First()); }
public void MakeDefinitionLocalCreatesAShiftedCopyOfInnerDefinition() { var innerDefinition = CrossSectionDefinitionYZ.CreateDefault(); //create a shifted proxy const double levelShift = 1.0; var proxy = new CrossSectionDefinitionProxy(innerDefinition) { LevelShift = levelShift }; var hydroNetwork = HydroNetworkHelper.GetSnakeHydroNetwork(1); var crossSection = new CrossSection(proxy) { Branch = hydroNetwork.Channels.First() }; crossSection.MakeDefinitionLocal(); Assert.IsFalse(crossSection.Definition.IsProxy); Assert.IsTrue(crossSection.Definition is CrossSectionDefinitionYZ); Assert.AreEqual(crossSection.Definition.Profile, innerDefinition.Profile.Select(c => new Coordinate(c.X, c.Y + levelShift)).ToList()); }
public void ProxyDoesLevelShiftYZ() { var innerDefinition = CrossSectionDefinitionYZ.CreateDefault(); AssertLevelShiftsWork(innerDefinition); }