diff UnitTestsSources/UnitTestsMain.cpp @ 177:83200c4d07ca wasm

fix interpolation
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 09 Mar 2018 12:32:01 +0100
parents ab9c799f5de1
children 45b03b04a777
line wrap: on
line diff
--- a/UnitTestsSources/UnitTestsMain.cpp	Fri Mar 09 10:06:59 2018 +0100
+++ b/UnitTestsSources/UnitTestsMain.cpp	Fri Mar 09 12:32:01 2018 +0100
@@ -136,28 +136,30 @@
 
 TEST(GeometryToolbox, Interpolation)
 {
+  using namespace OrthancStone::GeometryToolbox;
+  
   // https://en.wikipedia.org/wiki/Bilinear_interpolation#Application_in_image_processing
-  ASSERT_FLOAT_EQ(146.1f, OrthancStone::GeometryToolbox::ComputeBilinearInterpolation
-                  (20.5f, 14.2f, 91, 210, 162, 95));
-
-  ASSERT_NEAR(146.1f, OrthancStone::GeometryToolbox::ComputeBilinearInterpolation
-              (-20.5f, 14.2f, 91, 210, 162, 95), 0.0001f);
+  ASSERT_FLOAT_EQ(146.1f, ComputeBilinearInterpolationUnitSquare(0.5f, 0.2f, 91, 210, 162, 95));
 
-  ASSERT_NEAR(146.1f, OrthancStone::GeometryToolbox::ComputeBilinearInterpolation
-              (-20.5f, -8.8f, 91, 210, 162, 95), 0.0001f);
+  ASSERT_FLOAT_EQ(91,  ComputeBilinearInterpolationUnitSquare(0, 0, 91, 210, 162, 95));
+  ASSERT_FLOAT_EQ(210, ComputeBilinearInterpolationUnitSquare(1, 0, 91, 210, 162, 95));
+  ASSERT_FLOAT_EQ(162, ComputeBilinearInterpolationUnitSquare(0, 1, 91, 210, 162, 95));
+  ASSERT_FLOAT_EQ(95,  ComputeBilinearInterpolationUnitSquare(1, 1, 91, 210, 162, 95));
 
-  ASSERT_NEAR(146.1f, OrthancStone::GeometryToolbox::ComputeBilinearInterpolation
-              (20.5f, -8.8f, 91, 210, 162, 95), 0.0001f);
-
-  ASSERT_FLOAT_EQ(123.35f, OrthancStone::GeometryToolbox::ComputeTrilinearInterpolation
-                  (20.5f, 15.2f, 5.7f,
+  ASSERT_FLOAT_EQ(123.35f, ComputeTrilinearInterpolationUnitSquare
+                  (0.5f, 0.2f, 0.7f,
                    91, 210, 162, 95,
                    51, 190, 80, 92));
 
-  ASSERT_FLOAT_EQ(123.35f, OrthancStone::GeometryToolbox::ComputeTrilinearInterpolation
-                  (20.5f, 15.2f, -6.3f,
-                   91, 210, 162, 95,
-                   51, 190, 80, 92));
+  ASSERT_FLOAT_EQ(ComputeBilinearInterpolationUnitSquare(0.5f, 0.2f, 91, 210, 162, 95),
+                  ComputeTrilinearInterpolationUnitSquare(0.5f, 0.2f, 0,
+                                                          91, 210, 162, 95,
+                                                          51, 190, 80, 92));
+
+  ASSERT_FLOAT_EQ(ComputeBilinearInterpolationUnitSquare(0.5f, 0.2f, 51, 190, 80, 92),
+                  ComputeTrilinearInterpolationUnitSquare(0.5f, 0.2f, 1,
+                                                          91, 210, 162, 95,
+                                                          51, 190, 80, 92));
 }