Exemplo n.º 1
0
        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);
        }