@@ -2,24 +2,32 @@ use super::*;
22
33#[ test]
44fn test_linear ( ) {
5- let x = array ! [ 0.05 , 0.10 , 0.15 ] ;
6- let y = array ! [ 0.10 , 0.20 , 0.30 ] ;
7- let z = array ! [ 0.20 , 0.40 , 0.60 ] ;
8- let grid = vec ! [ x. view( ) , y. view( ) , z. view( ) ] ;
9- let values = array ! [
10- [ [ 0. , 1. , 2. ] , [ 3. , 4. , 5. ] , [ 6. , 7. , 8. ] ] ,
11- [ [ 9. , 10. , 11. ] , [ 12. , 13. , 14. ] , [ 15. , 16. , 17. ] ] ,
12- [ [ 18. , 19. , 20. ] , [ 21. , 22. , 23. ] , [ 24. , 25. , 26. ] ] ,
13- ]
14- . into_dyn ( ) ;
15- let interp = InterpND :: new ( grid, values. view ( ) , strategy:: Linear , Extrapolate :: Error ) . unwrap ( ) ;
5+ let interp = InterpND :: new (
6+ vec ! [
7+ array![ 0.05 , 0.10 , 0.15 ] ,
8+ array![ 0.10 , 0.20 , 0.30 ] ,
9+ array![ 0.20 , 0.40 , 0.60 ] ,
10+ ] ,
11+ array ! [
12+ [ [ 0. , 1. , 2. ] , [ 3. , 4. , 5. ] , [ 6. , 7. , 8. ] ] ,
13+ [ [ 9. , 10. , 11. ] , [ 12. , 13. , 14. ] , [ 15. , 16. , 17. ] ] ,
14+ [ [ 18. , 19. , 20. ] , [ 21. , 22. , 23. ] , [ 24. , 25. , 26. ] ] ,
15+ ]
16+ . into_dyn ( ) ,
17+ strategy:: Linear ,
18+ Extrapolate :: Error ,
19+ )
20+ . unwrap ( ) ;
1621 // Check that interpolating at grid points just retrieves the value
22+ let x = & interp. data . grid [ 0 ] ;
23+ let y = & interp. data . grid [ 1 ] ;
24+ let z = & interp. data . grid [ 2 ] ;
1725 for i in 0 ..x. len ( ) {
1826 for j in 0 ..y. len ( ) {
1927 for k in 0 ..z. len ( ) {
2028 assert_eq ! (
21- & interp. interpolate( & [ x[ i] , y[ j] , z[ k] ] ) . unwrap( ) ,
22- values . slice ( s! [ i, j, k] ) . first ( ) . unwrap ( )
29+ interp. interpolate( & [ x[ i] , y[ j] , z[ k] ] ) . unwrap( ) ,
30+ interp . data . values [ [ i, j, k] ]
2331 ) ;
2432 }
2533 }
@@ -206,19 +214,23 @@ fn test_linear_extrapolate_3d() {
206214
207215#[ test]
208216fn test_nearest ( ) {
209- let x = array ! [ 0. , 1. ] ;
210- let y = array ! [ 0. , 1. ] ;
211- let z = array ! [ 0. , 1. ] ;
212- let grid = vec ! [ x. view( ) , y. view( ) , z. view( ) ] ;
213- let values = array ! [ [ [ 0. , 1. ] , [ 2. , 3. ] ] , [ [ 4. , 5. ] , [ 6. , 7. ] ] , ] . into_dyn ( ) ;
214- let interp = InterpND :: new ( grid, values. view ( ) , strategy:: Nearest , Extrapolate :: Error ) . unwrap ( ) ;
217+ let interp = InterpND :: new (
218+ vec ! [ array![ 0. , 1. ] , array![ 0. , 1. ] , array![ 0. , 1. ] ] ,
219+ array ! [ [ [ 0. , 1. ] , [ 2. , 3. ] ] , [ [ 4. , 5. ] , [ 6. , 7. ] ] , ] . into_dyn ( ) ,
220+ strategy:: Nearest ,
221+ Extrapolate :: Error ,
222+ )
223+ . unwrap ( ) ;
215224 // Check that interpolating at grid points just retrieves the value
225+ let x = & interp. data . grid [ 0 ] ;
226+ let y = & interp. data . grid [ 1 ] ;
227+ let z = & interp. data . grid [ 2 ] ;
216228 for i in 0 ..x. len ( ) {
217229 for j in 0 ..y. len ( ) {
218230 for k in 0 ..z. len ( ) {
219231 assert_eq ! (
220- & interp. interpolate( & [ x[ i] , y[ j] , z[ k] ] ) . unwrap( ) ,
221- values . slice ( s! [ i, j, k] ) . first ( ) . unwrap ( )
232+ interp. interpolate( & [ x[ i] , y[ j] , z[ k] ] ) . unwrap( ) ,
233+ interp . data . values [ [ i, j, k] ]
222234 ) ;
223235 }
224236 }
@@ -281,32 +293,28 @@ fn test_extrapolate_fill() {
281293
282294#[ test]
283295fn test_extrapolate_clamp ( ) {
284- let x = array ! [ 0.1 , 1.1 ] ;
285- let y = array ! [ 0.2 , 1.2 ] ;
286- let z = array ! [ 0.3 , 1.3 ] ;
287- let values = array ! [ [ [ 0. , 1. ] , [ 2. , 3. ] ] , [ [ 4. , 5. ] , [ 6. , 7. ] ] , ] . into_dyn ( ) ;
288296 let interp = InterpND :: new (
289- vec ! [ x . view ( ) , y . view ( ) , z . view ( ) ] ,
290- values . view ( ) ,
297+ vec ! [ array! [ 0.1 , 1.1 ] , array! [ 0.2 , 1.2 ] , array! [ 0.3 , 1.3 ] ] ,
298+ array ! [ [ [ 0. , 1. ] , [ 2. , 3. ] ] , [ [ 4. , 5. ] , [ 6. , 7. ] ] , ] . into_dyn ( ) ,
291299 strategy:: Linear ,
292300 Extrapolate :: Clamp ,
293301 )
294302 . unwrap ( ) ;
295303 assert_eq ! (
296304 interp. interpolate( & [ -1. , -1. , -1. ] ) . unwrap( ) ,
297- values[ [ 0 , 0 , 0 ] ]
305+ interp . data . values[ [ 0 , 0 , 0 ] ]
298306 ) ;
299307 assert_eq ! (
300308 interp. interpolate( & [ -1. , 2. , -1. ] ) . unwrap( ) ,
301- values[ [ 0 , 1 , 0 ] ]
309+ interp . data . values[ [ 0 , 1 , 0 ] ]
302310 ) ;
303311 assert_eq ! (
304312 interp. interpolate( & [ 2. , -1. , 2. ] ) . unwrap( ) ,
305- values[ [ 1 , 0 , 1 ] ]
313+ interp . data . values[ [ 1 , 0 , 1 ] ]
306314 ) ;
307315 assert_eq ! (
308316 interp. interpolate( & [ 2. , 2. , 2. ] ) . unwrap( ) ,
309- values[ [ 1 , 1 , 1 ] ]
317+ interp . data . values[ [ 1 , 1 , 1 ] ]
310318 ) ;
311319}
312320
0 commit comments