using System.IO; using Deltares.Geotechnics.IO.Importers; using NUnit.Framework; namespace Deltares.Geotechnics.IO.Tests { [TestFixture] public class GefBoringFileImporterTests { [Test] public void TestImportWithSoilDataAvailable() { var fileName = @"TestData\demo-3-bore.gef"; fileName = Path.GetFullPath(fileName); if (File.Exists(fileName)) { var importer = new GefBoringFileImporter(); var soilList = new SoilList(); // expectedReUsedSoil has same name and parameters as soil of first Boring layer. var expectedReUsedSoil = new Soil { Name = "Sand, sl sil, moderate" }; expectedReUsedSoil.AbovePhreaticLevel = 0; expectedReUsedSoil.BelowPhreaticLevel = 0; expectedReUsedSoil.DiameterD50 = 0; soilList.Add(expectedReUsedSoil); // expectedNotReUsedSoil has same name as soil of second Boring layer but parameters differ. var expectedNotReUsedSoil = new Soil { Name = "Sand, ve sil, loose" }; soilList.Add(expectedNotReUsedSoil); importer.FillFromGefFile(fileName, soilList); Assert.AreEqual(9, importer.Boring.BoringLayers.Count); Assert.AreEqual(true, expectedReUsedSoil.HasTheSameDeterministicValues(importer.Boring.BoringLayers[0].Soil)); Assert.AreEqual(expectedReUsedSoil.Name, importer.Boring.BoringLayers[0].Name); Assert.AreEqual(expectedNotReUsedSoil.Name + " (1)", importer.Boring.BoringLayers[1].Name); Assert.AreEqual(expectedNotReUsedSoil.Name + " (1)", soilList.Soils[2].Name); Assert.AreEqual(3.5, importer.Boring.BoringLayers[0].TopLevel); Assert.AreEqual(8, soilList.Soils.Count); } else { Assert.AreEqual(1, 0, "File {0} for test not found.", fileName); } } [Test] public void TestImportWithoutSoilDataAvailable() { var fileName = @"TestData\demo-3-bore.gef"; fileName = Path.GetFullPath(fileName); if (File.Exists(fileName)) { var expectedNewSoil = new Soil { Name = "Sand, sl sil, moderate" }; var importer = new GefBoringFileImporter(); var soilList = new SoilList(); importer.FillFromGefFile(fileName, soilList); Assert.AreEqual(9, importer.Boring.BoringLayers.Count); // GammaSat, Unsat and Sandmedian are set by GEF so make sure of same value in expected expectedNewSoil.AbovePhreaticLevel = importer.Boring.BoringLayers[0].Soil.AbovePhreaticLevel; expectedNewSoil.BelowPhreaticLevel = importer.Boring.BoringLayers[0].Soil.BelowPhreaticLevel; expectedNewSoil.DiameterD50 = importer.Boring.BoringLayers[0].Soil.DiameterD50; Assert.AreEqual(true, expectedNewSoil.HasTheSameDeterministicValues(importer.Boring.BoringLayers[0].Soil)); Assert.AreEqual(expectedNewSoil.Name, importer.Boring.BoringLayers[0].Name); Assert.AreEqual(3.5, importer.Boring.BoringLayers[0].TopLevel); Assert.AreEqual(7, soilList.Soils.Count); } else { Assert.AreEqual(1, 0, "File {0} for test not found.", fileName); } } } }