Example #1
0
        public void AddManyBranchesWithCrossSections()
        {
            TestHelper.AssertIsFasterThan(2000,() =>
                                                     {
                                                         const int count = 10000;
                                                         var network = new HydroNetwork();
                                                         for (int i = 0; i < count; i++)
                                                         {
                                                             var from = new HydroNode();
                                                             var to = new HydroNode();

                                                             network.Nodes.Add(from);
                                                             network.Nodes.Add(to);

                                                             var channel = new Channel {Source = from, Target = to};
                                                             NetworkHelper.AddBranchFeatureToBranch(channel,
                                                                                                    new CrossSection(),
                                                                                                    0);

                                                             network.Branches.Add(channel);
                                                         }

                                                         int crossSectionCount = 0;
                                                         foreach (ICrossSection crossSection in network.CrossSections)
                                                             // access all CrossSections should be also fast
                                                         {
                                                             crossSectionCount++;
                                                         }
                                                     });
        }
Example #2
0
        public void AddManyBranchesWithCrossSections()
        {
            TestHelper.AssertIsFasterThan(2275, () =>
            {
                const int count = 10000;
                var network     = new HydroNetwork();
                for (int i = 0; i < count; i++)
                {
                    var from = new HydroNode();
                    var to   = new HydroNode();

                    network.Nodes.Add(from);
                    network.Nodes.Add(to);

                    var channel = new Channel {
                        Source = from, Target = to
                    };
                    HydroNetworkHelper.AddCrossSectionDefinitionToBranch(channel,
                                                                         new CrossSectionDefinitionXYZ(),
                                                                         0);
                }

                int crossSectionCount = 0;
                foreach (var crossSection in network.CrossSections)
                {
                    // access all CrossSections should be also fast
                    crossSectionCount++;
                }
            });
        }
Example #3
0
        [Category(TestCategory.BadQuality)] // TODO: test Add or change name
        public void AddManyBranchesWithSimpleBranchFeature()
        {
            const int count     = 10000;
            int       weirCount = 0;

            Action action = delegate // TODO: what are we testing here? Test only add.
            {
                var network = new HydroNetwork();
                for (int i = 0; i < count; i++)
                {
                    var from = new HydroNode();
                    var to   = new HydroNode();

                    network.Nodes.Add(from);
                    network.Nodes.Add(to);

                    var channel = new Channel {
                        Source = from, Target = to
                    };

                    var compositeBranchStructure = new CompositeBranchStructure();
                    NetworkHelper.AddBranchFeatureToBranch(compositeBranchStructure, channel, 0);
                    HydroNetworkHelper.AddStructureToComposite(compositeBranchStructure, new Weir());

                    network.Branches.Add(channel);
                }

                foreach (IWeir weir in network.Weirs)                     // access all Weirs should be also fast
                {
                    weirCount++;
                }
            };

            TestHelper.AssertIsFasterThan(2750, string.Format("Added {0} branches with {1} weirs", count, weirCount), action);
        }
Example #4
0
        /// <summary>
        /// Creates a simple test network of 1 branch amd 2 nodes. The branch has '3' parts, in the center of
        /// the first aand last is a cross section.
        ///                 n
        ///                /
        ///               /
        ///              cs
        ///             /
        ///     -------/
        ///    /
        ///   cs
        ///  /
        /// n
        /// </summary>
        /// <returns></returns>
        private static IHydroNetwork CreateSegmentTestNetwork()
        {
            var network = new Hydro.HydroNetwork();
            var branch1 = new Channel
            {
                Geometry = new LineString(new[]
                {
                    new Coordinate(0, 0), new Coordinate(0, 100),
                })
            };

            var node1 = new HydroNode {
                Network = network, Geometry = new Point(new Coordinate(0, 0))
            };
            var node2 = new HydroNode {
                Network = network, Geometry = new Point(new Coordinate(100, 0))
            };

            network.Branches.Add(branch1);
            network.Nodes.Add(node1);
            network.Nodes.Add(node2);

            branch1.Source = node1;
            branch1.Target = node2;

            return(network);
        }
Example #5
0
        private HydroNetwork GetNetwork()
        {
            var network = new HydroNetwork();
            var crossSectionSectionType = new CrossSectionSectionType {
                Name = "Jan"
            };

            network.CrossSectionSectionTypes.Add(crossSectionSectionType);
            crossSectionSectionType.Id = 666;//debug easy by idd
            var from = new HydroNode();
            var to   = new HydroNode();

            network.Nodes.Add(from);
            network.Nodes.Add(to);
            var channel = new Channel {
                Source = from, Target = to
            };

            network.Branches.Add(channel);
            var crossSectionXYZ = new CrossSectionDefinitionXYZ
            {
                Geometry = new LineString(new[] { new Coordinate(0, 0), new Coordinate(10, 0) })
            };

            crossSectionXYZ.Sections.Add(new CrossSectionSection {
                SectionType = crossSectionSectionType
            });

            HydroNetworkHelper.AddCrossSectionDefinitionToBranch(channel, crossSectionXYZ, 0);
            return(network);
        }
Example #6
0
        public void CloneHydroNetwork()
        {
            var network = new HydroNetwork();
            var from    = new HydroNode();
            var to      = new HydroNode();

            network.Nodes.Add(from);
            network.Nodes.Add(to);
            var channel = new Channel {
                Source = from, Target = to
            };

            network.Branches.Add(channel);
            network.CrossSectionSectionTypes.Add(new CrossSectionSectionType {
                Name = "JemigdePemig"
            });
            var crossSectionSectionTypesCount = network.CrossSectionSectionTypes.Count;

            // The default CrossSectionSectionType and JDP
            Assert.AreEqual(2, crossSectionSectionTypesCount);
            var clonedHydroNetwork = (IHydroNetwork)network.Clone();

            clonedHydroNetwork.GetType().Should().Be.EqualTo(typeof(HydroNetwork));

            clonedHydroNetwork.Branches.Count.Should().Be.EqualTo(1);
            clonedHydroNetwork.Nodes.Count.Should().Be.EqualTo(2);
            clonedHydroNetwork.CrossSectionSectionTypes.Count.Should().Be.EqualTo(crossSectionSectionTypesCount);
            Assert.AreEqual("JemigdePemig", clonedHydroNetwork.CrossSectionSectionTypes.Last().Name);
        }
        /// <summary>
        /// Creates a simple test network of 1 branch amd 2 nodes. The branch has '3' parts, in the center of
        /// the first aand last is a cross section.
        ///                 n
        ///                /
        ///               /
        ///              cs
        ///             /
        ///     -------/
        ///    /
        ///   cs
        ///  /
        /// n
        /// </summary>
        /// <returns></returns>
        private static IHydroNetwork CreateTestNetwork()
        {
            var network = new Hydro.HydroNetwork();
            var branch1 = new Channel
                              {
                                  Geometry = new LineString(new[]
                                                                {
                                                                    new Coordinate(0, 0), new Coordinate(30, 40),
                                                                    new Coordinate(70, 40), new Coordinate(100, 100)
                                                                })
                              };

            var node1 = new HydroNode {Network = network, Geometry = new Point(new Coordinate(0, 0))};
            var node2 = new HydroNode {Network = network, Geometry = new Point(new Coordinate(100, 100))};

            network.Branches.Add(branch1);
            network.Nodes.Add(node1);
            network.Nodes.Add(node2);

            var crossSection1 = new CrossSection { Geometry = new LineString(new[] {new Coordinate(15, 20), new Coordinate(15, 20)}) };
            double offset1 = Math.Sqrt(15 * 15 + 20 * 20);
            crossSection1.Offset = offset1;

            var crossSection2 = new CrossSection { Geometry = new LineString(new[] {new Coordinate(85, 70), new Coordinate(85, 70)}) };
            double offset2 = Math.Sqrt(30 * 30 + 40 * 40) + 40 + Math.Sqrt(15 * 15 + 20 * 20);
            crossSection2.Offset = offset2;

            branch1.Source = node1;
            branch1.Target = node2;
            NetworkHelper.AddBranchFeatureToBranch(branch1, crossSection1, crossSection1.Offset);
            NetworkHelper.AddBranchFeatureToBranch(branch1, crossSection2, crossSection2.Offset);

            return network;
        }
Example #8
0
        public void CloneHydroNetworkWithVariousBranchFeatures()
        {
            var network = new HydroNetwork();
            var from    = new HydroNode();
            var to      = new HydroNode();

            network.Nodes.Add(from);
            network.Nodes.Add(to);
            var channel = new Channel {
                Source = from, Target = to
            };

            network.Branches.Add(channel);
            var compositeBranchStructure = new CompositeBranchStructure();

            NetworkHelper.AddBranchFeatureToBranch(compositeBranchStructure, channel, 0);
            HydroNetworkHelper.AddStructureToComposite(compositeBranchStructure, new Weir());
            HydroNetworkHelper.AddStructureToComposite(compositeBranchStructure, new Pump());

            var crossSectionXYZ = new CrossSectionDefinitionXYZ
            {
                Geometry = new LineString(new[] { new Coordinate(0, 0), new Coordinate(10, 0) })
            };

            HydroNetworkHelper.AddCrossSectionDefinitionToBranch(channel, crossSectionXYZ, 0);

            var clonedHydroNetwork = (IHydroNetwork)network.Clone();

            clonedHydroNetwork.CrossSections.Should().Have.Count.EqualTo(1);
            clonedHydroNetwork.CompositeBranchStructures.Should().Have.Count.EqualTo(1);
            clonedHydroNetwork.Weirs.Should().Have.Count.EqualTo(1);
            clonedHydroNetwork.Pumps.Should().Have.Count.EqualTo(1);
        }
Example #9
0
        public void CloneHydroNetworkAndAddBranch()
        {
            var network = new HydroNetwork();
            var from    = new HydroNode();
            var to      = new HydroNode();

            network.Nodes.Add(from);
            network.Nodes.Add(to);
            var channel = new Channel {
                Source = from, Target = to
            };

            network.Branches.Add(channel);

            var clonedNetwork = (IHydroNetwork)network.Clone();

            var from2 = new HydroNode("from2");
            var to2   = new HydroNode("to2");

            clonedNetwork.Nodes.Add(from2);
            clonedNetwork.Nodes.Add(to2);
            var channel2 = new Channel {
                Name = "channel2", Source = from2, Target = to2
            };

            clonedNetwork.Branches.Add(channel2);

            Assert.AreEqual(1, network.Branches.Count);
            Assert.AreEqual(2, clonedNetwork.Branches.Count);
        }
Example #10
0
        public void UnlinksOnBranchAdd()
        {
            var source  = mocks.Stub <ILinkSource>();
            var branch  = mocks.Stub <IBranch>();
            var branch2 = mocks.Stub <IBranch>();

            var outgoingLinks = new EventedList <ILinkDestination>();

            source.Stub(s => s.OutgoingLinks).Return(outgoingLinks).Repeat.Any();

            mocks.ReplayAll();

            var node = new HydroNode();

            node.OutgoingBranches.Add(branch);

            Assert.IsTrue(node.IsBoundaryNode);

            node.IncomingLinks.Add(source);
            source.OutgoingLinks.Add(node);

            node.IncomingBranches.Add(branch2);

            Assert.IsFalse(node.IsBoundaryNode);

            Assert.AreEqual(0, outgoingLinks.Count);
            Assert.AreEqual(0, node.IncomingLinks.Count);
        }
Example #11
0
        public void CloneHydroNetworkWithVariousBranchFeatures()
        {
            var network = new HydroNetwork();
            var from    = new HydroNode();
            var to      = new HydroNode();

            network.Nodes.Add(from);
            network.Nodes.Add(to);
            var channel = new Channel {
                Source = from, Target = to
            };

            network.Branches.Add(channel);
            var compositeBranchStructure = new CompositeBranchStructure();

            NetworkHelper.AddBranchFeatureToBranch(channel, compositeBranchStructure, 0);
            HydroNetworkHelper.AddStructureToComposite(compositeBranchStructure, new Weir());
            HydroNetworkHelper.AddStructureToComposite(compositeBranchStructure, new Pump());

            NetworkHelper.AddBranchFeatureToBranch(channel, new CrossSection(), 0);

            var clonedHydroNetwork = (IHydroNetwork)network.Clone();

            clonedHydroNetwork.CrossSections.Should().Have.Count.EqualTo(1);
            clonedHydroNetwork.CompositeBranchStructures.Should().Have.Count.EqualTo(1);
            clonedHydroNetwork.Weirs.Should().Have.Count.EqualTo(1);
            clonedHydroNetwork.Pumps.Should().Have.Count.EqualTo(1);
        }
Example #12
0
        public void Clone()
        {
            var node = new HydroNode("naam")
            {
                LongName = "Long"
            };
            var clone = (HydroNode)node.Clone();

            //todo expand to cover functionality
            Assert.AreEqual(node.LongName, clone.LongName);
        }
        public void DetectAndUpdateBranchBoundaries()
        {
            var network = new HydroNetwork();

            var branch1 = new Channel();
            var node1 = new HydroNode();
            var node2 = new HydroNode();

            branch1.Source = node1;
            branch1.Target = node2;

            network.Branches.Add(branch1);
            network.Nodes.Add(node1);
            network.Nodes.Add(node2);

            Assert.IsTrue(node1.IsBoundaryNode);
            Assert.IsTrue(node2.IsBoundaryNode);
        }
Example #14
0
        public void DetectAndUpdateBranchBoundaries()
        {
            var network = new HydroNetwork();

            var branch1 = new Channel();
            var node1   = new HydroNode();
            var node2   = new HydroNode();

            branch1.Source = node1;
            branch1.Target = node2;

            network.Branches.Add(branch1);
            network.Nodes.Add(node1);
            network.Nodes.Add(node2);

            Assert.IsTrue(node1.IsBoundaryNode);
            Assert.IsTrue(node2.IsBoundaryNode);
        }
Example #15
0
        /// <summary>
        /// Creates a simple test network of 1 branch amd 2 nodes. The branch has '3' parts, in the center of
        /// the first aand last is a cross section.
        ///                 n
        ///                /
        ///               /
        ///              cs
        ///             /
        ///     -------/
        ///    /
        ///   cs
        ///  /
        /// n
        /// </summary>
        /// <returns></returns>
        private static IHydroNetwork CreateTestNetwork()
        {
            var network = new Hydro.HydroNetwork();
            var branch1 = new Channel
            {
                Geometry = new LineString(new[]
                {
                    new Coordinate(0, 0), new Coordinate(30, 40),
                    new Coordinate(70, 40), new Coordinate(100, 100)
                })
            };

            var node1 = new HydroNode {
                Network = network, Geometry = new Point(new Coordinate(0, 0))
            };
            var node2 = new HydroNode {
                Network = network, Geometry = new Point(new Coordinate(100, 100))
            };

            network.Branches.Add(branch1);
            network.Nodes.Add(node1);
            network.Nodes.Add(node2);

            var crossSection1 = new CrossSection {
                Geometry = new LineString(new[] { new Coordinate(15, 20), new Coordinate(15, 20) })
            };
            double offset1 = Math.Sqrt(15 * 15 + 20 * 20);

            crossSection1.Offset = offset1;

            var crossSection2 = new CrossSection {
                Geometry = new LineString(new[] { new Coordinate(85, 70), new Coordinate(85, 70) })
            };
            double offset2 = Math.Sqrt(30 * 30 + 40 * 40) + 40 + Math.Sqrt(15 * 15 + 20 * 20);

            crossSection2.Offset = offset2;

            branch1.Source = node1;
            branch1.Target = node2;
            NetworkHelper.AddBranchFeatureToBranch(branch1, crossSection1, crossSection1.Offset);
            NetworkHelper.AddBranchFeatureToBranch(branch1, crossSection2, crossSection2.Offset);

            return(network);
        }
Example #16
0
        public void CloneHydroNetworkWithCrossSection()
        {
            var network = new HydroNetwork();
            var from    = new HydroNode();
            var to      = new HydroNode();

            network.Nodes.Add(from);
            network.Nodes.Add(to);
            var channel = new Channel {
                Source = from, Target = to
            };

            network.Branches.Add(channel);
            NetworkHelper.AddBranchFeatureToBranch(channel, new CrossSection(), 0);

            var clonedHydroNetwork = (IHydroNetwork)network.Clone();

            clonedHydroNetwork.CrossSections.Should().Have.Count.EqualTo(1);
        }
Example #17
0
        public void CloneHydroNetworkWithCrossSectionSectionTypes()
        {
            var network = new HydroNetwork();
            var crossSectionSectionType = new CrossSectionSectionType {
                Name = "Jan"
            };

            network.CrossSectionSectionTypes.Add(crossSectionSectionType);
            crossSectionSectionType.Id = 666;//debug easy by idd
            var from = new HydroNode();
            var to   = new HydroNode();

            network.Nodes.Add(from);
            network.Nodes.Add(to);
            var channel = new Channel {
                Source = from, Target = to
            };

            network.Branches.Add(channel);
            var crossSectionXYZ = new CrossSectionDefinitionXYZ
            {
                Geometry = new LineString(new[] { new Coordinate(0, 0), new Coordinate(10, 0) })
            };

            crossSectionXYZ.Sections.Add(new CrossSectionSection {
                SectionType = crossSectionSectionType
            });

            HydroNetworkHelper.AddCrossSectionDefinitionToBranch(channel, crossSectionXYZ, 0);

            var clonedHydroNetwork = (IHydroNetwork)network.Clone();

            clonedHydroNetwork.CrossSections.Should().Have.Count.EqualTo(1);
            var cloneCrossSection = clonedHydroNetwork.CrossSections.FirstOrDefault();
            var clonedType        = clonedHydroNetwork.CrossSectionSectionTypes.FirstOrDefault(t => t.Name == "Jan");

            //the type should be cloned
            Assert.AreNotEqual(clonedType, crossSectionSectionType);
            //the crosssection reference should be updated to use the cloned type
            Assert.AreEqual(clonedType, cloneCrossSection.Definition.Sections[0].SectionType);
        }
Example #18
0
        public void CloneHydroNetwork()
        {
            var network = new HydroNetwork();
            var from    = new HydroNode();
            var to      = new HydroNode();

            network.Nodes.Add(from);
            network.Nodes.Add(to);
            var channel = new Channel {
                Source = from, Target = to
            };

            network.Branches.Add(channel);

            var clonedHydroNetwork = (IHydroNetwork)network.Clone();

            clonedHydroNetwork.GetType().Should().Be.EqualTo(typeof(HydroNetwork));

            clonedHydroNetwork.Branches.Count.Should().Be.EqualTo(1);
            clonedHydroNetwork.Nodes.Count.Should().Be.EqualTo(2);
        }
Example #19
0
        public void AddManyBranchesWithSimpleBranchFeature()
        {
            DateTime t = DateTime.Now;

            const int count   = 10000;
            var       network = new HydroNetwork();

            for (int i = 0; i < count; i++)
            {
                var from = new HydroNode();
                var to   = new HydroNode();

                network.Nodes.Add(from);
                network.Nodes.Add(to);

                var channel = new Channel {
                    Source = from, Target = to
                };

                var compositeBranchStructure = new CompositeBranchStructure();
                NetworkHelper.AddBranchFeatureToBranch(channel, compositeBranchStructure, 0);
                HydroNetworkHelper.AddStructureToComposite(compositeBranchStructure, new Weir());

                network.Branches.Add(channel);
            }

            int weirCount = 0;

            foreach (IWeir weir in network.Weirs) // access all Weirs should be also fast
            {
                weirCount++;
            }

            TimeSpan dt = DateTime.Now - t;

            log.InfoFormat("Added {0} branches with {1} weirs in {2} sec", count, weirCount, dt.TotalSeconds);

            // 20091029 set to 5 seconds; original test only added weirs and created an invalid hydronetwork
            Assert.LessOrEqual(dt.TotalSeconds, 2.7);
        }
Example #20
0
        public void CloneHydroNetworkWithCrossSection()
        {
            var network = new HydroNetwork();
            var from    = new HydroNode();
            var to      = new HydroNode();

            network.Nodes.Add(from);
            network.Nodes.Add(to);
            var channel = new Channel {
                Source = from, Target = to
            };

            network.Branches.Add(channel);
            var crossSectionXYZ = new CrossSectionDefinitionXYZ
            {
                Geometry = new LineString(new[] { new Coordinate(0, 0), new Coordinate(10, 0) })
            };

            HydroNetworkHelper.AddCrossSectionDefinitionToBranch(channel, crossSectionXYZ, 0);

            var clonedHydroNetwork = (IHydroNetwork)network.Clone();

            clonedHydroNetwork.CrossSections.Should().Have.Count.EqualTo(1);
        }
        /// <summary>
        /// Creates a simple test network of 1 branch amd 2 nodes. The branch has '3' parts, in the center of
        /// the first aand last is a cross section.
        ///                 n
        ///                /
        ///               /
        ///              cs
        ///             /
        ///     -------/
        ///    /
        ///   cs
        ///  /
        /// n
        /// </summary>
        /// <returns></returns>
        private static IHydroNetwork CreateSegmentTestNetwork()
        {
            var network = new Hydro.HydroNetwork();
            var branch1 = new Channel
                              {
                                  Geometry = new LineString(new[]
                                                                {
                                                                    new Coordinate(0, 0), new Coordinate(0, 100),
                                                                })
                              };

            var node1 = new HydroNode { Network = network, Geometry = new Point(new Coordinate(0, 0)) };
            var node2 = new HydroNode { Network = network, Geometry = new Point(new Coordinate(100, 0)) };

            network.Branches.Add(branch1);
            network.Nodes.Add(node1);
            network.Nodes.Add(node2);

            branch1.Source = node1;
            branch1.Target = node2;

            return network;
        }
Example #22
0
        public void AddManyBranchesWithSimpleBranchFeature()
        {
            DateTime t = DateTime.Now;

            const int count = 10000;
            var network = new HydroNetwork();
            for (int i = 0; i < count; i++)
            {
                var from = new HydroNode();
                var to = new HydroNode();

                network.Nodes.Add(from);
                network.Nodes.Add(to);

                var channel = new Channel {Source = from, Target = to};

                var compositeBranchStructure = new CompositeBranchStructure();
                NetworkHelper.AddBranchFeatureToBranch(channel, compositeBranchStructure, 0);
                HydroNetworkHelper.AddStructureToComposite(compositeBranchStructure, new Weir());

                network.Branches.Add(channel);
            }

            int weirCount = 0;
            foreach (IWeir weir in network.Weirs) // access all Weirs should be also fast
            {
                weirCount++;
            }

            TimeSpan dt = DateTime.Now - t;

            log.InfoFormat("Added {0} branches with {1} weirs in {2} sec", count, weirCount, dt.TotalSeconds);

            // 20091029 set to 5 seconds; original test only added weirs and created an invalid hydronetwork
            Assert.LessOrEqual(dt.TotalSeconds, 2.7);
        }
Example #23
0
        public void CloneHydroNetwork()
        {
            var network = new HydroNetwork();
            var from = new HydroNode();
            var to = new HydroNode();
            network.Nodes.Add(from);
            network.Nodes.Add(to);
            var channel = new Channel {Source = from, Target = to};
            network.Branches.Add(channel);

            var clonedHydroNetwork = (IHydroNetwork) network.Clone();
            clonedHydroNetwork.GetType().Should().Be.EqualTo(typeof (HydroNetwork));

            clonedHydroNetwork.Branches.Count.Should().Be.EqualTo(1);
            clonedHydroNetwork.Nodes.Count.Should().Be.EqualTo(2);
        }
Example #24
0
        public void CloneHydroNetworkWithCrossSection()
        {
            var network = new HydroNetwork();
            var from = new HydroNode();
            var to = new HydroNode();
            network.Nodes.Add(from);
            network.Nodes.Add(to);
            var channel = new Channel {Source = from, Target = to};
            network.Branches.Add(channel);
            NetworkHelper.AddBranchFeatureToBranch(channel, new CrossSection(), 0);

            var clonedHydroNetwork = (IHydroNetwork) network.Clone();
            clonedHydroNetwork.CrossSections.Should().Have.Count.EqualTo(1);
        }
Example #25
0
        public void CloneHydroNetworkWithVariousBranchFeatures()
        {
            var network = new HydroNetwork();
            var from = new HydroNode();
            var to = new HydroNode();
            network.Nodes.Add(from);
            network.Nodes.Add(to);
            var channel = new Channel {Source = from, Target = to};
            network.Branches.Add(channel);
            var compositeBranchStructure = new CompositeBranchStructure();
            NetworkHelper.AddBranchFeatureToBranch(channel, compositeBranchStructure, 0);
            HydroNetworkHelper.AddStructureToComposite(compositeBranchStructure, new Weir());
            HydroNetworkHelper.AddStructureToComposite(compositeBranchStructure, new Pump());

            NetworkHelper.AddBranchFeatureToBranch(channel, new CrossSection(), 0);

            var clonedHydroNetwork = (IHydroNetwork) network.Clone();
            clonedHydroNetwork.CrossSections.Should().Have.Count.EqualTo(1);
            clonedHydroNetwork.CompositeBranchStructures.Should().Have.Count.EqualTo(1);
            clonedHydroNetwork.Weirs.Should().Have.Count.EqualTo(1);
            clonedHydroNetwork.Pumps.Should().Have.Count.EqualTo(1);
        }