Beispiel #1
0
        /// <summary>
        /// Creates a collection of <see cref="CombinedFailureMechanismSectionAssembly"/>
        /// based on the <paramref name="resultsPerFailureMechanism"/> and <paramref name="combinedSectionResults"/>.
        /// </summary>
        /// <param name="resultsPerFailureMechanism">The results per failure mechanism.</param>
        /// <param name="combinedSectionResults">The combined section results.</param>
        /// <returns>A collection of <see cref="CombinedFailureMechanismSectionAssembly"/>.</returns>
        /// <exception cref="ArgumentNullException">Thrown when any parameter is <c>null</c>.</exception>
        public static IEnumerable <CombinedFailureMechanismSectionAssembly> Create(IEnumerable <FailureMechanismSectionList> resultsPerFailureMechanism,
                                                                                   IEnumerable <FailureMechanismSectionWithCategory> combinedSectionResults)
        {
            if (resultsPerFailureMechanism == null)
            {
                throw new ArgumentNullException(nameof(resultsPerFailureMechanism));
            }

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

            var sectionAssemblies = new List <CombinedFailureMechanismSectionAssembly>();

            for (var i = 0; i < combinedSectionResults.Count(); i++)
            {
                FailureMechanismSectionWithCategory section = combinedSectionResults.ElementAt(i);
                sectionAssemblies.Add(new CombinedFailureMechanismSectionAssembly(
                                          CreateSection(section),
                                          resultsPerFailureMechanism
                                          .Select(failureMechanismSectionList => failureMechanismSectionList.Sections.ElementAt(i))
                                          .Cast <FailureMechanismSectionWithCategory>()
                                          .Select(element => FailureMechanismSectionAssemblyGroupConverter.ConvertTo(element.Category))
                                          .ToArray()));
            }

            return(sectionAssemblies);
        }
Beispiel #2
0
        /// <summary>
        /// Converts a <see cref="ResultWithProfileAndSectionProbabilities"/> combined with a <see cref="EInterpretationCategory"/>
        /// into a <see cref="FailureMechanismSectionAssemblyResult"/>.
        /// </summary>
        /// <param name="result">The <see cref="ResultWithProfileAndSectionProbabilities"/> to convert.</param>
        /// <param name="category">The <see cref="EInterpretationCategory"/> to convert.</param>
        /// <returns>A <see cref="FailureMechanismSectionAssemblyResult"/> based on <paramref name="result"/>
        /// and <paramref name="category"/>.</returns>
        /// <exception cref="ArgumentNullException">Thrown when <paramref name="result"/> is <c>null</c>.</exception>
        /// <exception cref="InvalidEnumArgumentException">Thrown when <paramref name="category"/>
        /// is an invalid value.</exception>
        /// <exception cref="NotSupportedException">Thrown when <paramref name="category"/>
        /// is a valid value, but unsupported.</exception>
        public static FailureMechanismSectionAssemblyResult Create(ResultWithProfileAndSectionProbabilities result,
                                                                   EInterpretationCategory category)
        {
            if (result == null)
            {
                throw new ArgumentNullException(nameof(result));
            }

            return(new FailureMechanismSectionAssemblyResult(
                       result.ProbabilityProfile, result.ProbabilitySection, result.LengthEffectFactor,
                       FailureMechanismSectionAssemblyGroupConverter.ConvertTo(category)));
        }
Beispiel #3
0
        /// <summary>
        /// Creates a collection of <see cref="FailureMechanismSectionList"/> based on the
        /// given <paramref name="failureMechanismSectionsCollection"/>.
        /// </summary>
        /// <param name="failureMechanismSectionsCollection">The collection of failure mechanism
        /// section collections to create the failure mechanism section lists for.</param>
        /// <returns>A collection of <see cref="FailureMechanismSectionList"/>.</returns>
        /// <exception cref="ArgumentNullException">Thrown when <paramref name="failureMechanismSectionsCollection"/>
        /// is <c>null</c>.</exception>
        /// <exception cref="InvalidEnumArgumentException">Thrown when <see cref="FailureMechanismSectionAssemblyGroup"/>
        /// is an invalid value.</exception>
        /// <exception cref="NotSupportedException">Thrown when <see cref="FailureMechanismSectionAssemblyGroup"/>
        /// is a valid value, but unsupported.</exception>
        public static IEnumerable <FailureMechanismSectionList> Create(
            IEnumerable <IEnumerable <CombinedAssemblyFailureMechanismSection> > failureMechanismSectionsCollection)
        {
            if (failureMechanismSectionsCollection == null)
            {
                throw new ArgumentNullException(nameof(failureMechanismSectionsCollection));
            }

            return(failureMechanismSectionsCollection.Select(sectionCollection => new FailureMechanismSectionList(
                                                                 sectionCollection.Select(
                                                                     s => new FailureMechanismSectionWithCategory(
                                                                         s.SectionStart, s.SectionEnd,
                                                                         FailureMechanismSectionAssemblyGroupConverter.ConvertFrom(s.FailureMechanismSectionAssemblyGroup)))))
                   .ToArray());
        }
 private static FailureMechanismSectionAssemblyGroupBoundaries CreateFailureMechanismSectionAssemblyGroupBoundaries(InterpretationCategory interpretationCategory)
 {
     return(new FailureMechanismSectionAssemblyGroupBoundaries(
                interpretationCategory.LowerLimit, interpretationCategory.UpperLimit,
                FailureMechanismSectionAssemblyGroupConverter.ConvertTo(interpretationCategory.Category)));
 }
Beispiel #5
0
 /// <summary>
 /// Converts a <see cref="Probability"/> combined with a <see cref="EInterpretationCategory"/>
 /// into a <see cref="FailureMechanismSectionAssemblyResult"/>.
 /// </summary>
 /// <param name="sectionProbability">The <see cref="Probability"/> to convert.</param>
 /// <param name="category">The <see cref="EInterpretationCategory"/> to convert.</param>
 /// <returns>A <see cref="FailureMechanismSectionAssemblyResult"/> based on <paramref name="sectionProbability"/>
 /// and <paramref name="category"/>.</returns>
 /// <exception cref="InvalidEnumArgumentException">Thrown when <paramref name="category"/>
 /// is an invalid value.</exception>
 /// <exception cref="NotSupportedException">Thrown when <paramref name="category"/>
 /// is a valid value, but unsupported.</exception>
 public static FailureMechanismSectionAssemblyResult Create(Probability sectionProbability, EInterpretationCategory category)
 {
     return(new FailureMechanismSectionAssemblyResult(
                sectionProbability, sectionProbability, 1.0,
                FailureMechanismSectionAssemblyGroupConverter.ConvertTo(category)));
 }
Beispiel #6
0
 private static CombinedAssemblyFailureMechanismSection CreateSection(FailureMechanismSectionWithCategory section)
 {
     return(new CombinedAssemblyFailureMechanismSection(
                section.Start, section.End,
                FailureMechanismSectionAssemblyGroupConverter.ConvertTo(section.Category)));
 }