//----------------------------------------------------------------------- // // Copyright (c) 2010 Deltares. All rights reserved. // // B.S.T.I.M. The // tom.the@deltares.nl // 05-10-2010 // Test for surfaceline export to csv //----------------------------------------------------------------------- using Deltares.Dam.Data.CsvImporters; using Deltares.Geotechnics; using Deltares.Geotechnics.GeotechnicalGeometry; using System.Collections.Generic; using System.IO; using NUnit.Framework; using Deltares.Dam.Data; using Deltares.Geotechnics.SurfaceLines; using Deltares.Geotechnics.TestUtils; namespace Deltares.Dam.Tests { [TestFixture] public class CsvExportSurfaceLineTest { string importFolder; string fileNameSurfaceLines; [TestFixtureSetUp] public void FixtureSetup() { importFolder = Directory.GetCurrentDirectory() + "\\TmpImportFiles"; fileNameSurfaceLines = importFolder + "\\ExportSurfaceLine.csv"; if (!Directory.Exists(importFolder)) Directory.CreateDirectory(importFolder); } [Test] public void CanWriteTutorial1SurfaceLine() { // Write surfaceline using (SurfaceLine2 orgSurfaceLine = FactoryForSurfaceLineTests.CreateSurfaceLineTutorial1()) { string orgSurfaceLineString = orgSurfaceLine.ToString(); var csvExportSurfaceLineIdentifiers = new CsvExportSurfaceLineIdentifiers { LocationId = "Tutorial1", SoilProfileId = "SoilProfile", Scenario = "Scenario", CalculationMechanism = "Mechanism", CalculationModel = "Model" }; var csvExportSurfaceLine = new CsvExportSurfaceLine(csvExportSurfaceLineIdentifiers, orgSurfaceLine); var creator = new CsvExporter(fileNameSurfaceLines, new List { csvExportSurfaceLine }) { WriteHeaderInFirstLine = true }; creator.WriteFile(); // Read surfacelines var csvImporterSurfaceLines = new CsvImporterSurfaceLines(fileNameSurfaceLines); foreach (var surfaceLineRecord in csvImporterSurfaceLines.ImportedItems) { using (var surfaceLine = new SurfaceLine2 { Name = "SL1", Geometry = new LocalizedGeometryPointString(), CharacteristicPoints = { GeometryMustContainPoint = true } }) { for (int i = 0; i < surfaceLineRecord.Xcoors.Count; i++) { // empty points will not be added if (surfaceLineRecord.Xcoors[i] != -1 || surfaceLineRecord.Ycoors[i] != -1 || surfaceLineRecord.Zcoors[i] != -1) surfaceLine.EnsurePointOfType(surfaceLineRecord.Xcoors[i], surfaceLineRecord.Ycoors[i], surfaceLineRecord.Zcoors[i], null); } surfaceLine.Name = surfaceLineRecord.SurfaceLineId; Assert.AreEqual(orgSurfaceLineString, surfaceLine.ToString()); } } } } } }