public void SetDefaultGeometryWithBrancheGeometry() { var hydroNetwork = new HydroNetwork(); var channel = new Channel { Geometry = new LineString(new[] { new Coordinate(0, 0), new Coordinate(20, 0) }) }; var crossSectionDefinition = new CrossSectionDefinitionYZ(); crossSectionDefinition.YZDataTable.AddCrossSectionYZRow(0, 5, 0); crossSectionDefinition.YZDataTable.AddCrossSectionYZRow(2, 0, 1); crossSectionDefinition.YZDataTable.AddCrossSectionYZRow(4, 5, 0); crossSectionDefinition.Thalweg = 2; hydroNetwork.Branches.Add(channel); int offset = 12; var crossSection = HydroNetworkHelper.AddCrossSectionDefinitionToBranch(channel, crossSectionDefinition, offset); Assert.AreEqual(4, crossSection.Geometry.Length); Assert.AreEqual(2, crossSection.Geometry.Coordinates.Length); Assert.IsTrue(crossSection.Geometry.Coordinates.All(c => c.X == offset)); Assert.AreEqual(new[] { 2d, -2d }, crossSection.Geometry.Coordinates.Select(c => c.Y).ToList()); }
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 ProxyDoesLevelShiftYZ() { var innerDefinition = CrossSectionDefinitionYZ.CreateDefault(); AssertLevelShiftsWork(innerDefinition); }