//-----------------------------------------------------------------------
//
// 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());
}
}
}
}
}
}