/// <summary>
        /// Creates a new instance of <see cref="AggregatedSerializableFailureMechanism"/>.
        /// </summary>
        /// <param name="failureMechanism">The <see cref="SerializableFailureMechanism"/>.</param>
        /// <param name="failureMechanismSectionCollection">The <see cref="SerializableFailureMechanismSectionCollection"/>
        /// that belongs to the failure mechanism.</param>
        /// <param name="failureMechanismSections">A collection of <see cref="SerializableFailureMechanismSection"/>
        /// that belongs to the failure mechanism.</param>
        /// <param name="failureMechanismSectionAssemblyResults">A collection of <see cref="SerializableFailureMechanismSectionAssembly"/>
        /// that belongs to the failure mechanism.</param>
        /// <exception cref="ArgumentNullException">Thrown when any parameter is <c>null</c>.</exception>
        public AggregatedSerializableFailureMechanism(SerializableFailureMechanism failureMechanism,
                                                      SerializableFailureMechanismSectionCollection failureMechanismSectionCollection,
                                                      IEnumerable <SerializableFailureMechanismSection> failureMechanismSections,
                                                      IEnumerable <SerializableFailureMechanismSectionAssembly> failureMechanismSectionAssemblyResults)
        {
            if (failureMechanism == null)
            {
                throw new ArgumentNullException(nameof(failureMechanism));
            }

            if (failureMechanismSectionCollection == null)
            {
                throw new ArgumentNullException(nameof(failureMechanismSectionCollection));
            }

            if (failureMechanismSections == null)
            {
                throw new ArgumentNullException(nameof(failureMechanismSections));
            }

            if (failureMechanismSectionAssemblyResults == null)
            {
                throw new ArgumentNullException(nameof(failureMechanismSectionAssemblyResults));
            }

            FailureMechanism = failureMechanism;
            FailureMechanismSectionCollection      = failureMechanismSectionCollection;
            FailureMechanismSections               = failureMechanismSections;
            FailureMechanismSectionAssemblyResults = failureMechanismSectionAssemblyResults;
        }
Exemple #2
0
        /// <summary>
        /// Creates an instance of <see cref="AggregatedSerializableCombinedFailureMechanismSectionAssemblies"/>
        /// based on its input parameters.
        /// </summary>
        /// <param name="idGenerator">The generator to generate ids for the serializable components.</param>
        /// <param name="totalAssemblyResult">The <see cref="SerializableTotalAssemblyResult"/> the serializable components belong to.</param>
        /// <param name="combinedSectionAssemblies">The collection of <see cref="ExportableCombinedSectionAssembly"/>
        /// to create an <see cref="AggregatedSerializableCombinedFailureMechanismSectionAssemblies"/> for.</param>
        /// <returns>An <see cref="AggregatedSerializableCombinedFailureMechanismSectionAssemblies"/>.</returns>
        /// <exception cref="ArgumentNullException">Thrown when any parameter is <c>null</c>.</exception>
        /// <exception cref="AssemblyCreatorException">Thrown when <paramref name="combinedSectionAssemblies"/> is invalid to
        /// create a serializable counterpart for.</exception>
        public static AggregatedSerializableCombinedFailureMechanismSectionAssemblies Create(IdentifierGenerator idGenerator,
                                                                                             SerializableTotalAssemblyResult totalAssemblyResult,
                                                                                             IEnumerable <ExportableCombinedSectionAssembly> combinedSectionAssemblies)
        {
            if (idGenerator == null)
            {
                throw new ArgumentNullException(nameof(idGenerator));
            }

            if (totalAssemblyResult == null)
            {
                throw new ArgumentNullException(nameof(totalAssemblyResult));
            }

            if (combinedSectionAssemblies == null)
            {
                throw new ArgumentNullException(nameof(combinedSectionAssemblies));
            }

            var failureMechanismSectionCollection = new SerializableFailureMechanismSectionCollection(
                idGenerator.GetNewId(Resources.SerializableFailureMechanismSectionCollection_IdPrefix));

            AggregatedSerializableCombinedFailureMechanismSectionAssembly[] aggregatedAssemblies =
                combinedSectionAssemblies.Select(assembly => AggregatedSerializableCombinedFailureMechanismSectionAssemblyCreator.Create(
                                                     idGenerator, totalAssemblyResult, failureMechanismSectionCollection, assembly))
                .ToArray();

            return(new AggregatedSerializableCombinedFailureMechanismSectionAssemblies(failureMechanismSectionCollection,
                                                                                       aggregatedAssemblies.Select(ag => ag.FailureMechanismSection),
                                                                                       aggregatedAssemblies.Select(ag => ag.CombinedFailureMechanismSectionAssembly)));
        }
Exemple #3
0
        public void Create_WithValidArguments_ReturnsAggregatedSerializableCombinedFailureMechanismSectionAssemblies()
        {
            // Setup
            ExportableCombinedSectionAssembly[] combinedSectionAssemblies =
            {
                CreateCombinedSectionAssembly(CreateSection(1), 1),
                CreateCombinedSectionAssembly(CreateSection(2), 2)
            };

            var idGenerator = new IdentifierGenerator();
            SerializableTotalAssemblyResult totalAssemblyResult = CreateSerializableTotalAssembly("totalAssemblyResultId");

            // Call
            AggregatedSerializableCombinedFailureMechanismSectionAssemblies aggregate =
                AggregatedSerializableCombinedFailureMechanismSectionAssembliesCreator.Create(idGenerator,
                                                                                              totalAssemblyResult,
                                                                                              combinedSectionAssemblies);

            // Assert
            SerializableFailureMechanismSectionCollection serializableFailureMechanismSectionCollection = aggregate.FailureMechanismSectionCollection;

            Assert.AreEqual("Vi.0", serializableFailureMechanismSectionCollection.Id);

            AssertCombinedFailureMechanismSectionAssemblies(combinedSectionAssemblies,
                                                            serializableFailureMechanismSectionCollection,
                                                            totalAssemblyResult,
                                                            aggregate.FailureMechanismSections,
                                                            aggregate.CombinedFailureMechanismSectionAssemblies);
        }
Exemple #4
0
        /// <summary>
        /// Creates an instance of <see cref="AggregatedSerializableFailureMechanism"/> based on its input parameters.
        /// </summary>
        /// <param name="idGenerator">The generator to generate ids for the serializable components.</param>
        /// <param name="serializableTotalAssemblyResult">The <see cref="SerializableTotalAssemblyResult"/>
        /// the serializable components belong to.</param>
        /// <param name="failureMechanism">The <see cref="ExportableFailureMechanism"/>
        /// to create an <see cref="AggregatedSerializableFailureMechanism"/> for.</param>
        /// <returns>An <see cref="AggregatedSerializableFailureMechanism"/>.</returns>
        /// <exception cref="ArgumentNullException">Thrown when any parameter is <c>null</c>.</exception>
        /// <exception cref="AssemblyCreatorException">Thrown when <paramref name="failureMechanism"/>
        /// is invalid to create a serializable counterpart for.</exception>
        /// <exception cref="NotSupportedException">Thrown when the <see cref="ExportableFailureMechanism"/>
        /// contains unsupported items in the failure mechanism section assembly results.</exception>
        public static AggregatedSerializableFailureMechanism Create(IdentifierGenerator idGenerator,
                                                                    SerializableTotalAssemblyResult serializableTotalAssemblyResult,
                                                                    ExportableFailureMechanism failureMechanism)
        {
            if (idGenerator == null)
            {
                throw new ArgumentNullException(nameof(idGenerator));
            }

            if (serializableTotalAssemblyResult == null)
            {
                throw new ArgumentNullException(nameof(serializableTotalAssemblyResult));
            }

            if (failureMechanism == null)
            {
                throw new ArgumentNullException(nameof(failureMechanism));
            }

            SerializableFailureMechanism serializableFailureMechanism = SerializableFailureMechanismCreator.Create(idGenerator, serializableTotalAssemblyResult, failureMechanism);
            var serializableCollection = new SerializableFailureMechanismSectionCollection(idGenerator.GetNewId(Resources.SerializableFailureMechanismSectionCollection_IdPrefix));

            AggregatedSerializableFailureMechanismSectionAssembly[] serializableFailureMechanismSectionAssemblyResults =
                failureMechanism.SectionAssemblyResults
                .Select(sectionAssemblyResult => CreateFailureMechanismSectionAssembly(
                            idGenerator, serializableFailureMechanism, serializableCollection, sectionAssemblyResult))
                .ToArray();

            return(new AggregatedSerializableFailureMechanism(serializableFailureMechanism,
                                                              serializableCollection,
                                                              serializableFailureMechanismSectionAssemblyResults.Select(fmr => fmr.FailureMechanismSection),
                                                              serializableFailureMechanismSectionAssemblyResults.Select(fmr => fmr.FailureMechanismSectionAssembly)));
        }
Exemple #5
0
        /// <summary>
        /// Creates an instance of <see cref="SerializableFailureMechanismSection"/> based on
        /// its input parameters.
        /// </summary>
        /// <param name="idGenerator">The id generator to generate an id
        /// for <see cref="SerializableFailureMechanismSection"/>.</param>
        /// <param name="serializableCollection">The <see cref="SerializableFailureMechanismSectionCollection"/>
        /// this section belongs to.</param>
        /// <param name="section">The <see cref="ExportableCombinedFailureMechanismSection"/>
        /// to create a <see cref="SerializableFailureMechanismSection"/> for.</param>
        /// <returns>A <see cref="SerializableFailureMechanismSection"/>.</returns>
        /// <exception cref="ArgumentNullException">Thrown when any parameter is <c>null</c>.</exception>
        public static SerializableFailureMechanismSection Create(IdentifierGenerator idGenerator,
                                                                 SerializableFailureMechanismSectionCollection serializableCollection,
                                                                 ExportableCombinedFailureMechanismSection section)
        {
            if (idGenerator == null)
            {
                throw new ArgumentNullException(nameof(idGenerator));
            }

            if (serializableCollection == null)
            {
                throw new ArgumentNullException(nameof(serializableCollection));
            }

            if (section == null)
            {
                throw new ArgumentNullException(nameof(section));
            }

            return(new SerializableFailureMechanismSection(idGenerator.GetNewId(Resources.SerializableFailureMechanismSection_IdPrefix),
                                                           serializableCollection,
                                                           section.StartDistance,
                                                           section.EndDistance,
                                                           section.Geometry,
                                                           SerializableFailureMechanismSectionType.Combined,
                                                           SerializableAssemblyMethodCreator.Create(section.AssemblyMethod)));
        }
Exemple #6
0
        private static void AssertCombinedFailureMechanismSectionAssemblies(IEnumerable <ExportableCombinedSectionAssembly> expectedCombinedSectionAssemblies,
                                                                            SerializableFailureMechanismSectionCollection expectedSerializableFailureMechanismSectionCollection,
                                                                            SerializableTotalAssemblyResult expectedSerializableTotalAssemblyResult,
                                                                            IEnumerable <SerializableFailureMechanismSection> serializableFailureMechanismSections,
                                                                            IEnumerable <SerializableCombinedFailureMechanismSectionAssembly> serializableFailureMechanismSectionAssemblies)
        {
            IEnumerable <ExportableCombinedFailureMechanismSection> expectedSections = expectedCombinedSectionAssemblies.Select(csar => csar.Section);
            int expectedNrOfSections = expectedSections.Count();

            Assert.AreEqual(expectedNrOfSections, serializableFailureMechanismSections.Count());

            Assert.AreEqual(expectedCombinedSectionAssemblies.Count(), serializableFailureMechanismSectionAssemblies.Count());

            var sectionId         = 0;
            var combinedSectionId = 0;

            for (var i = 0; i < expectedNrOfSections; i++)
            {
                ExportableCombinedFailureMechanismSection expectedSection = expectedSections.ElementAt(i);
                SerializableFailureMechanismSection       actualSection   = serializableFailureMechanismSections.ElementAt(i);

                SerializableFailureMechanismSectionTestHelper.AssertFailureMechanismSection(expectedSection,
                                                                                            expectedSerializableFailureMechanismSectionCollection,
                                                                                            actualSection,
                                                                                            sectionId++);

                SerializableCombinedFailureMechanismSectionAssembly actualSectionAssemblyResult = serializableFailureMechanismSectionAssemblies.ElementAt(i);
                Assert.AreEqual($"Gf.{combinedSectionId++}", actualSectionAssemblyResult.Id);
                Assert.AreEqual(actualSection.Id, actualSectionAssemblyResult.FailureMechanismSectionId);
                Assert.AreEqual(expectedSerializableTotalAssemblyResult.Id, actualSectionAssemblyResult.TotalAssemblyResultId);

                AssertCombinedFailureMechanismSectionResults(expectedCombinedSectionAssemblies.ElementAt(i).FailureMechanismResults,
                                                             actualSectionAssemblyResult.FailureMechanismResults);
            }
        }
 private static void AssertSerializableFailureMechanismSection(string expectedId,
                                                               SerializableFailureMechanismSectionCollection expectedSerializableFailureMechanismSectionCollection,
                                                               SerializableFailureMechanismSection serializableFailureMechanismSection)
 {
     Assert.AreEqual(expectedSerializableFailureMechanismSectionCollection.Id, serializableFailureMechanismSection.FailureMechanismSectionCollectionId);
     Assert.AreEqual(expectedId, serializableFailureMechanismSection.Id);
 }
        public void Constructor_WithValidId_ReturnsExpectedValues()
        {
            // Setup
            const string id = "collectionId";

            // Call
            var collection = new SerializableFailureMechanismSectionCollection(id);

            // Assert
            Assert.AreEqual(id, collection.Id);
        }
        public void Create_WithValidArguments_ReturnsAggregatedSerializableFailureMechanism()
        {
            // Setup
            var random           = new Random(21);
            var failureMechanism = new ExportableFailureMechanism(
                ExportableFailureMechanismAssemblyResultTestFactory.CreateResult(),
                new[]
            {
                ExportableFailureMechanismSectionAssemblyResultTestFactory.CreateWithProbability(
                    ExportableFailureMechanismSectionTestFactory.CreateExportableFailureMechanismSection(random.Next()), random.Next()),
                ExportableFailureMechanismSectionAssemblyResultTestFactory.CreateWithProbability(
                    ExportableFailureMechanismSectionTestFactory.CreateExportableFailureMechanismSection(random.Next()), random.Next())
            },
                random.NextEnumValue <ExportableFailureMechanismType>(),
                "code",
                "name");

            var idGenerator = new IdentifierGenerator();

            const string totalAssemblyId           = "totalAssemblyId";
            var          serializableTotalAssembly = new SerializableTotalAssemblyResult(totalAssemblyId,
                                                                                         new SerializableAssessmentProcess(),
                                                                                         random.NextEnumValue <SerializableAssemblyMethod>(),
                                                                                         random.NextEnumValue <SerializableAssemblyMethod>(),
                                                                                         random.NextEnumValue <SerializableAssessmentSectionAssemblyGroup>(),
                                                                                         random.NextDouble());

            // Call
            AggregatedSerializableFailureMechanism aggregatedFailureMechanism =
                AggregatedSerializableFailureMechanismCreator.Create(idGenerator, serializableTotalAssembly, failureMechanism);

            // Assert
            SerializableFailureMechanism serializableFailureMechanism = aggregatedFailureMechanism.FailureMechanism;

            Assert.AreEqual("Fm.0", serializableFailureMechanism.Id);
            Assert.AreEqual(serializableTotalAssembly.Id, serializableFailureMechanism.TotalAssemblyResultId);
            Assert.AreEqual(SerializableFailureMechanismTypeCreator.Create(failureMechanism.FailureMechanismType),
                            serializableFailureMechanism.FailureMechanismType);
            Assert.AreEqual(failureMechanism.Code, serializableFailureMechanism.GenericFailureMechanismCode);

            SerializableFailureMechanismAssemblyResultTestHelper.AssertSerializableFailureMechanismAssemblyResult(failureMechanism.FailureMechanismAssembly,
                                                                                                                  serializableFailureMechanism.FailureMechanismAssemblyResult);

            SerializableFailureMechanismSectionCollection serializableFailureMechanismSectionCollection = aggregatedFailureMechanism.FailureMechanismSectionCollection;

            Assert.AreEqual("Vi.0", serializableFailureMechanismSectionCollection.Id);

            AssertFailureMechanismSectionAssemblies(failureMechanism,
                                                    serializableFailureMechanismSectionCollection,
                                                    serializableFailureMechanism,
                                                    aggregatedFailureMechanism.FailureMechanismSections,
                                                    aggregatedFailureMechanism.FailureMechanismSectionAssemblyResults);
        }
        public void DefaultConstructor_ReturnsDefaultValues()
        {
            // Call
            var sections = new SerializableFailureMechanismSectionCollection();

            // Assert
            Assert.IsInstanceOf <SerializableFeatureMember>(sections);
            Assert.IsNull(sections.Id);

            SerializableAttributeTestHelper.AssertXmlTypeAttribute(typeof(SerializableFailureMechanismSectionCollection), "Vakindeling");

            SerializableAttributeTestHelper.AssertXmlAttributeAttribute <SerializableFailureMechanismSectionCollection>(
                nameof(SerializableFailureMechanismSectionCollection.Id), "VakindelingID");
        }
Exemple #11
0
        /// <summary>
        /// Creates an instance of <see cref="AggregatedSerializableFailureMechanismSectionAssembly"/> based on its input parameters.
        /// </summary>
        /// <param name="idGenerator">The id generator to generate the id for the serializable components.</param>
        /// <param name="serializableFailureMechanism">The <see cref="SerializableFailureMechanism"/> the section assembly belongs to.</param>
        /// <param name="serializableCollection">The <see cref="SerializableFailureMechanismSectionCollection"/> the section assembly belongs to.</param>
        /// <param name="failureMechanismSectionAssemblyResult">An aggregated failure mechanism section assembly result to
        /// create an <see cref="AggregatedSerializableFailureMechanismSectionAssembly"/> for.</param>
        /// <returns>An <see cref="AggregatedSerializableFailureMechanismSectionAssembly"/>.</returns>
        /// <exception cref="AssemblyCreatorException">Thrown when <paramref name="failureMechanismSectionAssemblyResult"/> is invalid to create a serializable counterpart for.</exception>
        /// <exception cref="NotSupportedException">Thrown when an <see cref="AggregatedSerializableFailureMechanismSectionAssembly"/>
        /// cannot be created for <paramref name="failureMechanismSectionAssemblyResult"/>.</exception>
        private static AggregatedSerializableFailureMechanismSectionAssembly CreateFailureMechanismSectionAssembly(
            IdentifierGenerator idGenerator,
            SerializableFailureMechanism serializableFailureMechanism,
            SerializableFailureMechanismSectionCollection serializableCollection,
            ExportableFailureMechanismSectionAssemblyWithProbabilityResult failureMechanismSectionAssemblyResult)
        {
            SerializableFailureMechanismSection failureMechanismSection = SerializableFailureMechanismSectionCreator.Create(
                idGenerator, serializableCollection, failureMechanismSectionAssemblyResult.FailureMechanismSection);

            var failureMechanismSectionAssembly = new SerializableFailureMechanismSectionAssembly(
                idGenerator.GetNewId(Resources.SerializableFailureMechanismSectionAssembly_IdPrefix),
                serializableFailureMechanism, failureMechanismSection,
                SerializableFailureMechanismSectionAssemblyResultCreator.Create(failureMechanismSectionAssemblyResult));

            return(new AggregatedSerializableFailureMechanismSectionAssembly(failureMechanismSection, failureMechanismSectionAssembly));
        }
Exemple #12
0
        public void Create_WithSection_ReturnsSerializableFailureMechanismSection()
        {
            // Setup
            const string collectionId = "collectionId";
            var          collection   = new SerializableFailureMechanismSectionCollection(collectionId);

            var idGenerator = new IdentifierGenerator();
            ExportableFailureMechanismSection section = ExportableFailureMechanismSectionTestFactory.CreateExportableFailureMechanismSection();

            // Call
            SerializableFailureMechanismSection serializableSection =
                SerializableFailureMechanismSectionCreator.Create(idGenerator, collection, section);

            // Assert
            SerializableFailureMechanismSectionTestHelper.AssertFailureMechanismSection(section, collection, serializableSection);
        }
        /// <summary>
        /// Asserts a <see cref="SerializableFailureMechanismSection"/> against
        /// an <see cref="ExportableFailureMechanismSection"/>.
        /// </summary>
        /// <param name="expectedSection">The <see cref="ExportableFailureMechanismSection"/> to assert against.</param>
        /// <param name="expectedCollection">The <see cref="SerializableFailureMechanismSectionCollection"/> the section belongs to.</param>
        /// <param name="actualSerializableSection">The <see cref="SerializableFailureMechanismSection"/> to assert.</param>
        /// <param name="expectedId">The expected id for the <see cref="SerializableFailureMechanismSection"/>.</param>
        /// <exception cref="AssertionException">Thrown when:
        /// <list type="bullet">
        /// <item>The id does not match with the expected id.</item>
        /// <item>The id of the failure mechanism section collection does not match.</item>
        /// <item>The geometry, start distance or the end distance of the failure mechanism section does not match.</item>
        /// <item>The failure mechanism section type does not match.</item>
        /// <item>The used assembly method to obtain the section does not match.</item>
        /// </list>
        /// </exception>
        public static void AssertFailureMechanismSection(ExportableFailureMechanismSection expectedSection,
                                                         SerializableFailureMechanismSectionCollection expectedCollection,
                                                         SerializableFailureMechanismSection actualSerializableSection,
                                                         int expectedId = 0)
        {
            Assert.AreEqual($"Bv.{expectedId}", actualSerializableSection.Id);
            Assert.AreEqual(expectedCollection.Id, actualSerializableSection.FailureMechanismSectionCollectionId);

            Assert.AreEqual(GeometrySerializationFormatter.Format(expectedSection.Geometry),
                            actualSerializableSection.Geometry.LineString.Geometry);
            Assert.AreEqual(expectedSection.StartDistance, actualSerializableSection.StartDistance.Value);
            Assert.AreEqual(expectedSection.EndDistance, actualSerializableSection.EndDistance.Value);
            Assert.AreEqual(SerializableFailureMechanismSectionType.FailureMechanism,
                            actualSerializableSection.FailureMechanismSectionType);
            Assert.IsNull(actualSerializableSection.AssemblyMethod);
        }
        private static void AssertCombinedFailureMechanismSectionAssemblyConnections(int indexSerializableCombinedSectionAssembly,
                                                                                     int expectedSectionId,
                                                                                     int expectedCombinedSectionAssemblyId,
                                                                                     SerializableFailureMechanismSectionCollection expectedCombinedFailureMechanismSectionCollection,
                                                                                     SerializableTotalAssemblyResult expectedSerializableTotalAssemblyResult,
                                                                                     SerializableFeatureMember[] serializableAssemblyFeatureMembers)
        {
            var combinedFailureMechanismSection = (SerializableFailureMechanismSection)serializableAssemblyFeatureMembers[indexSerializableCombinedSectionAssembly + 11];

            AssertSerializableFailureMechanismSection($"Bv.{expectedSectionId}",
                                                      expectedCombinedFailureMechanismSectionCollection,
                                                      combinedFailureMechanismSection);
            AssertSerializableCombinedFailureMechanismSectionAssembly($"Gf.{expectedCombinedSectionAssemblyId}",
                                                                      expectedSerializableTotalAssemblyResult,
                                                                      combinedFailureMechanismSection,
                                                                      (SerializableCombinedFailureMechanismSectionAssembly)serializableAssemblyFeatureMembers[indexSerializableCombinedSectionAssembly]);
        }
        public void Constructor_WithValidArguments_ExpectedValues()
        {
            // Setup
            var failureMechanismSectionCollection = new SerializableFailureMechanismSectionCollection();
            IEnumerable <SerializableFailureMechanismSection> failureMechanismSections =
                Enumerable.Empty <SerializableFailureMechanismSection>();
            IEnumerable <SerializableCombinedFailureMechanismSectionAssembly> failureMechanismSectionAssemblies =
                Enumerable.Empty <SerializableCombinedFailureMechanismSectionAssembly>();

            // Call
            var aggregate = new AggregatedSerializableCombinedFailureMechanismSectionAssemblies(failureMechanismSectionCollection,
                                                                                                failureMechanismSections,
                                                                                                failureMechanismSectionAssemblies);

            // Assert
            Assert.AreSame(failureMechanismSectionCollection, aggregate.FailureMechanismSectionCollection);
            Assert.AreSame(failureMechanismSections, aggregate.FailureMechanismSections);
            Assert.AreSame(failureMechanismSectionAssemblies, aggregate.CombinedFailureMechanismSectionAssemblies);
        }
        public void Constructor_FailureMechanismSectionAssemblyResultsNull_ThrowsArgumentNullException()
        {
            // Setup
            var failureMechanism = new SerializableFailureMechanism();
            var failureMechanismSectionCollection = new SerializableFailureMechanismSectionCollection();
            IEnumerable <SerializableFailureMechanismSection> failureMechanismSections =
                Enumerable.Empty <SerializableFailureMechanismSection>();

            // Call
            TestDelegate call = () => new AggregatedSerializableFailureMechanism(failureMechanism,
                                                                                 failureMechanismSectionCollection,
                                                                                 failureMechanismSections,
                                                                                 null);

            // Assert
            var exception = Assert.Throws <ArgumentNullException>(call);

            Assert.AreEqual("failureMechanismSectionAssemblyResults", exception.ParamName);
        }
        private static void AssertFailureMechanismSectionAssemblies(
            ExportableFailureMechanism expectedFailureMechanism,
            SerializableFailureMechanismSectionCollection expectedSerializableFailureMechanismSectionCollection,
            SerializableFailureMechanism expectedSerializableFailureMechanism,
            IEnumerable <SerializableFailureMechanismSection> serializableFailureMechanismSections,
            IEnumerable <SerializableFailureMechanismSectionAssembly> serializableFailureMechanismSectionAssemblies)
        {
            IEnumerable <ExportableFailureMechanismSection> expectedSections = expectedFailureMechanism.SectionAssemblyResults.Select(sar => sar.FailureMechanismSection);
            int expectedNrOfSections = expectedSections.Count();

            Assert.AreEqual(expectedNrOfSections, serializableFailureMechanismSections.Count());

            IEnumerable <ExportableFailureMechanismSectionAssemblyWithProbabilityResult> expectedSectionAssemblyResults = expectedFailureMechanism.SectionAssemblyResults;

            Assert.AreEqual(expectedSectionAssemblyResults.Count(), serializableFailureMechanismSectionAssemblies.Count());

            var sectionId         = 0;
            var sectionAssemblyId = 0;

            for (var i = 0; i < expectedNrOfSections; i++)
            {
                ExportableFailureMechanismSection   expectedSection = expectedSections.ElementAt(i);
                SerializableFailureMechanismSection actualSection   = serializableFailureMechanismSections.ElementAt(i);

                SerializableFailureMechanismSectionTestHelper.AssertFailureMechanismSection(expectedSection,
                                                                                            expectedSerializableFailureMechanismSectionCollection,
                                                                                            actualSection,
                                                                                            sectionId++);

                ExportableFailureMechanismSectionAssemblyWithProbabilityResult expectedSectionAssemblyResult = expectedSectionAssemblyResults.ElementAt(i);
                SerializableFailureMechanismSectionAssembly actualSectionAssemblyResult = serializableFailureMechanismSectionAssemblies.ElementAt(i);
                Assert.AreEqual($"Fa.{sectionAssemblyId++}", actualSectionAssemblyResult.Id);
                Assert.AreEqual(expectedSerializableFailureMechanism.Id, actualSectionAssemblyResult.FailureMechanismId);

                Assert.AreEqual(actualSection.Id, actualSectionAssemblyResult.FailureMechanismSectionId);
                Assert.AreEqual(SerializableFailureMechanismSectionAssemblyGroupCreator.Create(
                                    expectedSectionAssemblyResult.AssemblyGroup), actualSectionAssemblyResult.SectionResult.AssemblyGroup);
                Assert.AreEqual(expectedSectionAssemblyResult.Probability, actualSectionAssemblyResult.SectionResult.Probability);
            }
        }
        /// <summary>
        /// Creates a new instance of <see cref="AggregatedSerializableFailureMechanism"/>.
        /// </summary>
        /// <param name="failureMechanismSectionCollection">The <see cref="SerializableFailureMechanismSectionCollection"/>
        /// that the <paramref name="failureMechanismSections"/> belongs to.</param>
        /// <param name="failureMechanismSections">A collection of <see cref="SerializableFailureMechanismSection"/>
        /// that is associated with <paramref name="combinedFailureMechanismSectionAssemblies"/>.</param>
        /// <param name="combinedFailureMechanismSectionAssemblies">A collection of <see cref="SerializableCombinedFailureMechanismSectionAssembly"/>.</param>
        /// <exception cref="ArgumentNullException">Thrown when any parameter is <c>null</c>.</exception>
        public AggregatedSerializableCombinedFailureMechanismSectionAssemblies(SerializableFailureMechanismSectionCollection failureMechanismSectionCollection,
                                                                               IEnumerable <SerializableFailureMechanismSection> failureMechanismSections,
                                                                               IEnumerable <SerializableCombinedFailureMechanismSectionAssembly> combinedFailureMechanismSectionAssemblies)
        {
            if (failureMechanismSectionCollection == null)
            {
                throw new ArgumentNullException(nameof(failureMechanismSectionCollection));
            }

            if (failureMechanismSections == null)
            {
                throw new ArgumentNullException(nameof(failureMechanismSections));
            }

            if (combinedFailureMechanismSectionAssemblies == null)
            {
                throw new ArgumentNullException(nameof(combinedFailureMechanismSectionAssemblies));
            }

            FailureMechanismSectionCollection         = failureMechanismSectionCollection;
            FailureMechanismSections                  = failureMechanismSections;
            CombinedFailureMechanismSectionAssemblies = combinedFailureMechanismSectionAssemblies;
        }
Exemple #19
0
        public void Constructor_WithValidData_ReturnsExpectedValues()
        {
            // Setup
            const string id = "sectionId";

            var    random            = new Random(39);
            var    sectionCollection = new SerializableFailureMechanismSectionCollection("sectionCollectionId");
            double startDistance     = random.NextDouble();
            double endDistance       = random.NextDouble();
            var    assemblyMethod    = random.NextEnumValue <SerializableAssemblyMethod>();
            var    sectionType       = random.NextEnumValue <SerializableFailureMechanismSectionType>();
            var    geometry          = new[]
            {
                new Point2D(random.NextDouble(), random.NextDouble()),
                new Point2D(random.NextDouble(), random.NextDouble())
            };

            // Call
            var section = new SerializableFailureMechanismSection(id,
                                                                  sectionCollection,
                                                                  startDistance,
                                                                  endDistance,
                                                                  geometry,
                                                                  sectionType,
                                                                  assemblyMethod);

            // Assert
            Assert.AreEqual(id, section.Id);
            Assert.AreEqual(sectionCollection.Id, section.FailureMechanismSectionCollectionId);
            Assert.AreEqual(startDistance, section.StartDistance.Value);
            Assert.AreEqual(endDistance, section.EndDistance.Value);
            Assert.AreEqual(GeometrySerializationFormatter.Format(geometry), section.Geometry.LineString.Geometry);
            Assert.AreEqual(Math2D.Length(geometry), section.Length.Value);
            Assert.AreEqual(assemblyMethod, section.AssemblyMethod);
            Assert.AreEqual(sectionType, section.FailureMechanismSectionType);
        }
Exemple #20
0
        /// <summary>
        /// Creates an instance of <see cref="AggregatedSerializableCombinedFailureMechanismSectionAssembly"/>
        /// based on its input parameters.
        /// </summary>
        /// <param name="idGenerator">The generator to generate ids for the serializable components.</param>
        /// <param name="serializableTotalAssemblyResult">The <see cref="SerializableTotalAssemblyResult"/> the serializable
        /// components belongs to.</param>
        /// <param name="serializableFailureMechanismSectionCollection">The <see cref="SerializableFailureMechanismSectionCollection"/>
        /// the serializable failure mechanism sections belong to.</param>
        /// <param name="combinedSectionAssembly">The <see cref="ExportableCombinedSectionAssembly"/> to create an
        /// <see cref="AggregatedSerializableCombinedFailureMechanismSectionAssembly"/> for.</param>
        /// <returns>An <see cref="AggregatedSerializableCombinedFailureMechanismSectionAssembly"/>.</returns>
        /// <exception cref="ArgumentNullException">Thrown when any parameter is <c>null</c>.</exception>
        /// <exception cref="AssemblyCreatorException">Thrown when <paramref name="combinedSectionAssembly"/>
        /// is invalid to create a serializable counterpart for.</exception>
        public static AggregatedSerializableCombinedFailureMechanismSectionAssembly Create(IdentifierGenerator idGenerator,
                                                                                           SerializableTotalAssemblyResult serializableTotalAssemblyResult,
                                                                                           SerializableFailureMechanismSectionCollection serializableFailureMechanismSectionCollection,
                                                                                           ExportableCombinedSectionAssembly combinedSectionAssembly)
        {
            if (idGenerator == null)
            {
                throw new ArgumentNullException(nameof(idGenerator));
            }

            if (serializableTotalAssemblyResult == null)
            {
                throw new ArgumentNullException(nameof(serializableTotalAssemblyResult));
            }

            if (serializableFailureMechanismSectionCollection == null)
            {
                throw new ArgumentNullException(nameof(serializableFailureMechanismSectionCollection));
            }

            if (combinedSectionAssembly == null)
            {
                throw new ArgumentNullException(nameof(combinedSectionAssembly));
            }

            SerializableFailureMechanismSection failureMechanismSection = SerializableFailureMechanismSectionCreator.Create(
                idGenerator, serializableFailureMechanismSectionCollection, combinedSectionAssembly.Section);

            return(new AggregatedSerializableCombinedFailureMechanismSectionAssembly(
                       failureMechanismSection,
                       new SerializableCombinedFailureMechanismSectionAssembly(
                           idGenerator.GetNewId(Resources.SerializableCombinedFailureMechanismSectionAssembly_IdPrefix),
                           serializableTotalAssemblyResult,
                           failureMechanismSection,
                           combinedSectionAssembly.FailureMechanismResults
                           .Select(SerializableCombinedFailureMechanismSectionAssemblyResultCreator.Create)
                           .ToArray(),
                           new SerializableFailureMechanismSubSectionAssemblyResult(
                               SerializableAssemblyMethod.BOI3C1,
                               SerializableFailureMechanismSectionAssemblyGroupCreator.Create(
                                   combinedSectionAssembly.CombinedSectionAssemblyResult.AssemblyGroup)))));
        }
        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);
        }
Exemple #22
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);
        }