// Copyright (C) Stichting Deltares 2017. All rights reserved. // // This file is part of Ringtoets. // // Ringtoets is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // All names, logos, and references to "Deltares" are registered trademarks of // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. using System.Collections.Generic; using System.Linq; using Core.Common.Base.Geometry; using NUnit.Framework; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Integration.IO.Assembly; namespace Ringtoets.Integration.IO.TestUtil { /// /// Helper class to assert /// public static class ExportableFailureMechanismSectionTestHelper { /// /// Asserts a collection of /// against a collection of . /// /// The expected collection of . /// The actual to assert against. /// Thrown when: /// /// The number of sections between and /// do not match. /// The geometry of any the sections are not equal. /// public static void AssertExportableFailureMechanismSections(IEnumerable expectedSections, IEnumerable actualSections) { int expectedNrOfSections = expectedSections.Count(); Assert.AreEqual(expectedNrOfSections, actualSections.Count()); double expectedStartDistance = 0; for (var i = 0; i < expectedNrOfSections; i++) { FailureMechanismSection expectedSection = expectedSections.ElementAt(i); ExportableFailureMechanismSection actualSection = actualSections.ElementAt(i); double expectedEndDistance = expectedStartDistance + Math2D.Length(expectedSection.Points); Assert.AreEqual(expectedStartDistance, actualSection.StartDistance); Assert.AreEqual(expectedEndDistance, actualSection.EndDistance); CollectionAssert.AreEqual(expectedSection.Points, actualSection.Geometry); expectedStartDistance = expectedEndDistance; } } } }