diff base/test/TestColumnOp.h @ 1304:7cff8367d9b1 3.0-integration

Add test for last change to ColumnOp
author Chris Cannam
date Tue, 29 Nov 2016 08:58:50 +0000
parents f50c0bbe9096
children bd1eb56df8d5
line wrap: on
line diff
--- a/base/test/TestColumnOp.h	Mon Nov 28 18:09:59 2016 +0000
+++ b/base/test/TestColumnOp.h	Tue Nov 29 08:58:50 2016 +0000
@@ -23,6 +23,8 @@
 
 #include <iostream>
 
+//#define REPORT 1
+
 using namespace std;
 
 class TestColumnOp : public QObject
@@ -252,7 +254,22 @@
         QCOMPARE(actual, expected);
     }
     
-        
+    void distribute_nonlinear_someshrinking_interpolated() {
+        // But we *should* interpolate if the mapping involves
+        // shrinking some bins but expanding others.  See
+        // distribute_simple_interpolated for note on 0.5 offset
+        Column in { 4, 1, 2, 3, 5, 6 };
+        BinMapping binfory { 0.0, 3.0, 4.0, 4.5 };
+        Column expected { 4.0, 2.5, 4.0, 5.0 };
+        Column actual(C::distribute(in, 4, binfory, 0, true));
+        report(actual);
+        QCOMPARE(actual, expected);
+        binfory = BinMapping { 0.5, 1.0, 2.0, 5.0 };
+        expected = { 4.0, 2.5, 1.5, 5.5 };
+        actual = (C::distribute(in, 4, binfory, 0, true));
+        report(actual);
+        QCOMPARE(actual, expected);
+    }
 };
     
 #endif