@@ -36,10 +36,10 @@ import mir.ndslice.traits;
3636// /
3737@trusted pure version(mir_test) unittest
3838{
39- import std.math : approxEqual;
39+ import mir.algorithm.iteration: all;
40+ import mir.math.common: approxEqual;
4041 import mir.ndslice.slice: sliced;
4142 import mir.ndslice.topology: vmap;
42- import mir.algorithm.iteration: all;
4343
4444 auto x = [- 1.0 , 2 , 4 , 5 , 8 , 10 , 12 , 15 , 19 , 22 ].idup.sliced;
4545 auto y = [17.0 , 0 , 16 , 4 , 10 , 15 , 19 , 5 , 18 , 6 ].idup.sliced;
@@ -48,21 +48,21 @@ import mir.ndslice.traits;
4848 auto xs = x + 0.5 ; // input X values for cubic spline
4949
5050 // / not-a-knot (default)
51- assert (xs.vmap(interpolant).approxEqual([
51+ assert (xs.vmap(interpolant).all ! approxEqual([
5252 - 0.68361541 , 7.28568719 , 10.490694 , 0.36192032 ,
5353 11.91572713 , 16.44546433 , 17.66699525 , 4.52730869 ,
5454 19.22825394 , - 2.3242592 ]));
5555
5656 // / natural cubic spline
5757 interpolant = spline! double (x, y, SplineBoundaryType.secondDerivative);
58- assert (xs.vmap(interpolant).approxEqual([
58+ assert (xs.vmap(interpolant).all ! approxEqual([
5959 10.85298372 , 5.26255911 , 10.71443229 , 0.1824536 ,
6060 11.94324989 , 16.45633939 , 17.59185094 , 4.86340188 ,
6161 17.8565408 , 2.81856494 ]));
6262
6363 // / set both boundary derivatives to 3
6464 interpolant = spline! double (x, y, SplineBoundaryType.firstDerivative, 3 );
65- assert (xs.vmap(interpolant).approxEqual([
65+ assert (xs.vmap(interpolant).all ! approxEqual([
6666 16.45728263 , 4.27981687 , 10.82295092 , 0.09610695 ,
6767 11.95252862 , 16.47583126 , 17.49964521 , 5.26561539 ,
6868 16.21803478 , 8.96104974 ]));
@@ -71,15 +71,15 @@ import mir.ndslice.traits;
7171 interpolant = spline! double (x, y,
7272 SplineBoundaryCondition! double (SplineBoundaryType.firstDerivative, 3 ),
7373 SplineBoundaryCondition! double (SplineBoundaryType.secondDerivative, - 5 ));
74- assert (xs.vmap(interpolant).approxEqual([
74+ assert (xs.vmap(interpolant).all ! approxEqual([
7575 16.45730084 , 4.27966112 , 10.82337171 , 0.09403945 ,
7676 11.96265209 , 16.44067375 , 17.6374694 , 4.67438921 ,
7777 18.6234452 , - 0.05582876 ]));
7878 // ditto
7979 interpolant = spline! double (x, y,
8080 SplineBoundaryCondition! double (SplineBoundaryType.secondDerivative, - 5 ),
8181 SplineBoundaryCondition! double (SplineBoundaryType.firstDerivative, 3 ));
82- assert (xs.vmap(interpolant).approxEqual([
82+ assert (xs.vmap(interpolant).all ! approxEqual([
8383 12.37135558 , 4.99638066 , 10.74362441 , 0.16008641 ,
8484 11.94073593 , 16.47908148 , 17.49841853 , 5.26600921 ,
8585 16.21796051 , 8.96102894 ]));
@@ -88,12 +88,12 @@ import mir.ndslice.traits;
8888// /
8989@safe pure version(mir_test) unittest
9090{
91- import std.math : approxEqual;
91+ import mir.algorithm.iteration: all;
92+ import mir.functional: aliasCall;
93+ import mir.math.common: approxEqual;
9294 import mir.ndslice.allocation: uninitSlice;
9395 import mir.ndslice.slice: sliced;
9496 import mir.ndslice.topology: vmap, map;
95- import mir.algorithm.iteration: all;
96- import mir.functional: aliasCall;
9797
9898 auto x = [- 1.0 , 2 , 4 , 5 , 8 , 10 , 12 , 15 , 19 , 22 ].idup.sliced;
9999 auto y = [
@@ -184,8 +184,9 @@ import mir.ndslice.traits;
184184version (mir_test)
185185@safe unittest
186186{
187+ import mir.algorithm.iteration: all;
188+ import mir.math.common: approxEqual;
187189 import mir.ndslice;
188- import std.math : approxEqual;
189190
190191 immutable x = [0 , 1 , 2 , 3 , 5.00274 , 7.00274 , 10.0055 , 20.0137 , 30.0192 ];
191192 auto y = [0.0011 , 0.0011 , 0.0030 , 0.0064 , 0.0144 , 0.0207 , 0.0261 , 0.0329 , 0.0356 ,];
@@ -202,15 +203,15 @@ version(mir_test)
202203 0.03419436 , 0.03446018 , 0.03477529 , 0.03515072 , 0.0356 ];
203204
204205 ()@trusted {
205- assert (approxEqual(xs.sliced.vmap(interpolation), data, 1e-4 , 1e-4 ));
206+ assert (all ! approxEqual(xs.sliced.vmap(interpolation), data));
206207 }();
207208}
208209
209210// / R^2 -> R: Bicubic interpolation
210211version (mir_test)
211212unittest
212213{
213- import std .math : approxEqual;
214+ import mir .math.common : approxEqual;
214215 import mir.ndslice;
215216 alias appreq = (a, b) => approxEqual(a, b, 10e-10 , 10e-10 );
216217
@@ -264,7 +265,7 @@ unittest
264265version (mir_test)
265266unittest
266267{
267- import std .math : approxEqual;
268+ import mir .math.common : approxEqual;
268269 import mir.ndslice;
269270 alias appreq = (a, b) => approxEqual(a, b, 10e-10 , 10e-10 );
270271
0 commit comments