//-----------------------------------------------------------------------
//
// Copyright (c) 2011 Deltares. All rights reserved.
//
// Tom The
// tom.the@deltares.nl
// 05-04-2011
// Test for importing MGeobase data in DataPlugin
//-----------------------------------------------------------------------
using Deltares.Dam.Data;
using Deltares.Dam.Data.DataPlugins.Configuration;
using Deltares.Geometry;
namespace Deltares.Dam.Tests
{
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NUnit.Framework;
using Deltares.Dam.Data.DataPlugins;
using Deltares.Geotechnics;
[TestFixture]
public class DataPluginImporterIrisTests
{
const string directoryWithCsvFiles = @"..\..\..\data\Dam\Waterboards\Groot Salland\Demo\csvfiles\";
const string directoryWithIris = @"..\..\..\data\Dam\Waterboards\Groot Salland\Demo\iris\";
private const string location02_4Id = "dwp02_4";
private const string surfaceline02_4Id = "dwp02_4";
private const string location06_6d = "dwp06_6";
private const string location13_0Id = "dwp13_0";
List srcDataSources;
DataPluginImporter dataPluginImporter;
[TestFixtureSetUp]
public void TestFixtureSetup()
{
srcDataSources = new List();
srcDataSources.Add(new DataSource()
{
DataSourceType = DataSourceType.CsvFiles,
DataLocation = directoryWithCsvFiles
});
srcDataSources.Add(new DataSource()
{
DataSourceType = DataSourceType.Iris,
DataLocation = directoryWithIris
});
dataPluginImporter = new DataPluginImporter();
dataPluginImporter.SetDataSources("", srcDataSources);
}
[Test]
[Ignore("Some problem with 'location.dbf used by other process'; enable this test if new implementation of code is made in Net Topoly Suite or Dotspatial.Topology")]
public void CanRetrieveCharacteristicPointsFromIris()
{
const double cToleranceCoordinate = 0.001;
string dikeRingId = dataPluginImporter.GetDikeRingIdList(DamType.Primary).FirstOrDefault();
dataPluginImporter.ImportDataForDikeRings(new List() { dikeRingId }, DamType.Primary, null);
IEnumerable locationDetails = dataPluginImporter.GetLocationDetails(dikeRingId, location02_4Id);
IList surfaceLinePoints = dataPluginImporter.GetSurfaceLinePoints(dikeRingId, surfaceline02_4Id);
Assert.IsTrue(surfaceLinePoints.Count() > 0);
Assert.AreEqual(198341.355, surfaceLinePoints[0].X, cToleranceCoordinate);
Assert.AreEqual(503761.972, surfaceLinePoints[0].Y, cToleranceCoordinate);
Assert.AreEqual(0.92, surfaceLinePoints[0].Z, cToleranceCoordinate);
int lastPointIndex = surfaceLinePoints.Count() - 1;
Assert.AreEqual(198419.699, surfaceLinePoints[lastPointIndex].X, cToleranceCoordinate);
Assert.AreEqual(503781.658, surfaceLinePoints[lastPointIndex].Y, cToleranceCoordinate);
Assert.AreEqual(2.54, surfaceLinePoints[lastPointIndex].Z, cToleranceCoordinate);
// Check specific characteristic points of 1 surfaceline
IEnumerable surfaceLineCharacteristicPoints = dataPluginImporter.GetSurfaceLineCharacteristicPoints(dikeRingId, surfaceline02_4Id);
Assert.IsTrue(surfaceLineCharacteristicPoints.Count() > 0);
DpCharacteristicPoint pointSurfaceLevelOutside =
surfaceLineCharacteristicPoints.Where(x => x.Id.Equals("DikeTopAtPolder")).FirstOrDefault();
Assert.AreEqual(198390.4194, pointSurfaceLevelOutside.X, cToleranceCoordinate);
Assert.AreEqual(503774.3007, pointSurfaceLevelOutside.Y, cToleranceCoordinate);
Assert.AreEqual(5.36, pointSurfaceLevelOutside.Z, cToleranceCoordinate);
}
}
}