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