1 #pragma rtGlobals=3// Use modern global access method and strict wave access.
2 #pragma IgorVersion = 6.1
3 #pragma ModuleName = PearlAreaProfilesTest
6 #include "pearl-area-profiles"
7 #include "unit-testing"
34 make /n=(11,21) /d /free source
35 setscale /p x 10, 1,
"X", source
36 setscale /p y 100, 100,
"Y", source
37 setscale d 0, 0,
"D", source
40 make /n=11 /d /free expected
41 setscale /p x 10, 1,
"X", expected
42 setscale d 0, 0,
"D", expected
43 expected = 30 + 3 * p + 500 + 600 + 700
45 make /n=1 /d /free result1, result0
51 CHECK_EQUAL_WAVES(result1, expected, tol=1e-6)
55 CHECK_EQUAL_WAVES(result0, expected, tol=1e-6)
60 make /n=(11,21) /d /free source
61 setscale /p x 10, 1,
"X", source
62 setscale /p y 100, 100,
"Y", source
63 setscale d 0, 0,
"D", source
66 make /n=21 /d /free expected
67 setscale /p x 100, 100,
"Y", expected
68 setscale d 0, 0,
"D", expected
69 expected = 3 * x + 14 + 15 + 16
71 make /n=1 /d /free result1, result0
77 CHECK_EQUAL_WAVES(result1, expected)
81 CHECK_EQUAL_WAVES(result0, expected)
89 make /n=(nx,ny,nz) /d /free source
90 setscale /i x -1, 1,
"X", source
91 setscale /i y -2, 2,
"Y", source
92 setscale /i z -3, 3,
"Z", source
93 setscale d 0, 0,
"D", source
98 make /n=(ny,nz) /d /free expected
99 setscale /i x -2, 2,
"Y", expected
100 setscale /i y -3, 3,
"Z", expected
101 setscale d 0, 0,
"D", expected
109 CHECK_EQUAL_WAVES(result, expected, tol=0.001)
113 CHECK_EQUAL_WAVES(result, expected, tol=0.001)
118 expected = (x + y) * 6
120 CHECK_EQUAL_WAVES(result, expected, tol=0.001)
124 expected = (x + y) * (nx - 4)
126 CHECK_EQUAL_WAVES(result, expected, tol=0.001)
134 make /n=(nx,ny,nz) /d /free source
135 setscale /i x -1, 1,
"X", source
136 setscale /i y -2, 2,
"Y", source
137 setscale /i z -3, 3,
"Z", source
138 setscale d 0, 0,
"D", source
143 make /n=(nx,nz) /d /free expected
144 setscale /i x -1, 1,
"X", expected
145 setscale /i y -3, 3,
"Z", expected
146 setscale d 0, 0,
"D", expected
154 CHECK_EQUAL_WAVES(result, expected, tol=0.001)
158 CHECK_EQUAL_WAVES(result, expected, tol=0.001)
163 expected = (x + y) * 6
165 CHECK_EQUAL_WAVES(result, expected, tol=0.001)
169 expected = (x + y) * (ny - 4)
171 CHECK_EQUAL_WAVES(result, expected, tol=0.001)
179 make /n=(nx,ny,nz) /d /free source
180 setscale /i x -1, 1,
"X", source
181 setscale /i y -2, 2,
"Y", source
182 setscale /i z -3, 3,
"Z", source
183 setscale d 0, 0,
"D", source
188 make /n=(nx,ny) /d /free expected
189 setscale /i x -1, 1,
"X", expected
190 setscale /i y -2, 2,
"Y", expected
191 setscale d 0, 0,
"D", expected
199 CHECK_EQUAL_WAVES(result, expected, tol=0.001)
203 CHECK_EQUAL_WAVES(result, expected, tol=0.001)
208 expected = (x + y) * 6
210 CHECK_EQUAL_WAVES(result, expected, tol=0.001)
214 expected = (x + y) * (nz - 4)
216 CHECK_EQUAL_WAVES(result, expected, tol=0.001)
225 make /n=(nx,ny,nz) /d /free source
226 setscale /i x -1, 1,
"X", source
227 setscale /i y -2, 2,
"Y", source
228 setscale /i z -3, 3,
"Z", source
229 setscale d 0, 0,
"D", source
236 make /n=(ny,nz) /d /free expected
237 setscale /i x -2, 2,
"Y", expected
238 setscale /i y -3, 3,
"Z", expected
239 setscale d 0, 0,
"D", expected
247 expected = source[(nx-1)/2][p][q]
248 wave result =
ad_extract_slab(source, x1, x2, y1, y2, z1, z2,
"", noavg=1)
249 CHECK_EQUAL_WAVES(result, expected, tol=0.001)
253 expected = (x + y) * nx
254 wave result =
ad_extract_slab(source, x1, x2, y1, y2, z1, z2,
"", noavg=1)
255 CHECK_EQUAL_WAVES(result, expected, tol=0.001)
257 make /n=(nx,nz) /d /free expected
258 setscale /i x -1, 1,
"X", expected
259 setscale /i y -3, 3,
"Z", expected
260 setscale d 0, 0,
"D", expected
268 expected = source[p][(ny-1)/2][q]
269 wave result =
ad_extract_slab(source, x1, x2, y1, y2, z1, z2,
"", noavg=1)
270 CHECK_EQUAL_WAVES(result, expected, tol=0.001)
274 expected = (x + y) * ny
275 wave result =
ad_extract_slab(source, x1, x2, y1, y2, z1, z2,
"", noavg=1)
276 CHECK_EQUAL_WAVES(result, expected, tol=0.001)
278 make /n=(nx,ny) /d /free expected
279 setscale /i x -1, 1,
"X", expected
280 setscale /i y -2, 2,
"Y", expected
281 setscale d 0, 0,
"D", expected
289 expected = source[p][q][(nz-1)/2]
290 wave result =
ad_extract_slab(source, x1, x2, y1, y2, z1, z2,
"", noavg=1)
291 CHECK_EQUAL_WAVES(result, expected, tol=0.001)
295 expected = (x + y) * nz
296 wave result =
ad_extract_slab(source, x1, x2, y1, y2, z1, z2,
"", noavg=1)
297 CHECK_EQUAL_WAVES(result, expected, tol=0.001)
305 make /n=(nx,ny,nz) /d /free source
306 setscale /i x -1, 1,
"X", source
307 setscale /i y -2, 2,
"Y", source
308 setscale /i z -3, 3,
"Z", source
309 setscale d 0, 0,
"D", source
316 make /n=(nx) /d /free expected
317 setscale /i x -1, 1,
"X", expected
318 setscale d 0, 0,
"D", expected
329 CHECK_EQUAL_WAVES(result, expected, tol=0.001)
333 CHECK_EQUAL_WAVES(result, expected, tol=0.001)
342 make /n=(nx,ny,nz) /d /free source
343 setscale /i x -1, 1,
"X", source
344 setscale /i y -2, 2,
"Y", source
345 setscale /i z -3, 3,
"Z", source
346 setscale d 0, 0,
"D", source
353 make /n=(nx) /d /free expected
354 setscale /i x -1, 1,
"X", expected
355 setscale d 0, 0,
"D", expected
363 expected = source[p][(ny-1)/2][(nz-1)/2]
364 wave result =
ad_extract_rod(source, x1, x2, y1, y2, z1, z2,
"", noavg=1)
365 CHECK_EQUAL_WAVES(result, expected, tol=0.001)
371 expected = x * ny * nz
372 wave result =
ad_extract_rod(source, x1, x2, y1, y2, z1, z2,
"", noavg=1)
373 CHECK_EQUAL_WAVES(result, expected, tol=0.001)
382 make /n=(nx,ny,nz) /d /free source
383 setscale /i x -1, 1,
"X", source
384 setscale /i y -2, 2,
"Y", source
385 setscale /i z -3, 3,
"Z", source
386 setscale d 0, 0,
"D", source
393 make /n=(ny) /d /free expected
394 setscale /i x -2, 2,
"Y", expected
395 setscale d 0, 0,
"D", expected
403 expected = source[(nx-1)/2][p][(nz-1)/2]
404 wave result =
ad_extract_rod(source, x1, x2, y1, y2, z1, z2,
"", noavg=1)
405 CHECK_EQUAL_WAVES(result, expected, tol=0.001)
411 expected = x * nx * nz
412 wave result =
ad_extract_rod(source, x1, x2, y1, y2, z1, z2,
"", noavg=1)
413 CHECK_EQUAL_WAVES(result, expected, tol=0.001)
422 make /n=(nx,ny,nz) /d /free source
423 setscale /i x -1, 1,
"X", source
424 setscale /i y -2, 2,
"Y", source
425 setscale /i z -3, 3,
"Z", source
426 setscale d 0, 0,
"D", source
433 make /n=(nz) /d /free expected
434 setscale /i x -3, 3,
"Z", expected
435 setscale d 0, 0,
"D", expected
443 expected = source[(nx-1)/2][(ny-1)/2][p]
444 wave result =
ad_extract_rod(source, x1, x2, y1, y2, z1, z2,
"", noavg=1)
445 CHECK_EQUAL_WAVES(result, expected, tol=0.001)
451 expected = x * nx * ny
452 wave result =
ad_extract_rod(source, x1, x2, y1, y2, z1, z2,
"", noavg=1)
453 CHECK_EQUAL_WAVES(result, expected, tol=0.001)
threadsafe wave ad_extract_slab_x(wave dataset, variable p1, variable p2, string destname, variable noavg=defaultValue)
threadsafe wave ad_extract_rod_x(wave dataset, variable q1, variable q2, variable r1, variable r2, string destname, variable noavg=defaultValue, variable sdev=defaultValue)
1D cut through 3D dataset along X dimension.
static variable test_ad_extract_rod__x()
test the ad_extract_rod() function, X coordinate
static variable test_ad_extract_slab()
test the ad_extract_slab() function
static variable test_ad_extract_rod__z()
test the ad_extract_rod() function, Z coordinate
threadsafe wave ad_profile_x_w(wave dataset, variable q1, variable q2, wave destwave, variable noavg=defaultValue)
1D cut through 2D dataset along X dimension, existing destination wave.
threadsafe wave ad_extract_slab_z(wave dataset, variable r1, variable r2, string destname, variable noavg=defaultValue)
static variable test_ad_extract_rod__y()
test the ad_extract_rod() function, Y coordinate
threadsafe wave ad_extract_slab_y(wave dataset, variable q1, variable q2, string destname, variable noavg=defaultValue)
static variable test_ad_extract_slab_z()
test the ad_extract_slab_z() function
static variable test_ad_profile_x_w()
test the ad_profile_x() function
static variable test_ad_extract_slab_y()
test the ad_extract_slab_y() function
threadsafe wave ad_profile_y_w(wave dataset, variable p1, variable p2, wave destwave, variable noavg=defaultValue)
1D cut through 2D dataset along X dimension, existing destination wave.
static variable test_ad_extract_rod_x()
test the ad_extract_rod_x() function
static variable test_ad_profile_y_w()
test the ad_profile_y() function
static variable test_ad_extract_slab_x()
test the ad_extract_slab_x() function
threadsafe wave ad_extract_rod(wave dataset, variable x1, variable x2, variable y1, variable y2, variable z1, variable z2, string destname, variable noavg=defaultValue, variable sdev=defaultValue, variable pscale=defaultValue)
1D cut through 3D dataset, integrate in normal dimensions
threadsafe wave ad_extract_slab(wave dataset, variable x1, variable x2, variable y1, variable y2, variable z1, variable z2, string destname, variable noavg=defaultValue, variable pscale=defaultValue)
2D cut through 3D dataset, integrate in normal dimension