Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/Assemblers/Geometry2DSectionAssemblerTest.cs =================================================================== diff -u -r4000 -r4052 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/Assemblers/Geometry2DSectionAssemblerTest.cs (.../Geometry2DSectionAssemblerTest.cs) (revision 4000) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/Assemblers/Geometry2DSectionAssemblerTest.cs (.../Geometry2DSectionAssemblerTest.cs) (revision 4052) @@ -30,175 +30,174 @@ using Deltares.DamEngine.TestHelpers; using NUnit.Framework; -namespace Deltares.DamEngine.Calculators.Tests.KernelWrappers.Assemblers +namespace Deltares.DamEngine.Calculators.Tests.KernelWrappers.Assemblers; + +[TestFixture] +public class Geometry2DSectionAssemblerTest { - [TestFixture] - public class Geometry2DSectionAssemblerTest - { - private const string TestFolder = @"..\..\..\Deltares.DamEngine.Calculators.Tests\KernelWrappers\Assemblers\TestData"; - private const string testDirectory = "TestResults"; - private const string testFileName = "Geometry2DSectionAssemblerTest.xml"; - private const double cTolerance = 1e-8; - private readonly string outputXml = Path.Combine(TestFolder, "ProfileOutput.xml"); - private Geometry2DSectionAssembler assembler; - private Geometry2DSectionParameters geometry2DSectionParameters; + private const string TestFolder = @"..\..\..\Deltares.DamEngine.Calculators.Tests\KernelWrappers\Assemblers\TestData"; + private const string testDirectory = "TestResults"; + private const string testFileName = "Geometry2DSectionAssemblerTest.xml"; + private const double cTolerance = 1e-8; + private readonly string outputXml = Path.Combine(TestFolder, "ProfileOutput.xml"); + private Geometry2DSectionAssembler assembler; + private Geometry2DSectionParameters geometry2DSectionParameters; - [SetUp] - public void TestFixtureSetup() {} + [SetUp] + public void TestFixtureSetup() {} - #region Setup/Teardown + #region Setup/Teardown - [SetUp] - public void TestSetup() - { - const string soilGeometry2DName = "SoilGeometry2DName"; - assembler = new Geometry2DSectionAssembler(); - geometry2DSectionParameters = new Geometry2DSectionParameters(); - geometry2DSectionParameters.XCoordinateSection = 65.4; - geometry2DSectionParameters.SoilGeometry2DName = soilGeometry2DName; - // Soil profiles - var soilProfile = new SoilProfile1D(); - soilProfile.Name = "SoilProfile1"; - soilProfile.BottomLevel = -25.3; - var soilClay = new Soil("Clay", 20.0, 20.0); - var soilPeat = new Soil("Peat", 20.0, 20.0); - var soilSand = new Soil("Sand", 20.0, 20.0); - var layer = new SoilLayer1D(); - layer.Name = "L1"; - layer.SoilName = "Layer 1"; - layer.TopLevel = -1.52; - layer.Soil = soilClay; - layer.IsAquifer = false; - soilProfile.Layers.Add(layer); - layer = new SoilLayer1D(); - layer.Name = "L2"; - layer.SoilName = "Layer 2"; - layer.TopLevel = -3.18; - layer.Soil = soilPeat; - layer.IsAquifer = false; - soilProfile.Layers.Add(layer); - layer = new SoilLayer1D(); - layer.Name = "L3"; - layer.SoilName = "Layer 3"; - layer.TopLevel = -7.37; - layer.Soil = soilSand; - layer.IsAquifer = true; - soilProfile.Layers.Add(layer); - layer = new SoilLayer1D(); - layer.Name = "L4"; - layer.SoilName = "Layer 4"; - layer.TopLevel = -12.28; - layer.Soil = soilPeat; - layer.IsAquifer = false; - soilProfile.Layers.Add(layer); - layer = new SoilLayer1D(); - layer.Name = "L5"; - layer.SoilName = "Layer 5"; - layer.TopLevel = -15.62; - layer.Soil = soilClay; - layer.IsAquifer = false; - soilProfile.Layers.Add(layer); - layer = new SoilLayer1D(); - layer.Name = "L6"; - layer.SoilName = "Layer 6"; - layer.TopLevel = -18.39; - layer.Soil = soilSand; - layer.IsAquifer = true; - soilProfile.Layers.Add(layer); - geometry2DSectionParameters.SoilProfile = soilProfile; - } + [SetUp] + public void TestSetup() + { + const string soilGeometry2DName = "SoilGeometry2DName"; + assembler = new Geometry2DSectionAssembler(); + geometry2DSectionParameters = new Geometry2DSectionParameters(); + geometry2DSectionParameters.XCoordinateSection = 65.4; + geometry2DSectionParameters.SoilGeometry2DName = soilGeometry2DName; + // Soil profiles + var soilProfile = new SoilProfile1D(); + soilProfile.Name = "SoilProfile1"; + soilProfile.BottomLevel = -25.3; + var soilClay = new Soil("Clay", 20.0, 20.0); + var soilPeat = new Soil("Peat", 20.0, 20.0); + var soilSand = new Soil("Sand", 20.0, 20.0); + var layer = new SoilLayer1D(); + layer.Name = "L1"; + layer.SoilName = "Layer 1"; + layer.TopLevel = -1.52; + layer.Soil = soilClay; + layer.IsAquifer = false; + soilProfile.Layers.Add(layer); + layer = new SoilLayer1D(); + layer.Name = "L2"; + layer.SoilName = "Layer 2"; + layer.TopLevel = -3.18; + layer.Soil = soilPeat; + layer.IsAquifer = false; + soilProfile.Layers.Add(layer); + layer = new SoilLayer1D(); + layer.Name = "L3"; + layer.SoilName = "Layer 3"; + layer.TopLevel = -7.37; + layer.Soil = soilSand; + layer.IsAquifer = true; + soilProfile.Layers.Add(layer); + layer = new SoilLayer1D(); + layer.Name = "L4"; + layer.SoilName = "Layer 4"; + layer.TopLevel = -12.28; + layer.Soil = soilPeat; + layer.IsAquifer = false; + soilProfile.Layers.Add(layer); + layer = new SoilLayer1D(); + layer.Name = "L5"; + layer.SoilName = "Layer 5"; + layer.TopLevel = -15.62; + layer.Soil = soilClay; + layer.IsAquifer = false; + soilProfile.Layers.Add(layer); + layer = new SoilLayer1D(); + layer.Name = "L6"; + layer.SoilName = "Layer 6"; + layer.TopLevel = -18.39; + layer.Soil = soilSand; + layer.IsAquifer = true; + soilProfile.Layers.Add(layer); + geometry2DSectionParameters.SoilProfile = soilProfile; + } - #endregion + #endregion - [Test] - [Ignore("")] - [Category(Categories.WorkInProgress)] - public void CanCreateAndValidateGeometry2DSectionXML() - { - // Do the thing: create XML element from SoilProfile - XDocument doc = assembler.CreateDataTransferObject(geometry2DSectionParameters); + [Test] + [Ignore("")] + [Category(Categories.WorkInProgress)] + public void CanCreateAndValidateGeometry2DSectionXML() + { + // Do the thing: create XML element from SoilProfile + XDocument doc = assembler.CreateDataTransferObject(geometry2DSectionParameters); - Directory.CreateDirectory(testDirectory); - doc.Save(Path.Combine(testDirectory, testFileName)); + Directory.CreateDirectory(testDirectory); + doc.Save(Path.Combine(testDirectory, testFileName)); - //// Validate against schema - //string message; - //if (!this.assembler.ValidateSchema(doc, out message)) - //{ - // Assert.Fail("SCHEMA VALIDATION: " + message); - //} + //// Validate against schema + //string message; + //if (!this.assembler.ValidateSchema(doc, out message)) + //{ + // Assert.Fail("SCHEMA VALIDATION: " + message); + //} - // Compare resulting XML to original object + // Compare resulting XML to original object - // Input - XElement inputElement = (from element in doc.Root.Descendants() - where element.Name.LocalName == Geometry2DSectionAssembler.XmlElementGeometry2DSectionInput - select element).Single(); + // Input + XElement inputElement = (from element in doc.Root.Descendants() + where element.Name.LocalName == Geometry2DSectionAssembler.XmlElementGeometry2DSectionInput + select element).Single(); - // Database - Assert.AreEqual(geometry2DSectionParameters.SoilGeometry2DName, inputElement.AttributeAs(Geometry2DSectionAssembler.XmlAttributeSoilGeometry2DFilename), String.Format("{0}", Geometry2DSectionAssembler.XmlAttributeSoilGeometry2DFilename)); - Assert.AreEqual(geometry2DSectionParameters.XCoordinateSection, inputElement.AttributeAs(Geometry2DSectionAssembler.XmlAttributeXCoordinateSection), String.Format("{0}", Geometry2DSectionAssembler.XmlAttributeXCoordinateSection)); + // Database + Assert.AreEqual(geometry2DSectionParameters.SoilGeometry2DName, inputElement.AttributeAs(Geometry2DSectionAssembler.XmlAttributeSoilGeometry2DFilename), String.Format("{0}", Geometry2DSectionAssembler.XmlAttributeSoilGeometry2DFilename)); + Assert.AreEqual(geometry2DSectionParameters.XCoordinateSection, inputElement.AttributeAs(Geometry2DSectionAssembler.XmlAttributeXCoordinateSection), String.Format("{0}", Geometry2DSectionAssembler.XmlAttributeXCoordinateSection)); - // Profile - IEnumerable soilProfileCollectionElements = from element in doc.Root.Descendants() - where element.Name.LocalName == XMLAttributes.XmlElementProfile - select element; + // Profile + IEnumerable soilProfileCollectionElements = from element in doc.Root.Descendants() + where element.Name.LocalName == XMLAttributes.XmlElementProfile + select element; - Assert.AreEqual(1, soilProfileCollectionElements.Count(), "Number of profiles"); + Assert.AreEqual(1, soilProfileCollectionElements.Count(), "Number of profiles"); - XElement soilProfileElement = soilProfileCollectionElements.Single(); + XElement soilProfileElement = soilProfileCollectionElements.Single(); - Assert.IsNotNull(soilProfileElement.Attribute(XMLAttributes.XmlAttributeName), String.Format("{0}", XMLAttributes.XmlAttributeName)); - Assert.AreEqual(geometry2DSectionParameters.SoilProfile.Name, soilProfileElement.AttributeAs(XMLAttributes.XmlAttributeName), String.Format("{0}", XMLAttributes.XmlAttributeName)); - Assert.IsNotNull(soilProfileElement.Attribute(XMLAttributes.XmlAttributeXCoordinate), String.Format("{0}", XMLAttributes.XmlAttributeXCoordinate)); - Assert.IsNotNull(soilProfileElement.Attribute(XMLAttributes.XmlAttributeYCoordinate), String.Format("{0}", XMLAttributes.XmlAttributeYCoordinate)); - Assert.IsNotNull(soilProfileElement.Attribute(XMLAttributes.XmlAttributePhreaticLevel), String.Format("{0}", XMLAttributes.XmlAttributePhreaticLevel)); - Assert.IsNotNull(soilProfileElement.Attribute(XMLAttributes.XmlAttributeHasPhreaticLevel), String.Format("{0}", XMLAttributes.XmlAttributeHasPhreaticLevel)); - Assert.IsNotNull(soilProfileElement.Attribute(XMLAttributes.XmlAttributeBottomLevel), String.Format("{0}", XMLAttributes.XmlAttributeBottomLevel)); - Assert.AreEqual(geometry2DSectionParameters.SoilProfile.BottomLevel, soilProfileElement.AttributeAs(XMLAttributes.XmlAttributeBottomLevel), cTolerance, String.Format("{0}", XMLAttributes.XmlAttributeBottomLevel)); - // Created no PL line so characteristic layers are unassigned - Assert.IsNotNull(soilProfileElement.Attribute(XMLAttributes.XmlAttributeBottomSandLayerID), XMLAttributes.XmlAttributeBottomSandLayerID); - Assert.IsNotNull(soilProfileElement.Attribute(XMLAttributes.XmlAttributeInBetweenSandLayerID), XMLAttributes.XmlAttributeInBetweenSandLayerID); - Assert.IsNull(soilProfileElement.Attribute(XMLAttributes.XmlAttributeInfiltrationLayerID), XMLAttributes.XmlAttributeInfiltrationLayerID); + Assert.IsNotNull(soilProfileElement.Attribute(XMLAttributes.XmlAttributeName), String.Format("{0}", XMLAttributes.XmlAttributeName)); + Assert.AreEqual(geometry2DSectionParameters.SoilProfile.Name, soilProfileElement.AttributeAs(XMLAttributes.XmlAttributeName), String.Format("{0}", XMLAttributes.XmlAttributeName)); + Assert.IsNotNull(soilProfileElement.Attribute(XMLAttributes.XmlAttributeXCoordinate), String.Format("{0}", XMLAttributes.XmlAttributeXCoordinate)); + Assert.IsNotNull(soilProfileElement.Attribute(XMLAttributes.XmlAttributeYCoordinate), String.Format("{0}", XMLAttributes.XmlAttributeYCoordinate)); + Assert.IsNotNull(soilProfileElement.Attribute(XMLAttributes.XmlAttributePhreaticLevel), String.Format("{0}", XMLAttributes.XmlAttributePhreaticLevel)); + Assert.IsNotNull(soilProfileElement.Attribute(XMLAttributes.XmlAttributeHasPhreaticLevel), String.Format("{0}", XMLAttributes.XmlAttributeHasPhreaticLevel)); + Assert.IsNotNull(soilProfileElement.Attribute(XMLAttributes.XmlAttributeBottomLevel), String.Format("{0}", XMLAttributes.XmlAttributeBottomLevel)); + Assert.AreEqual(geometry2DSectionParameters.SoilProfile.BottomLevel, soilProfileElement.AttributeAs(XMLAttributes.XmlAttributeBottomLevel), cTolerance, String.Format("{0}", XMLAttributes.XmlAttributeBottomLevel)); + // Created no PL line so characteristic layers are unassigned + Assert.IsNotNull(soilProfileElement.Attribute(XMLAttributes.XmlAttributeBottomSandLayerID), XMLAttributes.XmlAttributeBottomSandLayerID); + Assert.IsNotNull(soilProfileElement.Attribute(XMLAttributes.XmlAttributeInBetweenSandLayerID), XMLAttributes.XmlAttributeInBetweenSandLayerID); + Assert.IsNull(soilProfileElement.Attribute(XMLAttributes.XmlAttributeInfiltrationLayerID), XMLAttributes.XmlAttributeInfiltrationLayerID); - // Profile layers - IEnumerable layersCollectionElements = from element in soilProfileElement.Descendants() - where element.Name.LocalName == XMLAttributes.XmlElementLayers - select element; + // Profile layers + IEnumerable layersCollectionElements = from element in soilProfileElement.Descendants() + where element.Name.LocalName == XMLAttributes.XmlElementLayers + select element; - Assert.AreEqual(1, layersCollectionElements.Count(), "profile layer collection tag"); + Assert.AreEqual(1, layersCollectionElements.Count(), "profile layer collection tag"); - IEnumerable layerCollectionElements = from element in layersCollectionElements.Descendants() - where element.Name.LocalName == XMLAttributes.XmlElementLayer - select element; + IEnumerable layerCollectionElements = from element in layersCollectionElements.Descendants() + where element.Name.LocalName == XMLAttributes.XmlElementLayer + select element; - Assert.AreEqual(geometry2DSectionParameters.SoilProfile.Layers.Count, layerCollectionElements.Count(), "Number of profile layers"); + Assert.AreEqual(geometry2DSectionParameters.SoilProfile.Layers.Count, layerCollectionElements.Count(), "Number of profile layers"); - IEnumerator layerElementEnumerator = layerCollectionElements.GetEnumerator(); - foreach (SoilLayer1D layer in geometry2DSectionParameters.SoilProfile.Layers) - { - layerElementEnumerator.MoveNext(); - XElement layerElement = layerElementEnumerator.Current; - Assert.IsNotNull(layerElement.Attribute(XMLAttributes.XmlAttributeID), String.Format("{0}", String.Format("ID of layer #{0}", geometry2DSectionParameters.SoilProfile.Layers.IndexOf(layer)))); - Assert.AreEqual(layer.Name, layerElement.AttributeAs(XMLAttributes.XmlAttributeID), String.Format("ID of layer #{0}", geometry2DSectionParameters.SoilProfile.Layers.IndexOf(layer))); - Assert.IsNotNull(layerElement.Attribute(XMLAttributes.XmlAttributeSoilID), String.Format("{0}", String.Format("SoilID of layer #{0}", geometry2DSectionParameters.SoilProfile.Layers.IndexOf(layer)))); - Assert.AreEqual(layer.Soil.Name, layerElement.AttributeAs(XMLAttributes.XmlAttributeSoilID), String.Format("SoilID of layer #{0}", geometry2DSectionParameters.SoilProfile.Layers.IndexOf(layer))); - Assert.IsNotNull(layerElement.Attribute(XMLAttributes.XmlAttributeTopLevel), String.Format("{0}", String.Format("TopLevel of layer #{0}", geometry2DSectionParameters.SoilProfile.Layers.IndexOf(layer)))); - Assert.AreEqual(layer.TopLevel, layerElement.AttributeAs(XMLAttributes.XmlAttributeTopLevel), String.Format("TopLevel of layer #{0}", geometry2DSectionParameters.SoilProfile.Layers.IndexOf(layer))); - } - } - - [Test] - public void CanReadGeometry2DSectionXML() + IEnumerator layerElementEnumerator = layerCollectionElements.GetEnumerator(); + foreach (SoilLayer1D layer in geometry2DSectionParameters.SoilProfile.Layers) { - XDocument doc = XDocument.Load(outputXml); - Geometry2DSectionParameters geometry2DSectionParameters = assembler.CreateOutputObject(doc); - Assert.AreEqual(6, geometry2DSectionParameters.SoilProfile.Layers.Count); - Assert.AreEqual(-10, geometry2DSectionParameters.SoilProfile.BottomLevel, cTolerance); - Assert.IsTrue(geometry2DSectionParameters.SoilProfile.Layers[3].SoilName.Equals("DKN3")); - Assert.AreEqual(-2.8, geometry2DSectionParameters.SoilProfile.Layers[3].TopLevel, cTolerance); - Assert.IsTrue(geometry2DSectionParameters.SoilGeometry2DName.Equals("1D1.sti")); - Assert.AreEqual(64.0, geometry2DSectionParameters.XCoordinateSection, cTolerance); + layerElementEnumerator.MoveNext(); + XElement layerElement = layerElementEnumerator.Current; + Assert.IsNotNull(layerElement.Attribute(XMLAttributes.XmlAttributeID), String.Format("{0}", String.Format("ID of layer #{0}", geometry2DSectionParameters.SoilProfile.Layers.IndexOf(layer)))); + Assert.AreEqual(layer.Name, layerElement.AttributeAs(XMLAttributes.XmlAttributeID), String.Format("ID of layer #{0}", geometry2DSectionParameters.SoilProfile.Layers.IndexOf(layer))); + Assert.IsNotNull(layerElement.Attribute(XMLAttributes.XmlAttributeSoilID), String.Format("{0}", String.Format("SoilID of layer #{0}", geometry2DSectionParameters.SoilProfile.Layers.IndexOf(layer)))); + Assert.AreEqual(layer.Soil.Name, layerElement.AttributeAs(XMLAttributes.XmlAttributeSoilID), String.Format("SoilID of layer #{0}", geometry2DSectionParameters.SoilProfile.Layers.IndexOf(layer))); + Assert.IsNotNull(layerElement.Attribute(XMLAttributes.XmlAttributeTopLevel), String.Format("{0}", String.Format("TopLevel of layer #{0}", geometry2DSectionParameters.SoilProfile.Layers.IndexOf(layer)))); + Assert.AreEqual(layer.TopLevel, layerElement.AttributeAs(XMLAttributes.XmlAttributeTopLevel), String.Format("TopLevel of layer #{0}", geometry2DSectionParameters.SoilProfile.Layers.IndexOf(layer))); } } + + [Test] + public void CanReadGeometry2DSectionXML() + { + XDocument doc = XDocument.Load(outputXml); + Geometry2DSectionParameters geometry2DSectionParameters = assembler.CreateOutputObject(doc); + Assert.AreEqual(6, geometry2DSectionParameters.SoilProfile.Layers.Count); + Assert.AreEqual(-10, geometry2DSectionParameters.SoilProfile.BottomLevel, cTolerance); + Assert.IsTrue(geometry2DSectionParameters.SoilProfile.Layers[3].SoilName.Equals("DKN3")); + Assert.AreEqual(-2.8, geometry2DSectionParameters.SoilProfile.Layers[3].TopLevel, cTolerance); + Assert.IsTrue(geometry2DSectionParameters.SoilGeometry2DName.Equals("1D1.sti")); + Assert.AreEqual(64.0, geometry2DSectionParameters.XCoordinateSection, cTolerance); + } } \ No newline at end of file