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