From a8c8c5ef43dd572cbd3328b5f870f827cd602be8 Mon Sep 17 00:00:00 2001
From: Markus Quaritsch <markus.quaritsch@tugraz.at>
Date: Thu, 16 Jun 2016 08:35:00 +0200
Subject: [PATCH] bugfix: WHTC correction factor

error in testcase: wrong order of arguments
error in parsing declaration data: wrong order of rows (urban/rural/motorway vs. rural/urban/motorway)
fix: corrected parsing declaration data
fix: corrected testcase
additional testcases
---
 .../Models/Declaration/WHTCCorrection.cs      |  2 +-
 .../Models/Declaration/DeclarationDataTest.cs | 32 ++++++++++++++++++-
 2 files changed, 32 insertions(+), 2 deletions(-)

diff --git a/VectoCore/VectoCore/Models/Declaration/WHTCCorrection.cs b/VectoCore/VectoCore/Models/Declaration/WHTCCorrection.cs
index 94a96663c4..fa7e2073d3 100644
--- a/VectoCore/VectoCore/Models/Declaration/WHTCCorrection.cs
+++ b/VectoCore/VectoCore/Models/Declaration/WHTCCorrection.cs
@@ -62,7 +62,7 @@ namespace TUGraz.VectoCore.Models.Declaration
 			NormalizeTable(table);
 			foreach (MissionType mission in Enum.GetValues(typeof(MissionType))) {
 				var values = table.Columns[mission.ToString().ToLower()].Values<string>().ToDouble().ToArray();
-				_data[mission] = new WHTCCorrectionEntry { Rural = values[0], Urban = values[1], Motorway = values[2] };
+				_data[mission] = new WHTCCorrectionEntry { Urban = values[0], Rural = values[1], Motorway = values[2] };
 			}
 		}
 
diff --git a/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs b/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs
index 2c0fbef5af..ee53b31d86 100644
--- a/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs
+++ b/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs
@@ -124,12 +124,42 @@ namespace TUGraz.VectoCore.Tests.Models.Declaration
 				var urban = r.NextDouble() * 2;
 				var rural = r.NextDouble() * 2;
 				var motorway = r.NextDouble() * 2;
-				var whtcValue = whtc.Lookup(Missions[i], urban, rural, motorway);
+				var whtcValue = whtc.Lookup(Missions[i], rural: rural, urban: urban, motorway: motorway);
 				Assert.AreEqual(urban * factors.urban[i] + rural * factors.rural[i] + motorway * factors.motorway[i],
 					whtcValue);
 			}
 		}
 
+		[TestMethod]
+		public void WHTCLookupTestLongHaul()
+		{
+			var expected = 1.015501;
+
+			var rural = 1.0265;
+			var urban = 1.0948;
+			var motorway = 1.0057;
+
+			var lookup = DeclarationData.WHTCCorrection.Lookup(MissionType.LongHaul, rural: rural, urban: urban,
+				motorway: motorway);
+			Assert.AreEqual(expected, lookup, 1e-8);
+		}
+
+
+		[TestMethod]
+		public void WHTCLookupTestRegionalDelivery()
+		{
+			var expected = 1.02708700;
+
+			var rural = 1.0265;
+			var urban = 1.0948;
+			var motorway = 1.0057;
+
+			var lookup = DeclarationData.WHTCCorrection.Lookup(MissionType.RegionalDelivery, rural: rural, urban: urban,
+				motorway: motorway);
+			Assert.AreEqual(expected, lookup, 1e-8);
+		}
+
+
 		[TestMethod]
 		public void AirDragTest()
 		{
-- 
GitLab