public void Constructor_ExpectedValues() { // Setup var random = new Random(21); var section = new CombinedAssemblyFailureMechanismSection(random.NextDouble(), random.NextDouble(), random.NextEnumValue <FailureMechanismSectionAssemblyGroup>()); IEnumerable <FailureMechanismSectionAssemblyGroup> failureMechanismSectionAssemblyGroups = Enumerable.Empty <FailureMechanismSectionAssemblyGroup>(); // Call var assembly = new CombinedFailureMechanismSectionAssembly(section, failureMechanismSectionAssemblyGroups); // Assert Assert.AreSame(section, assembly.Section); Assert.AreSame(failureMechanismSectionAssemblyGroups, assembly.FailureMechanismSectionAssemblyGroupResults); }
public void Constructor_FailureMechanismSectionAssemblyGroupResultsNull_ThrowsArgumentNullException() { // Setup var random = new Random(21); var section = new CombinedAssemblyFailureMechanismSection( random.NextDouble(), random.NextDouble(), random.NextEnumValue <FailureMechanismSectionAssemblyGroup>()); // Call void Call() => new CombinedFailureMechanismSectionAssembly(section, null); // Assert var exception = Assert.Throws <ArgumentNullException>(Call); Assert.AreEqual("failureMechanismSectionAssemblyGroupResults", exception.ParamName); }
public void Constructor_ExpectedValues() { // Setup var random = new Random(21); double sectionStart = random.NextDouble(); double sectionEnd = random.NextDouble(); var assemblyGroup = random.NextEnumValue <FailureMechanismSectionAssemblyGroup>(); // Call var assembly = new CombinedAssemblyFailureMechanismSection(sectionStart, sectionEnd, assemblyGroup); // Assert Assert.AreEqual(sectionStart, assembly.SectionStart); Assert.AreEqual(sectionEnd, assembly.SectionEnd); Assert.AreEqual(assemblyGroup, assembly.FailureMechanismSectionAssemblyGroup); }
private static IEnumerable <CombinedAssemblyFailureMechanismSection> CreateCombinedSections <TFailureMechanismSectionResult>( IEnumerable <TFailureMechanismSectionResult> sectionResults, AssessmentSection assessmentSection, Func <TFailureMechanismSectionResult, AssessmentSection, FailureMechanismSectionAssemblyResultWrapper> getAssemblyFunc) where TFailureMechanismSectionResult : FailureMechanismSectionResult { double totalSectionsLength = 0; return(sectionResults.Select(sectionResult => { FailureMechanismSectionAssemblyResult failureMechanismSectionAssemblyResult = AssemblyToolHelper.AssembleFailureMechanismSection( sectionResult, sr => getAssemblyFunc(sr, assessmentSection)); CombinedAssemblyFailureMechanismSection section = CreateSection( sectionResult, failureMechanismSectionAssemblyResult.FailureMechanismSectionAssemblyGroup, totalSectionsLength); totalSectionsLength = section.SectionEnd; return section; }) .ToArray()); }
public void Create_WithAllFailureMechanisms_ReturnsCombinedFailureMechanismSectionAssemblyResults() { // Setup var random = new Random(21); var assessmentSection = new AssessmentSection(random.NextEnumValue <AssessmentSectionComposition>()); assessmentSection.SpecificFailureMechanisms.Add(new SpecificFailureMechanism()); Dictionary <IFailureMechanism, int> failureMechanisms = assessmentSection.GetFailureMechanisms() .Concat(assessmentSection.SpecificFailureMechanisms) .Where(fm => fm.InAssembly) .Select((fm, i) => new { FailureMechanism = fm, Index = i }) .ToDictionary(x => x.FailureMechanism, x => x.Index); var section1 = new CombinedAssemblyFailureMechanismSection(0, 5, random.NextEnumValue <FailureMechanismSectionAssemblyGroup>()); var section2 = new CombinedAssemblyFailureMechanismSection(5, 11, random.NextEnumValue <FailureMechanismSectionAssemblyGroup>()); var output = new CombinedFailureMechanismSectionAssemblyResultWrapper( new[] { new CombinedFailureMechanismSectionAssembly(section1, GetFailureMechanismsOutput(failureMechanisms.Keys, random)), new CombinedFailureMechanismSectionAssembly(section2, GetFailureMechanismsOutput(failureMechanisms.Keys, random)) }, AssemblyMethod.BOI3A1, AssemblyMethod.BOI3B1, AssemblyMethod.BOI3C1); // Call CombinedFailureMechanismSectionAssemblyResult[] results = CombinedFailureMechanismSectionAssemblyResultFactory.Create(output, failureMechanisms, assessmentSection).ToArray(); // Assert Assert.AreEqual(output.AssemblyResults.Count(), results.Length); for (var i = 0; i < output.AssemblyResults.Count(); i++) { CombinedFailureMechanismSectionAssembly assemblyResult = output.AssemblyResults.ElementAt(i); Assert.AreEqual(assemblyResult.Section.SectionStart, results[i].SectionStart); Assert.AreEqual(assemblyResult.Section.SectionEnd, results[i].SectionEnd); Assert.AreEqual(assemblyResult.Section.FailureMechanismSectionAssemblyGroup, results[i].TotalResult); Assert.AreEqual(assemblyResult.FailureMechanismSectionAssemblyGroupResults.ElementAt(failureMechanisms[assessmentSection.Piping]), results[i].Piping); Assert.AreEqual(assemblyResult.FailureMechanismSectionAssemblyGroupResults.ElementAt(failureMechanisms[assessmentSection.GrassCoverErosionInwards]), results[i].GrassCoverErosionInwards); Assert.AreEqual(assemblyResult.FailureMechanismSectionAssemblyGroupResults.ElementAt(failureMechanisms[assessmentSection.MacroStabilityInwards]), results[i].MacroStabilityInwards); Assert.AreEqual(assemblyResult.FailureMechanismSectionAssemblyGroupResults.ElementAt(failureMechanisms[assessmentSection.Microstability]), results[i].Microstability); Assert.AreEqual(assemblyResult.FailureMechanismSectionAssemblyGroupResults.ElementAt(failureMechanisms[assessmentSection.StabilityStoneCover]), results[i].StabilityStoneCover); Assert.AreEqual(assemblyResult.FailureMechanismSectionAssemblyGroupResults.ElementAt(failureMechanisms[assessmentSection.WaveImpactAsphaltCover]), results[i].WaveImpactAsphaltCover); Assert.AreEqual(assemblyResult.FailureMechanismSectionAssemblyGroupResults.ElementAt(failureMechanisms[assessmentSection.WaterPressureAsphaltCover]), results[i].WaterPressureAsphaltCover); Assert.AreEqual(assemblyResult.FailureMechanismSectionAssemblyGroupResults.ElementAt(failureMechanisms[assessmentSection.GrassCoverErosionOutwards]), results[i].GrassCoverErosionOutwards); Assert.AreEqual(assemblyResult.FailureMechanismSectionAssemblyGroupResults.ElementAt(failureMechanisms[assessmentSection.GrassCoverSlipOffOutwards]), results[i].GrassCoverSlipOffOutwards); Assert.AreEqual(assemblyResult.FailureMechanismSectionAssemblyGroupResults.ElementAt(failureMechanisms[assessmentSection.GrassCoverSlipOffInwards]), results[i].GrassCoverSlipOffInwards); Assert.AreEqual(assemblyResult.FailureMechanismSectionAssemblyGroupResults.ElementAt(failureMechanisms[assessmentSection.HeightStructures]), results[i].HeightStructures); Assert.AreEqual(assemblyResult.FailureMechanismSectionAssemblyGroupResults.ElementAt(failureMechanisms[assessmentSection.ClosingStructures]), results[i].ClosingStructures); Assert.AreEqual(assemblyResult.FailureMechanismSectionAssemblyGroupResults.ElementAt(failureMechanisms[assessmentSection.PipingStructure]), results[i].PipingStructure); Assert.AreEqual(assemblyResult.FailureMechanismSectionAssemblyGroupResults.ElementAt(failureMechanisms[assessmentSection.StabilityPointStructures]), results[i].StabilityPointStructures); Assert.AreEqual(assemblyResult.FailureMechanismSectionAssemblyGroupResults.ElementAt(failureMechanisms[assessmentSection.DuneErosion]), results[i].DuneErosion); Assert.AreEqual(assessmentSection.SpecificFailureMechanisms.Count, results[i].SpecificFailureMechanisms.Length); foreach (SpecificFailureMechanism specificFailureMechanism in assessmentSection.SpecificFailureMechanisms) { Assert.AreEqual(assemblyResult.FailureMechanismSectionAssemblyGroupResults.ElementAt(failureMechanisms[specificFailureMechanism]), results[i].SpecificFailureMechanisms.Single()); } Assert.AreEqual(output.CommonSectionAssemblyMethod, results[i].CommonSectionAssemblyMethod); Assert.AreEqual(output.FailureMechanismResultsAssemblyMethod, results[i].FailureMechanismResultsAssemblyMethod); Assert.AreEqual(output.CombinedSectionResultAssemblyMethod, results[i].CombinedSectionResultAssemblyMethod); } }