private static void AssertSerializableAssessmentProcess(string expectedId,
                                                         SerializableAssessmentSection expectedAssessmentSection,
                                                         SerializableAssessmentProcess serializableAssessmentProcess)
 {
     Assert.AreEqual(expectedId, serializableAssessmentProcess.Id);
     Assert.AreEqual(expectedAssessmentSection.Id, serializableAssessmentProcess.AssessmentSectionId);
 }
        public void Constructor_WithValidData_ReturnsExpectedValues()
        {
            // Setup
            const string id = "processId";

            var random            = new Random(39);
            var assessmentSection = new SerializableAssessmentSection(
                "assessmentSectionId",
                "name",
                new[]
            {
                new Point2D(random.NextDouble(), random.NextDouble()),
                new Point2D(random.NextDouble(), random.NextDouble())
            });

            // Call
            var assessmentProcess = new SerializableAssessmentProcess(id,
                                                                      assessmentSection);

            // Assert
            Assert.AreEqual(id, assessmentProcess.Id);
            Assert.AreEqual(assessmentSection.Id, assessmentProcess.AssessmentSectionId);
            Assert.AreEqual(2023, assessmentProcess.StartYear);
            Assert.AreEqual(2035, assessmentProcess.EndYear);
        }
        public void DefaultConstructor_ReturnsDefaultValues()
        {
            // Call
            var assessmentSection = new SerializableAssessmentSection();

            // Assert
            Assert.IsInstanceOf <SerializableFeatureMember>(assessmentSection);
            Assert.AreEqual("DKTRJCT", assessmentSection.AssessmentSectionType);
            Assert.IsNull(assessmentSection.Id);
            Assert.IsNull(assessmentSection.Name);
            Assert.IsNull(assessmentSection.ReferenceLineGeometry);
            Assert.IsNull(assessmentSection.ReferenceLineLength);

            SerializableAttributeTestHelper.AssertXmlTypeAttribute(typeof(SerializableAssessmentSection), "Waterkeringstelsel");

            SerializableAttributeTestHelper.AssertXmlAttributeAttribute <SerializableAssessmentSection>(
                nameof(SerializableAssessmentSection.Id), "id", "http://www.opengis.net/gml/3.2");

            SerializableAttributeTestHelper.AssertXmlElementAttribute <SerializableAssessmentSection>(
                nameof(SerializableAssessmentSection.AssessmentSectionType), "typeWaterkeringstelsel");
            SerializableAttributeTestHelper.AssertXmlElementAttribute <SerializableAssessmentSection>(
                nameof(SerializableAssessmentSection.Name), "naam");
            SerializableAttributeTestHelper.AssertXmlElementAttribute <SerializableAssessmentSection>(
                nameof(SerializableAssessmentSection.ReferenceLineLength), "lengte");
            SerializableAttributeTestHelper.AssertXmlElementAttribute <SerializableAssessmentSection>(
                nameof(SerializableAssessmentSection.ReferenceLineGeometry), "geometrie2D");
        }
 private static void AssertSerializableAssessmentSection(string expectedId,
                                                         string expectedAssessmentSectionName,
                                                         IEnumerable <Point2D> expectedGeometry,
                                                         SerializableAssessmentSection actualAssessmentSection)
 {
     Assert.AreEqual(expectedId, actualAssessmentSection.Id);
     Assert.AreEqual(expectedAssessmentSectionName, actualAssessmentSection.Name);
     Assert.AreEqual(GeometrySerializationFormatter.Format(expectedGeometry), actualAssessmentSection.ReferenceLineGeometry.LineString.Geometry);
 }
Ejemplo n.º 5
0
        /// <summary>
        /// Creates an instance of <see cref="SerializableAssessmentProcess"/>
        /// based on its input parameters.
        /// </summary>
        /// <param name="idGenerator">The generator to generate an id for the
        /// <see cref="SerializableAssessmentProcess"/>.</param>
        /// <param name="assessmentSection">The <see cref="SerializableAssessmentSection"/>
        /// this process belongs to.</param>
        /// <returns>A <see cref="SerializableAssessmentProcess"/>.</returns>
        /// <exception cref="ArgumentNullException">Thrown when any parameter is <c>null</c>.</exception>
        public static SerializableAssessmentProcess Create(IdentifierGenerator idGenerator,
                                                           SerializableAssessmentSection assessmentSection)
        {
            if (idGenerator == null)
            {
                throw new ArgumentNullException(nameof(idGenerator));
            }

            return(new SerializableAssessmentProcess(idGenerator.GetNewId(Resources.SerializableAssessmentProcess_IdPrefix),
                                                     assessmentSection));
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Creates an instance of <see cref="SerializableAssembly"/> based
        /// on <paramref name="assessmentSection"/>.
        /// </summary>
        /// <param name="assessmentSection">The <see cref="ExportableAssessmentSection"/>
        /// to create a <see cref="SerializableAssembly"/> for.</param>
        /// <returns>A <see cref="SerializableAssembly"/>.</returns>
        /// <exception cref="ArgumentNullException">Thrown when <paramref name="assessmentSection"/>
        /// is <c>null</c>.</exception>
        /// <exception cref="AssemblyCreatorException">Thrown when the <paramref name="assessmentSection"/> is invalid
        /// to create a serializable counterpart for.</exception>
        public static SerializableAssembly Create(ExportableAssessmentSection assessmentSection)
        {
            if (assessmentSection == null)
            {
                throw new ArgumentNullException(nameof(assessmentSection));
            }

            var    idGenerator            = new IdentifierGenerator();
            string serializableAssemblyId = idGenerator.GetNewId(Resources.SerializableAssembly_IdPrefix);

            SerializableAssessmentSection   serializableAssessmentSection   = SerializableAssessmentSectionCreator.Create(assessmentSection);
            SerializableAssessmentProcess   serializableAssessmentProcess   = SerializableAssessmentProcessCreator.Create(idGenerator, serializableAssessmentSection);
            SerializableTotalAssemblyResult serializableTotalAssemblyResult =
                SerializableTotalAssemblyResultCreator.Create(
                    idGenerator,
                    serializableAssessmentProcess,
                    SerializableAssemblyMethodCreator.Create(assessmentSection.AssessmentSectionAssembly.ProbabilityAssemblyMethod),
                    SerializableAssemblyMethodCreator.Create(assessmentSection.AssessmentSectionAssembly.AssemblyGroupAssemblyMethod),
                    SerializableAssessmentSectionAssemblyGroupCreator.Create(assessmentSection.AssessmentSectionAssembly.AssemblyGroup),
                    assessmentSection.AssessmentSectionAssembly.Probability);

            AggregatedSerializableFailureMechanism[] aggregatedFailureMechanisms = assessmentSection.FailureMechanisms
                                                                                   .Select(fm => AggregatedSerializableFailureMechanismCreator.Create(
                                                                                               idGenerator, serializableTotalAssemblyResult, fm))
                                                                                   .ToArray();

            AggregatedSerializableCombinedFailureMechanismSectionAssemblies aggregatedSerializableCombinedFailureMechanismSectionAssemblies =
                AggregatedSerializableCombinedFailureMechanismSectionAssembliesCreator.Create(
                    idGenerator, serializableTotalAssemblyResult, assessmentSection.CombinedSectionAssemblies);

            return(new SerializableAssembly(
                       serializableAssemblyId,
                       GetLowerCorner(assessmentSection.Geometry),
                       GetUpperCorner(assessmentSection.Geometry),
                       serializableAssessmentSection,
                       serializableAssessmentProcess,
                       serializableTotalAssemblyResult,
                       aggregatedFailureMechanisms.Select(afm => afm.FailureMechanism),
                       aggregatedFailureMechanisms.SelectMany(afm => afm.FailureMechanismSectionAssemblyResults),
                       aggregatedSerializableCombinedFailureMechanismSectionAssemblies.CombinedFailureMechanismSectionAssemblies,
                       GetAllSerializableFailureMechanismSectionCollections(
                           aggregatedFailureMechanisms, aggregatedSerializableCombinedFailureMechanismSectionAssemblies),
                       aggregatedFailureMechanisms.SelectMany(afm => afm.FailureMechanismSections)
                       .Concat(aggregatedSerializableCombinedFailureMechanismSectionAssemblies.FailureMechanismSections)));
        }
Ejemplo n.º 7
0
        public void Create_WithValidArguments_ReturnsSerializableAssessmentProcess()
        {
            // Setup
            const string assessmentSectionId           = "assessmentSectionId";
            var          serializableAssessmentSection = new SerializableAssessmentSection(assessmentSectionId,
                                                                                           string.Empty,
                                                                                           CreateGeometry());

            var idGenerator = new IdentifierGenerator();

            // Call
            SerializableAssessmentProcess serializableProcess =
                SerializableAssessmentProcessCreator.Create(idGenerator, serializableAssessmentSection);

            // Assert
            Assert.AreEqual("Bp.0", serializableProcess.Id);
            Assert.AreEqual(serializableAssessmentSection.Id, serializableProcess.AssessmentSectionId);
        }
        public void Create_WithAssessmentSection_ReturnsSerializableAssessmentSection()
        {
            // Setup
            const string assessmentSectionName = "Assessment Section Name";
            const string assessmentSectionId   = "assessmentSectionId";

            ExportableAssessmentSection assessmentSection = CreateAssessmentSection(assessmentSectionName,
                                                                                    assessmentSectionId);

            // Call
            SerializableAssessmentSection serializableAssessmentSection =
                SerializableAssessmentSectionCreator.Create(assessmentSection);

            // Assert
            Assert.AreEqual($"Wks.{assessmentSection.Id}", serializableAssessmentSection.Id);
            Assert.AreEqual(assessmentSectionName, serializableAssessmentSection.Name);

            IEnumerable <Point2D> expectedGeometry = assessmentSection.Geometry;

            Assert.AreEqual(Math2D.Length(expectedGeometry), serializableAssessmentSection.ReferenceLineLength.Value);
            Assert.AreEqual(GeometrySerializationFormatter.Format(expectedGeometry),
                            serializableAssessmentSection.ReferenceLineGeometry.LineString.Geometry);
        }
        public void Constructor_WithValidData_ReturnsExpectedValues()
        {
            // Setup
            const string name = "section name";
            const string id   = "sectionId";

            var random   = new Random(39);
            var geometry = new[]
            {
                new Point2D(random.NextDouble(), random.NextDouble()),
                new Point2D(random.NextDouble(), random.NextDouble())
            };

            // Call
            var assessmentSection = new SerializableAssessmentSection(id, name, geometry);

            // Assert
            Assert.AreEqual(id, assessmentSection.Id);
            Assert.AreEqual(name, assessmentSection.Name);
            Assert.AreEqual(Math2D.Length(geometry), assessmentSection.ReferenceLineLength.Value);
            Assert.IsNotNull(assessmentSection.ReferenceLineGeometry);
            Assert.AreEqual("DKTRJCT", assessmentSection.AssessmentSectionType);
        }
Ejemplo n.º 10
0
        public void Constructor_WithValidData_ReturnsExpectedValues()
        {
            // Setup
            const string id = "assemblyId1";

            var random                                  = new Random(39);
            var lowerCorner                             = new Point2D(random.NextDouble(), random.NextDouble());
            var upperCorner                             = new Point2D(random.NextDouble(), random.NextDouble());
            var assessmentSection                       = new SerializableAssessmentSection();
            var assessmentProcess                       = new SerializableAssessmentProcess();
            var totalAssemblyResult                     = new SerializableTotalAssemblyResult();
            var failureMechanism                        = new SerializableFailureMechanism();
            var failureMechanismSectionAssembly         = new SerializableFailureMechanismSectionAssembly();
            var combinedFailureMechanismSectionAssembly = new SerializableCombinedFailureMechanismSectionAssembly();
            var failureMechanismSections                = new SerializableFailureMechanismSectionCollection();
            var failureMechanismSection                 = new SerializableFailureMechanismSection();

            // Call
            var assembly = new SerializableAssembly(id,
                                                    lowerCorner,
                                                    upperCorner,
                                                    assessmentSection,
                                                    assessmentProcess,
                                                    totalAssemblyResult,
                                                    new[]
            {
                failureMechanism
            },
                                                    new[]
            {
                failureMechanismSectionAssembly
            },
                                                    new[]
            {
                combinedFailureMechanismSectionAssembly
            },
                                                    new[]
            {
                failureMechanismSections
            },
                                                    new[]
            {
                failureMechanismSection
            });

            // Assert
            Assert.AreEqual(id, assembly.Id);
            Assert.AreEqual(lowerCorner.X.ToString(CultureInfo.InvariantCulture) + " " + lowerCorner.Y.ToString(CultureInfo.InvariantCulture),
                            assembly.Boundary.Envelope.LowerCorner);
            Assert.AreEqual(upperCorner.X.ToString(CultureInfo.InvariantCulture) + " " + upperCorner.Y.ToString(CultureInfo.InvariantCulture),
                            assembly.Boundary.Envelope.UpperCorner);
            CollectionAssert.AreEqual(new SerializableFeatureMember[]
            {
                assessmentSection,
                assessmentProcess,
                totalAssemblyResult,
                failureMechanism,
                failureMechanismSectionAssembly,
                combinedFailureMechanismSectionAssembly,
                failureMechanismSections,
                failureMechanismSection
            }, assembly.FeatureMembers);
        }
        private static SerializableAssembly CreateSerializableAssembly()
        {
            var assessmentSection = new SerializableAssessmentSection("section1", "Traject A", new[]
            {
                new Point2D(0, 0),
                new Point2D(100.0, 0.0)
            });

            var assessmentProcess = new SerializableAssessmentProcess("beoordelingsproces1",
                                                                      assessmentSection);

            var totalAssemblyResult = new SerializableTotalAssemblyResult(
                "veiligheidsoordeel_1", assessmentProcess,
                SerializableAssemblyMethod.BOI2A1, SerializableAssemblyMethod.BOI2B1,
                SerializableAssessmentSectionAssemblyGroup.B, 0.00068354);

            var failureMechanism = new SerializableFailureMechanism(
                "toetsspoorGABI", SerializableFailureMechanismType.Generic, "GABI", "Faalmechanisme GABI", totalAssemblyResult,
                new SerializableFailureMechanismAssemblyResult(0.08419, SerializableAssemblyMethod.BOI1A1));

            var specificFailureMechanism = new SerializableFailureMechanism(
                "specifiekFaalmechanisme", SerializableFailureMechanismType.Specific, "NIEUW", "Specifiek faalmechanisme",
                totalAssemblyResult, new SerializableFailureMechanismAssemblyResult(0.002834, SerializableAssemblyMethod.BOI1A1));

            var sections1 = new SerializableFailureMechanismSectionCollection("vakindelingGABI");
            var section1  = new SerializableFailureMechanismSection(
                "vak_GABI_1",
                sections1,
                0.12,
                10.23,
                new[]
            {
                new Point2D(0.23, 0.24),
                new Point2D(10.23, 10.24)
            },
                SerializableFailureMechanismSectionType.FailureMechanism);

            var result = new SerializableFailureMechanismSectionAssembly(
                "resultaat_GABI_1", failureMechanism, section1,
                new SerializableFailureMechanismSectionAssemblyResult(
                    SerializableAssemblyMethod.BOI0A2, SerializableAssemblyMethod.BOI0B1,
                    SerializableFailureMechanismSectionAssemblyGroup.III, 0.00073));

            var sections2 = new SerializableFailureMechanismSectionCollection("vakindeling_gecombineerd");
            var section2  = new SerializableFailureMechanismSection(
                "vak_gecombineerd_1",
                sections2,
                0.12,
                10.23,
                new[]
            {
                new Point2D(0.23, 0.24),
                new Point2D(10.23, 10.24)
            },
                SerializableFailureMechanismSectionType.Combined,
                SerializableAssemblyMethod.BOI3A1);
            var combinedResult = new SerializableCombinedFailureMechanismSectionAssembly(
                "resultaat_gecombineerd_1",
                totalAssemblyResult,
                section2,
                new[]
            {
                new SerializableCombinedFailureMechanismSectionAssemblyResult(
                    SerializableAssemblyMethod.BOI3B1,
                    SerializableFailureMechanismType.Generic, "HTKW", "Hoogte kunstwerk",
                    SerializableFailureMechanismSectionAssemblyGroup.III),
                new SerializableCombinedFailureMechanismSectionAssemblyResult(
                    SerializableAssemblyMethod.BOI3B1,
                    SerializableFailureMechanismType.Generic, "STPH", "Piping",
                    SerializableFailureMechanismSectionAssemblyGroup.II),
                new SerializableCombinedFailureMechanismSectionAssemblyResult(
                    SerializableAssemblyMethod.BOI3B1,
                    SerializableFailureMechanismType.Specific, "NIEUW", "Specifiek",
                    SerializableFailureMechanismSectionAssemblyGroup.Zero)
            },
                new SerializableFailureMechanismSubSectionAssemblyResult(
                    SerializableAssemblyMethod.BOI3C1, SerializableFailureMechanismSectionAssemblyGroup.I));

            var assembly = new SerializableAssembly(
                "assemblage_1",
                new Point2D(12.0, 34.0),
                new Point2D(56.053, 78.0002345),
                assessmentSection,
                assessmentProcess,
                totalAssemblyResult,
                new[]
            {
                failureMechanism,
                specificFailureMechanism
            },
                new[]
            {
                result
            },
                new[]
            {
                combinedResult
            },
                new[]
            {
                sections1,
                sections2
            },
                new[]
            {
                section1,
                section2
            });

            return(assembly);
        }