15from numpy.testing
import assert_array_equal
18 from numpy.exceptions
import ComplexWarning
21 from numpy
import ComplexWarning
25 return x == v
and type(x)
is t
29print(
"checking module load ...", file=sys.stderr)
31from lal
import globalvar
as lalglobalvar
34lal_180_pi = lal.LAL_180_PI
35print(
"PASSED module load", file=sys.stderr)
42 lal.swig_set_nice_error_handlers()
46 if "NASTY_ERROR_HANDLERS" in os.environ:
47 lal.swig_set_nasty_error_handlers()
49 lal.swig_set_nice_error_handlers()
55@contextlib.contextmanager
58 with pytest.raises(*args, **kwargs):
69 frame = inspect.currentframe()
71 for v
in frame.f_back.f_locals:
72 if v.startswith(
"@py_assert"):
73 frame.f_back.f_locals[v] =
None
81 lal.CheckMemoryLeaks()
88 lal.MEMORY_FUNCTIONS_DISABLED,
89 reason=
"LAL was built with MEMORY_FUNCTIONS_DISABLED",
92 """check memory allocation"""
93 print(
"checking memory allocation ...", file=sys.stderr)
96 mem2 = lal.CreateCOMPLEX8Vector(5)
97 mem3 = lal.CreateREAL8Vector(3)
98 mem4 = lal.CreateREAL4TimeSeries(
99 "test", lal.LIGOTimeGPS(0), 100, 0.1, lal.DimensionlessUnit, 10
102 "*** below should be an error message from CheckMemoryLeaks() ***",
106 with catch_errors(RuntimeError, match=
"Generic failure"):
109 "*** above should be an error message from CheckMemoryLeaks() ***",
117 print(
"PASSED memory allocation", file=sys.stderr)
121 """check object parent tracking"""
122 print(
"checking object parent tracking ...", file=sys.stderr)
123 a = lal.gsl_vector(3)
124 a.data = [1.1, 2.2, 3.3]
126 assert not b.flags[
"OWNDATA"]
127 assert_array_equal(b, [1.1, 2.2, 3.3])
129 assert_array_equal(b, [1.1, 2.2, 3.3])
130 ts = lal.CreateREAL8TimeSeries(
131 "test", lal.LIGOTimeGPS(0), 0, 0.1, lal.DimensionlessUnit, 10
133 ts.data.data = list(range(0, 10))
134 for i
in range(0, 7):
136 assert_array_equal(v.data, list(range(0, 10)))
138 assert_array_equal(v.data, list(range(0, 10)))
141 print(
"PASSED object parent tracking", file=sys.stderr)
145 """check equal return/first argument type handling"""
146 print(
"checking equal return/first argument type handling", file=sys.stderr)
147 sv = lal.CreateStringVector(
"1")
148 assert sv.length == 1
149 lal.AppendString2Vector(sv,
"2")
150 assert sv.length == 2
151 sv = lal.AppendString2Vector(sv,
"3")
152 assert sv.length == 3
153 sv2 = lal.AppendString2Vector(sv,
"4")
154 assert sv.length == 4
155 assert sv2.length == 4
160 ts = lal.CreateREAL8TimeSeries(
"ts", 800000000, 100, 0.1, lal.HertzUnit, 10)
161 assert ts.data.length == 10
162 lal.ResizeREAL8TimeSeries(ts, 0, 20)
163 assert ts.data.length == 20
164 ts = lal.ResizeREAL8TimeSeries(ts, 0, 30)
165 assert ts.data.length == 30
166 ts2 = lal.ResizeREAL8TimeSeries(ts, 0, 40)
167 assert ts.data.length == 40
168 assert ts2.data.length == 40
173 print(
"PASSED equal return/first argument type handling", file=sys.stderr)
177 """check string conversions"""
178 print(
"checking string conversions ...", file=sys.stderr)
179 strs = [
"a",
"bc",
"def"]
180 sv = lal.CreateStringVector(*strs)
181 assert sv.length == 3
182 assert_array_equal(sv.data.astype(object), strs)
185 strs.append(
"lmnopq")
186 sv = lal.AppendString2Vector(sv, strs[3])
187 assert sv.length == 4
188 for i
in range(0, 4):
189 assert sv.data[i] == strs[i]
192 print(
"PASSED string conversions", file=sys.stderr)
196 """check static vector/matrix conversions"""
197 print(
"checking static vector/matrix conversions ...", file=sys.stderr)
198 lalglobalvar.swig_lal_test_struct_vector[
200 ] = lalglobalvar.swig_lal_test_struct_const
202 lalglobalvar.swig_lal_test_struct_vector[0].n
203 == lalglobalvar.swig_lal_test_struct_const.n
206 lalglobalvar.swig_lal_test_struct_vector[0].i
207 == lalglobalvar.swig_lal_test_struct_const.i
210 lalglobalvar.swig_lal_test_struct_vector[0].f
211 == lalglobalvar.swig_lal_test_struct_const.f
214 lalglobalvar.swig_lal_test_struct_vector[0].str
215 == lalglobalvar.swig_lal_test_struct_const.str
218 lalglobalvar.swig_lal_test_struct_vector[0].vec,
219 lalglobalvar.swig_lal_test_struct_const.vec,
221 lalglobalvar.swig_lal_test_struct_matrix[
223 ] = lalglobalvar.swig_lal_test_struct_const
225 lalglobalvar.swig_lal_test_struct_matrix[0, 0].n
226 == lalglobalvar.swig_lal_test_struct_const.n
229 lalglobalvar.swig_lal_test_struct_matrix[0, 0].i
230 == lalglobalvar.swig_lal_test_struct_const.i
233 lalglobalvar.swig_lal_test_struct_matrix[0, 0].f
234 == lalglobalvar.swig_lal_test_struct_const.f
237 lalglobalvar.swig_lal_test_struct_matrix[0, 0].str
238 == lalglobalvar.swig_lal_test_struct_const.str
241 lalglobalvar.swig_lal_test_struct_matrix[0, 0].vec,
242 lalglobalvar.swig_lal_test_struct_const.vec,
244 sts = lal.swig_lal_test_struct()
245 assert len(sts.vec) == 3
246 assert len(sts.evec) == 3
247 assert sts.mat.shape == (2, 3)
249 assert_array_equal(sts.vec, [3, 2, 1])
250 sts.mat = [[4, 5, 6], (9, 8, 7)]
252 sts.mat = [[1.1, 2.3, 4.5], [6.5, 4.3, 2.1]]
253 assert_array_equal(sts.mat, [[4, 5, 6], [9, 8, 7]])
254 for i
in range(0, 3):
255 sts.evec[i] = 2 * i + 3
256 assert sts.evec[i] == (2 * i + 3)
258 assert not lalglobalvar.swig_lal_test_enum_vector.any()
259 assert not lalglobalvar.swig_lal_test_enum_matrix.any()
260 assert len(lalglobalvar.swig_lal_test_empty_INT4_vector) == 0
261 assert not lalglobalvar.swig_lal_test_INT4_vector.any()
262 assert not lalglobalvar.swig_lal_test_INT4_matrix.any()
263 assert not lalglobalvar.swig_lal_test_REAL8_vector.any()
264 assert not lalglobalvar.swig_lal_test_REAL8_matrix.any()
265 assert not lalglobalvar.swig_lal_test_COMPLEX8_vector.any()
266 assert not lalglobalvar.swig_lal_test_COMPLEX8_matrix.any()
267 lalglobalvar.swig_lal_test_INT4_vector[0] = 10
268 assert lalglobalvar.swig_lal_test_INT4_vector[0] == 10
269 lalglobalvar.swig_lal_test_INT4_matrix[0, 0] = 11
270 assert lalglobalvar.swig_lal_test_INT4_matrix[0, 0] == 11
271 lalglobalvar.swig_lal_test_INT4_vector = (
272 lalglobalvar.swig_lal_test_INT4_const_vector
274 assert_array_equal(lalglobalvar.swig_lal_test_INT4_vector, [1, 2, 4])
275 assert lalglobalvar.swig_lal_test_INT4_const_vector[2] == 4
276 lalglobalvar.swig_lal_test_INT4_matrix = (
277 lalglobalvar.swig_lal_test_INT4_const_matrix
280 lalglobalvar.swig_lal_test_INT4_matrix,
281 [[1, 2, 4], [2, 4, 8]],
283 assert lalglobalvar.swig_lal_test_INT4_const_matrix[1, 2] == 8
285 lalglobalvar.swig_lal_test_INT4_const_vector(20)
286 lalglobalvar.swig_lal_test_REAL8_vector[0] = 3.4
287 assert lalglobalvar.swig_lal_test_REAL8_vector[0] == 3.4
288 lalglobalvar.swig_lal_test_REAL8_matrix[0, 0] = 5.6
289 assert lalglobalvar.swig_lal_test_REAL8_matrix[0, 0] == 5.6
290 lalglobalvar.swig_lal_test_COMPLEX8_vector[0] = complex(3.5, 4.75)
291 assert lalglobalvar.swig_lal_test_COMPLEX8_vector[0] == complex(3.5, 4.75)
292 lalglobalvar.swig_lal_test_COMPLEX8_matrix[0, 0] = complex(5.5, 6.25)
293 assert lalglobalvar.swig_lal_test_COMPLEX8_matrix[0, 0] == complex(5.5, 6.25)
294 print(
"PASSED static vector/matrix conversions", file=sys.stderr)
298 """check dynamic vector/matrix conversions"""
299 print(
"checking dynamic vector/matrix conversions ...", file=sys.stderr)
301 def check_dynamic_vector_matrix(iv, ivl, rv, rvl, cm, cms1, cms2):
302 iv.data = numpy.zeros(ivl, dtype=iv.data.dtype)
303 rv.data = numpy.zeros(rvl, dtype=rv.data.dtype)
304 cm.data = numpy.zeros((cms1, cms2), dtype=cm.data.dtype)
306 iv.data = [1, 3, 2, 4, 3]
307 assert_array_equal(iv.data, [1, 3, 2, 4, 3])
309 assert iv.data[3] == 7
311 rv.data = [1.2, 3.4, 2.6, 4.8, 3.5]
312 assert_array_equal(rv.data, [1.2, 3.4, 2.6, 4.8, 3.5])
313 rv.data[rvl - 1] = 7.5
314 assert rv.data[rvl - 1] == 7.5
320 assert_array_equal(rv.data, iv.data)
323 for i
in range(0, cms1):
324 for j
in range(0, cms2):
325 cm.data[i, j] = complex(i / 4.0, j / 2.0)
326 assert cm.data[2, 3] == complex(0.5, 1.5)
327 assert cm.data[3, 2] == complex(0.75, 1.0)
329 with pytest.warns(ComplexWarning):
330 iv.data[0] = cm.data[2, 3]
333 with pytest.warns(ComplexWarning):
334 rv.data[0] = cm.data[3, 2]
338 iv = lal.CreateINT4Vector(5)
339 rv = lal.CreateREAL8Vector(5)
340 cm = lal.CreateCOMPLEX8VectorSequence(4, 6)
341 check_dynamic_vector_matrix(
342 iv, iv.length, rv, rv.length, cm, cm.length, cm.vectorLength
347 rv0 = lal.CreateREAL8Vector(0)
348 assert rv0.length == 0
349 assert rv0.data
is None
351 rv1 = lal.CreateREAL8Vector(1)
355 print(
"PASSED dynamic vector/matrix conversions (LAL)", file=sys.stderr)
357 iv = lal.gsl_vector_int(5)
358 rv = lal.gsl_vector(5)
359 cm = lal.gsl_matrix_complex_float(4, 6)
360 check_dynamic_vector_matrix(iv, iv.size, rv, rv.size, cm, cm.size1, cm.size2)
364 rv1 = lal.gsl_vector(1)
367 print(
"PASSED dynamic vector/matrix conversions (GSL)", file=sys.stderr)
371 """check fixed and dynamic arrays typemaps"""
372 print(
"checking fixed and dynamic arrays typemaps ...", file=sys.stderr)
373 a1in = numpy.array([1.2, 3.5, 7.9], dtype=numpy.double)
375 assert_array_equal(lal.swig_lal_test_copyin_array1(a1in, 2.5), a1out)
376 a2in = numpy.array([[3, 2], [7, 6], [12, 10]], dtype=numpy.int32)
378 assert_array_equal(lal.swig_lal_test_copyin_array2(a2in, 15), a2out)
379 a3in = numpy.array([lal.LIGOTimeGPS(1234.5), lal.LIGOTimeGPS(678.9)])
381 assert_array_equal(lal.swig_lal_test_copyin_array3(a3in, 3), a3out)
383 lal.swig_lal_test_copyin_array1(
384 numpy.array([0, 0, 0, 0], dtype=numpy.double), 0
387 lal.swig_lal_test_copyin_array2(
388 numpy.array([[1.2, 3.4], [0, 0], [0, 0]], dtype=numpy.double), 0
393 print(
"PASSED fixed and dynamic arrays typemaps", file=sys.stderr)
397 """check input views of string array structs"""
398 print(
"checking input views of string array structs ...", file=sys.stderr)
399 svdat = [
"a",
"bc",
"def"]
400 sv = lal.CreateEmptyStringVector(len(svdat))
402 svout = lal.CreateEmptyStringVector(len(svdat))
403 svout.data = [
""] * len(svdat)
404 assert lal.swig_lal_test_viewin_LALStringVector(svout, sv)
405 assert all(map(
lambda x, y: x == y, svout.data, sv.data))
406 svout.data = [
""] * len(svdat)
407 assert lal.swig_lal_test_viewin_LALStringVector(svout, svdat)
408 assert all(map(
lambda x, y: x == y, svout.data, svdat))
410 assert lal.swig_lal_test_copyinout_LALStringVector(sv)
411 assert all(map(
lambda x, y: x == y.upper(), sv.data, svdat))
413 retn, sv = lal.swig_lal_test_copyinout_LALStringVector(sv)
415 assert all(map(
lambda x, y: x == y.upper(), sv.data, svdat))
417 retn, sv = lal.swig_lal_test_copyinout_LALStringVector(sv)
419 assert all(map(
lambda x, y: x == y.upper(), sv, svdat))
424 print(
"PASSED input views of string array structs", file=sys.stderr)
428 """check input views of numeric array structs"""
429 print(
"checking input views of numeric array structs ...", file=sys.stderr)
430 r4dat = numpy.array([1.2, 2.3, 3.4, 4.5, 5.6], dtype=numpy.float32)
431 r8dat = numpy.array([3.4, 4.5, 5.6, 6.7, 7.8, 8.9], dtype=numpy.float64)
433 numpy.vectorize(complex)(r4dat, 8 + r4dat), dtype=numpy.complex64
435 c16dat = numpy.array(
436 numpy.vectorize(complex)(r8dat, 16 + r8dat), dtype=numpy.complex128
438 r4 = lal.CreateREAL4Vector(len(r4dat))
440 r4out = lal.CreateREAL4Vector(len(r4dat))
441 r4out.data = numpy.zeros(numpy.shape(r4dat), dtype=r4dat.dtype)
442 assert lal.swig_lal_test_viewin_REAL4Vector(r4out, r4)
443 assert_array_equal(r4out.data, r4.data)
444 r4out.data = numpy.zeros(numpy.shape(r4dat), dtype=r4dat.dtype)
445 assert lal.swig_lal_test_viewin_REAL4Vector(r4out, r4dat)
446 assert_array_equal(r4out.data, r4dat)
447 r4out.data = numpy.zeros(numpy.shape(r4dat), dtype=r4dat.dtype)
448 assert lal.swig_lal_test_viewinout_REAL4Vector(r4out, r4)
449 assert_array_equal(2 * r4out.data, r4.data)
450 r4out.data = numpy.zeros(numpy.shape(r4dat), dtype=r4dat.dtype)
451 assert lal.swig_lal_test_viewinout_REAL4Vector(r4out, r4dat)
452 assert_array_equal(2 * r4out.data, r4dat)
454 assert lal.swig_lal_test_copyinout_REAL4Vector(r4)
455 assert_array_equal(r4.data, 3 * r4dat)
457 retn, r4 = lal.swig_lal_test_copyinout_REAL4Vector(r4)
459 assert_array_equal(r4.data, 3 * r4dat)
461 retn, r4 = lal.swig_lal_test_copyinout_REAL4Vector(r4)
463 assert_array_equal(r4, 3 * r4dat)
468 r8 = lal.CreateREAL8Vector(len(r8dat))
470 r8out = lal.CreateREAL8Vector(len(r8dat))
471 r8out.data = numpy.zeros(numpy.shape(r8dat), dtype=r8dat.dtype)
472 assert lal.swig_lal_test_viewin_REAL8Vector(r8out, r8)
473 assert_array_equal(r8out.data, r8.data)
474 r8out.data = numpy.zeros(numpy.shape(r8dat), dtype=r8dat.dtype)
475 assert lal.swig_lal_test_viewin_REAL8Vector(r8out, r8dat)
476 assert_array_equal(r8out.data, r8dat)
477 r8out.data = numpy.zeros(numpy.shape(r8dat), dtype=r8dat.dtype)
478 assert lal.swig_lal_test_viewinout_REAL8Vector(r8out, r8)
479 assert_array_equal(2 * r8out.data, r8.data)
480 r8out.data = numpy.zeros(numpy.shape(r8dat), dtype=r8dat.dtype)
481 assert lal.swig_lal_test_viewinout_REAL8Vector(r8out, r8dat)
482 assert_array_equal(2 * r8out.data, r8dat)
484 assert lal.swig_lal_test_copyinout_REAL8Vector(r8)
485 assert_array_equal(r8.data, 3 * r8dat)
487 retn, r8 = lal.swig_lal_test_copyinout_REAL8Vector(r8)
489 assert_array_equal(r8.data, 3 * r8dat)
491 retn, r8 = lal.swig_lal_test_copyinout_REAL8Vector(r8)
493 assert_array_equal(r8, 3 * r8dat)
498 c8 = lal.CreateCOMPLEX8Vector(len(c8dat))
500 c8out = lal.CreateCOMPLEX8Vector(len(c8dat))
501 c8out.data = numpy.zeros(numpy.shape(c8dat), dtype=c8dat.dtype)
502 assert lal.swig_lal_test_viewin_COMPLEX8Vector(c8out, c8)
503 assert_array_equal(c8out.data, c8.data)
504 c8out.data = numpy.zeros(numpy.shape(c8dat), dtype=c8dat.dtype)
505 assert lal.swig_lal_test_viewin_COMPLEX8Vector(c8out, c8dat)
506 assert_array_equal(c8out.data, c8dat)
507 c8out.data = numpy.zeros(numpy.shape(c8dat), dtype=c8dat.dtype)
508 assert lal.swig_lal_test_viewinout_COMPLEX8Vector(c8out, c8)
509 assert_array_equal(2 * c8out.data, c8.data)
510 c8out.data = numpy.zeros(numpy.shape(c8dat), dtype=c8dat.dtype)
511 assert lal.swig_lal_test_viewinout_COMPLEX8Vector(c8out, c8dat)
512 assert_array_equal(2 * c8out.data, c8dat)
514 assert lal.swig_lal_test_copyinout_COMPLEX8Vector(c8)
515 assert_array_equal(c8.data, 3 * c8dat)
517 retn, c8 = lal.swig_lal_test_copyinout_COMPLEX8Vector(c8)
519 assert_array_equal(c8.data, 3 * c8dat)
521 retn, c8 = lal.swig_lal_test_copyinout_COMPLEX8Vector(c8)
523 assert_array_equal(c8, 3 * c8dat)
528 c16 = lal.CreateCOMPLEX16Vector(len(c16dat))
530 c16out = lal.CreateCOMPLEX16Vector(len(c16dat))
531 c16out.data = numpy.zeros(numpy.shape(c16dat), dtype=c16dat.dtype)
532 assert lal.swig_lal_test_viewin_COMPLEX16Vector(c16out, c16)
533 assert_array_equal(c16out.data, c16.data)
534 c16out.data = numpy.zeros(numpy.shape(c16dat), dtype=c16dat.dtype)
535 assert lal.swig_lal_test_viewin_COMPLEX16Vector(c16out, c16dat)
536 assert_array_equal(c16out.data, c16dat)
537 c16out.data = numpy.zeros(numpy.shape(c16dat), dtype=c16dat.dtype)
538 assert lal.swig_lal_test_viewinout_COMPLEX16Vector(c16out, c16)
539 assert_array_equal(2 * c16out.data, c16.data)
540 c16out.data = numpy.zeros(numpy.shape(c16dat), dtype=c16dat.dtype)
541 assert lal.swig_lal_test_viewinout_COMPLEX16Vector(c16out, c16dat)
542 assert_array_equal(2 * c16out.data, c16dat)
544 assert lal.swig_lal_test_copyinout_COMPLEX16Vector(c16)
545 assert_array_equal(c16.data, 3 * c16dat)
547 retn, c16 = lal.swig_lal_test_copyinout_COMPLEX16Vector(c16)
549 assert_array_equal(c16.data, 3 * c16dat)
551 retn, c16 = lal.swig_lal_test_copyinout_COMPLEX16Vector(c16)
553 assert_array_equal(c16, 3 * c16dat)
558 r4dat = numpy.array([[1.2, 2.3, 3.4], [4.5, 5.6, 6.7]], dtype=numpy.float32)
559 r8dat = numpy.array([[3.4, 4.5], [5.6, 6.7], [7.8, 8.9]], dtype=numpy.float64)
561 numpy.vectorize(complex)(r4dat, 8 + r4dat), dtype=numpy.complex64
563 c16dat = numpy.array(
564 numpy.vectorize(complex)(r8dat, 16 + r8dat), dtype=numpy.complex128
566 r4 = lal.CreateREAL4VectorSequence(r4dat.shape[0], r4dat.shape[1])
568 r4out = lal.CreateREAL4VectorSequence(r4dat.shape[0], r4dat.shape[1])
569 r4out.data = numpy.zeros(numpy.shape(r4dat), dtype=r4dat.dtype)
570 assert lal.swig_lal_test_viewin_REAL4VectorSequence(r4out, r4)
571 assert_array_equal(r4out.data, r4.data)
572 r4out.data = numpy.zeros(numpy.shape(r4dat), dtype=r4dat.dtype)
573 assert lal.swig_lal_test_viewin_REAL4VectorSequence(r4out, r4dat)
574 assert_array_equal(r4out.data, r4dat)
575 r4out.data = numpy.zeros(numpy.shape(r4dat), dtype=r4dat.dtype)
576 assert lal.swig_lal_test_viewinout_REAL4VectorSequence(r4out, r4)
577 assert_array_equal(2 * r4out.data, r4.data)
578 r4out.data = numpy.zeros(numpy.shape(r4dat), dtype=r4dat.dtype)
579 assert lal.swig_lal_test_viewinout_REAL4VectorSequence(r4out, r4dat)
580 assert_array_equal(2 * r4out.data, r4dat)
582 assert lal.swig_lal_test_copyinout_REAL4VectorSequence(r4)
583 assert_array_equal(r4.data, 3 * r4dat)
585 retn, r4 = lal.swig_lal_test_copyinout_REAL4VectorSequence(r4)
587 assert_array_equal(r4.data, 3 * r4dat)
589 retn, r4 = lal.swig_lal_test_copyinout_REAL4VectorSequence(r4)
591 assert_array_equal(r4, 3 * r4dat)
596 r8 = lal.CreateREAL8VectorSequence(r8dat.shape[0], r8dat.shape[1])
598 r8out = lal.CreateREAL8VectorSequence(r8dat.shape[0], r8dat.shape[1])
599 r8out.data = numpy.zeros(numpy.shape(r8dat), dtype=r8dat.dtype)
600 assert lal.swig_lal_test_viewin_REAL8VectorSequence(r8out, r8)
601 assert_array_equal(r8out.data, r8.data)
602 r8out.data = numpy.zeros(numpy.shape(r8dat), dtype=r8dat.dtype)
603 assert lal.swig_lal_test_viewin_REAL8VectorSequence(r8out, r8dat)
604 assert_array_equal(r8out.data, r8dat)
605 r8out.data = numpy.zeros(numpy.shape(r8dat), dtype=r8dat.dtype)
606 assert lal.swig_lal_test_viewinout_REAL8VectorSequence(r8out, r8)
607 assert_array_equal(2 * r8out.data, r8.data)
608 r8out.data = numpy.zeros(numpy.shape(r8dat), dtype=r8dat.dtype)
609 assert lal.swig_lal_test_viewinout_REAL8VectorSequence(r8out, r8dat)
610 assert_array_equal(2 * r8out.data, r8dat)
612 assert lal.swig_lal_test_copyinout_REAL8VectorSequence(r8)
613 assert_array_equal(r8.data, 3 * r8dat)
615 retn, r8 = lal.swig_lal_test_copyinout_REAL8VectorSequence(r8)
617 assert_array_equal(r8.data, 3 * r8dat)
619 retn, r8 = lal.swig_lal_test_copyinout_REAL8VectorSequence(r8)
621 assert_array_equal(r8, 3 * r8dat)
626 c8 = lal.CreateCOMPLEX8VectorSequence(c8dat.shape[0], c8dat.shape[1])
628 c8out = lal.CreateCOMPLEX8VectorSequence(c8dat.shape[0], c8dat.shape[1])
629 c8out.data = numpy.zeros(numpy.shape(c8dat), dtype=c8dat.dtype)
630 assert lal.swig_lal_test_viewin_COMPLEX8VectorSequence(c8out, c8)
631 assert_array_equal(c8out.data, c8.data)
632 c8out.data = numpy.zeros(numpy.shape(c8dat), dtype=c8dat.dtype)
633 assert lal.swig_lal_test_viewin_COMPLEX8VectorSequence(c8out, c8dat)
634 assert_array_equal(c8out.data, c8dat)
635 c8out.data = numpy.zeros(numpy.shape(c8dat), dtype=c8dat.dtype)
636 assert lal.swig_lal_test_viewinout_COMPLEX8VectorSequence(c8out, c8)
637 assert_array_equal(2 * c8out.data, c8.data)
638 c8out.data = numpy.zeros(numpy.shape(c8dat), dtype=c8dat.dtype)
639 assert lal.swig_lal_test_viewinout_COMPLEX8VectorSequence(c8out, c8dat)
640 assert_array_equal(2 * c8out.data, c8dat)
642 assert lal.swig_lal_test_copyinout_COMPLEX8VectorSequence(c8)
643 assert_array_equal(c8.data, 3 * c8dat)
645 retn, c8 = lal.swig_lal_test_copyinout_COMPLEX8VectorSequence(c8)
647 assert_array_equal(c8.data, 3 * c8dat)
649 retn, c8 = lal.swig_lal_test_copyinout_COMPLEX8VectorSequence(c8)
651 assert_array_equal(c8, 3 * c8dat)
656 c16 = lal.CreateCOMPLEX16VectorSequence(c16dat.shape[0], c16dat.shape[1])
658 c16out = lal.CreateCOMPLEX16VectorSequence(c16dat.shape[0], c16dat.shape[1])
659 c16out.data = numpy.zeros(numpy.shape(c16dat), dtype=c16dat.dtype)
660 assert lal.swig_lal_test_viewin_COMPLEX16VectorSequence(c16out, c16)
661 assert_array_equal(c16out.data, c16.data)
662 c16out.data = numpy.zeros(numpy.shape(c16dat), dtype=c16dat.dtype)
663 assert lal.swig_lal_test_viewin_COMPLEX16VectorSequence(c16out, c16dat)
664 assert_array_equal(c16out.data, c16dat)
665 c16out.data = numpy.zeros(numpy.shape(c16dat), dtype=c16dat.dtype)
666 assert lal.swig_lal_test_viewinout_COMPLEX16VectorSequence(c16out, c16)
667 assert_array_equal(2 * c16out.data, c16.data)
668 c16out.data = numpy.zeros(numpy.shape(c16dat), dtype=c16dat.dtype)
669 assert lal.swig_lal_test_viewinout_COMPLEX16VectorSequence(c16out, c16dat)
670 assert_array_equal(2 * c16out.data, c16dat)
672 assert lal.swig_lal_test_copyinout_COMPLEX16VectorSequence(c16)
673 assert_array_equal(c16.data, 3 * c16dat)
675 retn, c16 = lal.swig_lal_test_copyinout_COMPLEX16VectorSequence(c16)
677 assert_array_equal(c16.data, 3 * c16dat)
679 retn, c16 = lal.swig_lal_test_copyinout_COMPLEX16VectorSequence(c16)
681 assert_array_equal(c16, 3 * c16dat)
686 print(
"PASSED input views of numeric array structs (LAL)", file=sys.stderr)
687 vfdat = numpy.array([1.2, 2.3, 3.4, 4.5, 5.6], dtype=numpy.float32)
688 vddat = numpy.array([3.4, 4.5, 5.6, 6.7, 7.8, 8.9], dtype=numpy.float64)
689 vcfdat = numpy.array(
690 numpy.vectorize(complex)(vfdat, 8 + vfdat), dtype=numpy.complex64
692 vcddat = numpy.array(
693 numpy.vectorize(complex)(vddat, 16 + vddat), dtype=numpy.complex128
695 vf = lal.gsl_vector_float(len(vfdat))
697 vfout = lal.gsl_vector_float(len(vfdat))
698 vfout.data = numpy.zeros(numpy.shape(vfdat), dtype=vfdat.dtype)
699 assert lal.swig_lal_test_viewin_gsl_vector_float(vfout, vf)
700 assert_array_equal(vfout.data, vf.data)
701 vfout.data = numpy.zeros(numpy.shape(vfdat), dtype=vfdat.dtype)
702 assert lal.swig_lal_test_viewin_gsl_vector_float(vfout, vfdat)
703 assert_array_equal(vfout.data, vfdat)
704 vfout.data = numpy.zeros(numpy.shape(vfdat), dtype=vfdat.dtype)
705 assert lal.swig_lal_test_viewinout_gsl_vector_float(vfout, vf)
706 assert_array_equal(2 * vfout.data, vf.data)
707 vfout.data = numpy.zeros(numpy.shape(vfdat), dtype=vfdat.dtype)
708 assert lal.swig_lal_test_viewinout_gsl_vector_float(vfout, vfdat)
709 assert_array_equal(2 * vfout.data, vfdat)
711 assert lal.swig_lal_test_copyinout_gsl_vector_float(vf)
712 assert_array_equal(vf.data, 3 * vfdat)
714 retn, vf = lal.swig_lal_test_copyinout_gsl_vector_float(vf)
716 assert_array_equal(vf.data, 3 * vfdat)
718 retn, vf = lal.swig_lal_test_copyinout_gsl_vector_float(vf)
720 assert_array_equal(vf, 3 * vfdat)
725 vd = lal.gsl_vector(len(vddat))
727 vdout = lal.gsl_vector(len(vddat))
728 vdout.data = numpy.zeros(numpy.shape(vddat), dtype=vddat.dtype)
729 assert lal.swig_lal_test_viewin_gsl_vector(vdout, vd)
730 assert_array_equal(vdout.data, vd.data)
731 vdout.data = numpy.zeros(numpy.shape(vddat), dtype=vddat.dtype)
732 assert lal.swig_lal_test_viewin_gsl_vector(vdout, vddat)
733 assert_array_equal(vdout.data, vddat)
734 vdout.data = numpy.zeros(numpy.shape(vddat), dtype=vddat.dtype)
735 assert lal.swig_lal_test_viewinout_gsl_vector(vdout, vd)
736 assert_array_equal(2 * vdout.data, vd.data)
737 vdout.data = numpy.zeros(numpy.shape(vddat), dtype=vddat.dtype)
738 assert lal.swig_lal_test_viewinout_gsl_vector(vdout, vddat)
739 assert_array_equal(2 * vdout.data, vddat)
741 assert lal.swig_lal_test_copyinout_gsl_vector(vd)
742 assert_array_equal(vd.data, 3 * vddat)
744 retn, vd = lal.swig_lal_test_copyinout_gsl_vector(vd)
746 assert_array_equal(vd.data, 3 * vddat)
748 retn, vd = lal.swig_lal_test_copyinout_gsl_vector(vd)
750 assert_array_equal(vd, 3 * vddat)
755 vcf = lal.gsl_vector_complex_float(len(vcfdat))
757 vcfout = lal.gsl_vector_complex_float(len(vcfdat))
758 vcfout.data = numpy.zeros(numpy.shape(vcfdat), dtype=vcfdat.dtype)
759 assert lal.swig_lal_test_viewin_gsl_vector_complex_float(vcfout, vcf)
760 assert_array_equal(vcfout.data, vcf.data)
761 vcfout.data = numpy.zeros(numpy.shape(vcfdat), dtype=vcfdat.dtype)
762 assert lal.swig_lal_test_viewin_gsl_vector_complex_float(vcfout, vcfdat)
763 assert_array_equal(vcfout.data, vcfdat)
764 vcfout.data = numpy.zeros(numpy.shape(vcfdat), dtype=vcfdat.dtype)
765 assert lal.swig_lal_test_viewinout_gsl_vector_complex_float(vcfout, vcf)
766 assert_array_equal(2 * vcfout.data, vcf.data)
767 vcfout.data = numpy.zeros(numpy.shape(vcfdat), dtype=vcfdat.dtype)
768 assert lal.swig_lal_test_viewinout_gsl_vector_complex_float(vcfout, vcfdat)
769 assert_array_equal(2 * vcfout.data, vcfdat)
771 assert lal.swig_lal_test_copyinout_gsl_vector_complex_float(vcf)
772 assert_array_equal(vcf.data, 3 * vcfdat)
774 retn, vcf = lal.swig_lal_test_copyinout_gsl_vector_complex_float(vcf)
776 assert_array_equal(vcf.data, 3 * vcfdat)
778 retn, vcf = lal.swig_lal_test_copyinout_gsl_vector_complex_float(vcf)
780 assert_array_equal(vcf, 3 * vcfdat)
785 vcd = lal.gsl_vector_complex(len(vcddat))
787 vcdout = lal.gsl_vector_complex(len(vcddat))
788 vcdout.data = numpy.zeros(numpy.shape(vcddat), dtype=vcddat.dtype)
789 assert lal.swig_lal_test_viewin_gsl_vector_complex(vcdout, vcd)
790 assert_array_equal(vcdout.data, vcd.data)
791 vcdout.data = numpy.zeros(numpy.shape(vcddat), dtype=vcddat.dtype)
792 assert lal.swig_lal_test_viewin_gsl_vector_complex(vcdout, vcddat)
793 assert_array_equal(vcdout.data, vcddat)
794 vcdout.data = numpy.zeros(numpy.shape(vcddat), dtype=vcddat.dtype)
795 assert lal.swig_lal_test_viewinout_gsl_vector_complex(vcdout, vcd)
796 assert_array_equal(2 * vcdout.data, vcd.data)
797 vcdout.data = numpy.zeros(numpy.shape(vcddat), dtype=vcddat.dtype)
798 assert lal.swig_lal_test_viewinout_gsl_vector_complex(vcdout, vcddat)
799 assert_array_equal(2 * vcdout.data, vcddat)
801 assert lal.swig_lal_test_copyinout_gsl_vector_complex(vcd)
802 assert_array_equal(vcd.data, 3 * vcddat)
804 retn, vcd = lal.swig_lal_test_copyinout_gsl_vector_complex(vcd)
806 assert_array_equal(vcd.data, 3 * vcddat)
808 retn, vcd = lal.swig_lal_test_copyinout_gsl_vector_complex(vcd)
810 assert_array_equal(vcd, 3 * vcddat)
815 mfdat = numpy.array([[1.2, 2.3, 3.4], [4.5, 5.6, 6.7]], dtype=numpy.float32)
816 mddat = numpy.array([[3.4, 4.5], [5.6, 6.7], [7.8, 8.9]], dtype=numpy.float64)
817 mcfdat = numpy.array(
818 numpy.vectorize(complex)(mfdat, 8 + mfdat), dtype=numpy.complex64
820 mcddat = numpy.array(
821 numpy.vectorize(complex)(mddat, 16 + mddat), dtype=numpy.complex128
823 mf = lal.gsl_matrix_float(mfdat.shape[0], mfdat.shape[1])
825 mfout = lal.gsl_matrix_float(mfdat.shape[0], mfdat.shape[1])
826 mfout.data = numpy.zeros(numpy.shape(mfdat), dtype=mfdat.dtype)
827 assert lal.swig_lal_test_viewin_gsl_matrix_float(mfout, mf)
828 assert_array_equal(mfout.data, mf.data)
829 mfout.data = numpy.zeros(numpy.shape(mfdat), dtype=mfdat.dtype)
830 assert lal.swig_lal_test_viewin_gsl_matrix_float(mfout, mfdat)
831 assert_array_equal(mfout.data, mfdat)
832 mfout.data = numpy.zeros(numpy.shape(mfdat), dtype=mfdat.dtype)
833 assert lal.swig_lal_test_viewinout_gsl_matrix_float(mfout, mf)
834 assert_array_equal(2 * mfout.data, mf.data)
835 mfout.data = numpy.zeros(numpy.shape(mfdat), dtype=mfdat.dtype)
836 assert lal.swig_lal_test_viewinout_gsl_matrix_float(mfout, mfdat)
837 assert_array_equal(2 * mfout.data, mfdat)
839 assert lal.swig_lal_test_copyinout_gsl_matrix_float(mf)
840 assert_array_equal(mf.data, 3 * mfdat)
842 retn, mf = lal.swig_lal_test_copyinout_gsl_matrix_float(mf)
844 assert_array_equal(mf.data, 3 * mfdat)
846 retn, mf = lal.swig_lal_test_copyinout_gsl_matrix_float(mf)
848 assert_array_equal(mf, 3 * mfdat)
853 md = lal.gsl_matrix(mddat.shape[0], mddat.shape[1])
855 mdout = lal.gsl_matrix(mddat.shape[0], mddat.shape[1])
856 mdout.data = numpy.zeros(numpy.shape(mddat), dtype=mddat.dtype)
857 assert lal.swig_lal_test_viewin_gsl_matrix(mdout, md)
858 assert_array_equal(mdout.data, md.data)
859 mdout.data = numpy.zeros(numpy.shape(mddat), dtype=mddat.dtype)
860 assert lal.swig_lal_test_viewin_gsl_matrix(mdout, mddat)
861 assert_array_equal(mdout.data, mddat)
862 mdout.data = numpy.zeros(numpy.shape(mddat), dtype=mddat.dtype)
863 assert lal.swig_lal_test_viewinout_gsl_matrix(mdout, md)
864 assert_array_equal(2 * mdout.data, md.data)
865 mdout.data = numpy.zeros(numpy.shape(mddat), dtype=mddat.dtype)
866 assert lal.swig_lal_test_viewinout_gsl_matrix(mdout, mddat)
867 assert_array_equal(2 * mdout.data, mddat)
869 assert lal.swig_lal_test_copyinout_gsl_matrix(md)
870 assert_array_equal(md.data, 3 * mddat)
872 retn, md = lal.swig_lal_test_copyinout_gsl_matrix(md)
874 assert_array_equal(md.data, 3 * mddat)
876 retn, md = lal.swig_lal_test_copyinout_gsl_matrix(md)
878 assert_array_equal(md, 3 * mddat)
883 mcf = lal.gsl_matrix_complex_float(mcfdat.shape[0], mcfdat.shape[1])
885 mcfout = lal.gsl_matrix_complex_float(mcfdat.shape[0], mcfdat.shape[1])
886 mcfout.data = numpy.zeros(numpy.shape(mcfdat), dtype=mcfdat.dtype)
887 assert lal.swig_lal_test_viewin_gsl_matrix_complex_float(mcfout, mcf)
888 assert_array_equal(mcfout.data, mcf.data)
889 mcfout.data = numpy.zeros(numpy.shape(mcfdat), dtype=mcfdat.dtype)
890 assert lal.swig_lal_test_viewin_gsl_matrix_complex_float(mcfout, mcfdat)
891 assert_array_equal(mcfout.data, mcfdat)
892 mcfout.data = numpy.zeros(numpy.shape(mcfdat), dtype=mcfdat.dtype)
893 assert lal.swig_lal_test_viewinout_gsl_matrix_complex_float(mcfout, mcf)
894 assert_array_equal(2 * mcfout.data, mcf.data)
895 mcfout.data = numpy.zeros(numpy.shape(mcfdat), dtype=mcfdat.dtype)
896 assert lal.swig_lal_test_viewinout_gsl_matrix_complex_float(mcfout, mcfdat)
897 assert_array_equal(2 * mcfout.data, mcfdat)
899 assert lal.swig_lal_test_copyinout_gsl_matrix_complex_float(mcf)
900 assert_array_equal(mcf.data, 3 * mcfdat)
902 retn, mcf = lal.swig_lal_test_copyinout_gsl_matrix_complex_float(mcf)
904 assert_array_equal(mcf.data, 3 * mcfdat)
906 retn, mcf = lal.swig_lal_test_copyinout_gsl_matrix_complex_float(mcf)
908 assert_array_equal(mcf, 3 * mcfdat)
913 mcd = lal.gsl_matrix_complex(mcddat.shape[0], mcddat.shape[1])
915 mcdout = lal.gsl_matrix_complex(mcddat.shape[0], mcddat.shape[1])
916 mcdout.data = numpy.zeros(numpy.shape(mcddat), dtype=mcddat.dtype)
917 assert lal.swig_lal_test_viewin_gsl_matrix_complex(mcdout, mcd)
918 assert_array_equal(mcdout.data, mcd.data)
919 mcdout.data = numpy.zeros(numpy.shape(mcddat), dtype=mcddat.dtype)
920 assert lal.swig_lal_test_viewin_gsl_matrix_complex(mcdout, mcddat)
921 assert_array_equal(mcdout.data, mcddat)
922 mcdout.data = numpy.zeros(numpy.shape(mcddat), dtype=mcddat.dtype)
923 assert lal.swig_lal_test_viewinout_gsl_matrix_complex(mcdout, mcd)
924 assert_array_equal(2 * mcdout.data, mcd.data)
925 mcdout.data = numpy.zeros(numpy.shape(mcddat), dtype=mcddat.dtype)
926 assert lal.swig_lal_test_viewinout_gsl_matrix_complex(mcdout, mcddat)
927 assert_array_equal(2 * mcdout.data, mcddat)
929 assert lal.swig_lal_test_copyinout_gsl_matrix_complex(mcd)
930 assert_array_equal(mcd.data, 3 * mcddat)
932 retn, mcd = lal.swig_lal_test_copyinout_gsl_matrix_complex(mcd)
934 assert_array_equal(mcd.data, 3 * mcddat)
936 retn, mcd = lal.swig_lal_test_copyinout_gsl_matrix_complex(mcd)
938 assert_array_equal(mcd, 3 * mcddat)
943 print(
"PASSED input views of numeric array structs (GSL)", file=sys.stderr)
945 def check_input_view_type_safety(f, a, b, expect_exception):
955 r4 = numpy.zeros(10, dtype=numpy.float32)
956 r8 = numpy.zeros(10, dtype=numpy.float64)
957 c8 = numpy.zeros(10, dtype=numpy.complex64)
958 c16 = numpy.zeros(10, dtype=numpy.complex128)
959 check_input_view_type_safety(lal.swig_lal_test_viewinout_REAL4Vector, r4, r4,
False)
960 check_input_view_type_safety(lal.swig_lal_test_viewinout_REAL4Vector, r4, r8,
True)
961 check_input_view_type_safety(lal.swig_lal_test_viewinout_REAL4Vector, r4, c8,
True)
962 check_input_view_type_safety(lal.swig_lal_test_viewinout_REAL4Vector, r4, c16,
True)
963 check_input_view_type_safety(lal.swig_lal_test_viewinout_REAL8Vector, r8, r4,
True)
964 check_input_view_type_safety(lal.swig_lal_test_viewinout_REAL8Vector, r8, r8,
False)
965 check_input_view_type_safety(lal.swig_lal_test_viewinout_REAL8Vector, r8, c8,
True)
966 check_input_view_type_safety(lal.swig_lal_test_viewinout_REAL8Vector, r8, c16,
True)
967 check_input_view_type_safety(
968 lal.swig_lal_test_viewinout_COMPLEX8Vector, c8, r4,
True
970 check_input_view_type_safety(
971 lal.swig_lal_test_viewinout_COMPLEX8Vector, c8, r8,
True
973 check_input_view_type_safety(
974 lal.swig_lal_test_viewinout_COMPLEX8Vector, c8, c8,
False
976 check_input_view_type_safety(
977 lal.swig_lal_test_viewinout_COMPLEX8Vector, c8, c16,
True
979 check_input_view_type_safety(
980 lal.swig_lal_test_viewinout_COMPLEX16Vector, c16, r4,
True
982 check_input_view_type_safety(
983 lal.swig_lal_test_viewinout_COMPLEX16Vector, c16, r8,
True
985 check_input_view_type_safety(
986 lal.swig_lal_test_viewinout_COMPLEX16Vector, c16, c8,
True
988 check_input_view_type_safety(
989 lal.swig_lal_test_viewinout_COMPLEX16Vector, c16, c16,
False
991 check_input_view_type_safety(
992 lal.swig_lal_test_viewinout_gsl_vector_float, r4, r4,
False
994 check_input_view_type_safety(
995 lal.swig_lal_test_viewinout_gsl_vector_float, r4, r8,
True
997 check_input_view_type_safety(
998 lal.swig_lal_test_viewinout_gsl_vector_float, r4, c8,
True
1000 check_input_view_type_safety(
1001 lal.swig_lal_test_viewinout_gsl_vector_float, r4, c16,
True
1003 check_input_view_type_safety(lal.swig_lal_test_viewinout_gsl_vector, r8, r4,
True)
1004 check_input_view_type_safety(lal.swig_lal_test_viewinout_gsl_vector, r8, r8,
False)
1005 check_input_view_type_safety(lal.swig_lal_test_viewinout_gsl_vector, r8, c8,
True)
1006 check_input_view_type_safety(lal.swig_lal_test_viewinout_gsl_vector, r8, c16,
True)
1007 check_input_view_type_safety(
1008 lal.swig_lal_test_viewinout_gsl_vector_complex_float, c8, r4,
True
1010 check_input_view_type_safety(
1011 lal.swig_lal_test_viewinout_gsl_vector_complex_float, c8, r8,
True
1013 check_input_view_type_safety(
1014 lal.swig_lal_test_viewinout_gsl_vector_complex_float, c8, c8,
False
1016 check_input_view_type_safety(
1017 lal.swig_lal_test_viewinout_gsl_vector_complex_float, c8, c16,
True
1019 check_input_view_type_safety(
1020 lal.swig_lal_test_viewinout_gsl_vector_complex, c16, r4,
True
1022 check_input_view_type_safety(
1023 lal.swig_lal_test_viewinout_gsl_vector_complex, c16, r8,
True
1025 check_input_view_type_safety(
1026 lal.swig_lal_test_viewinout_gsl_vector_complex, c16, c8,
True
1028 check_input_view_type_safety(
1029 lal.swig_lal_test_viewinout_gsl_vector_complex, c16, c16,
False
1036 print(
"PASSED input views of numeric array structs (type safety)", file=sys.stderr)
1040 """check FFT functions with input views"""
1041 print(
"check FFT functions with input views ...", file=sys.stderr)
1042 r4in = numpy.array(list(range(0, 32)), dtype=numpy.float32)
1043 r8in = numpy.array(list(range(0, 64)), dtype=numpy.float64)
1044 c8in = numpy.array(numpy.vectorize(complex)(8 + r4in, r4in), dtype=numpy.complex64)
1045 c16in = numpy.array(
1046 numpy.vectorize(complex)(16 + r8in, r8in), dtype=numpy.complex128
1048 c8inv = lal.CreateCOMPLEX8Vector(len(c8in))
1050 c8outv = lal.CreateCOMPLEX8Vector(len(c8in))
1051 plan = lal.CreateForwardCOMPLEX8FFTPlan(len(c8in), 0)
1052 lal.COMPLEX8VectorFFT(c8outv, c8inv, plan)
1053 c8out = numpy.zeros(numpy.shape(c8outv.data), dtype=c8outv.data.dtype)
1054 lal.COMPLEX8VectorFFT(c8out, c8in, plan)
1055 assert_array_equal(c8out, c8outv.data)
1060 c16inv = lal.CreateCOMPLEX16Vector(len(c16in))
1062 c16outv = lal.CreateCOMPLEX16Vector(len(c16in))
1063 plan = lal.CreateForwardCOMPLEX16FFTPlan(len(c16in), 0)
1064 lal.COMPLEX16VectorFFT(c16outv, c16inv, plan)
1065 c16out = numpy.zeros(numpy.shape(c16outv.data), dtype=c16outv.data.dtype)
1066 lal.COMPLEX16VectorFFT(c16out, c16in, plan)
1067 assert_array_equal(c16out, c16outv.data)
1072 r4inv = lal.CreateREAL4Vector(len(r4in))
1074 c8outv = lal.CreateCOMPLEX8Vector(len(r4in) // 2 + 1)
1075 plan = lal.CreateForwardREAL4FFTPlan(len(r4in), 0)
1076 lal.REAL4ForwardFFT(c8outv, r4inv, plan)
1077 c8out = numpy.zeros(numpy.shape(c8outv.data), dtype=c8outv.data.dtype)
1078 lal.REAL4ForwardFFT(c8out, r4in, plan)
1079 assert_array_equal(c8out, c8outv.data)
1084 c8inv = lal.CreateCOMPLEX8Vector(len(c8in))
1086 r4outv = lal.CreateREAL4Vector((len(c8in) - 1) * 2)
1087 plan = lal.CreateReverseREAL4FFTPlan((len(c8in) - 1) * 2, 0)
1088 lal.REAL4ReverseFFT(r4outv, c8inv, plan)
1089 r4out = numpy.zeros(numpy.shape(r4outv.data), dtype=r4outv.data.dtype)
1090 lal.REAL4ReverseFFT(r4out, c8in, plan)
1091 assert_array_equal(r4out, r4outv.data)
1096 r8inv = lal.CreateREAL8Vector(len(r8in))
1098 c16outv = lal.CreateCOMPLEX16Vector(len(r8in) // 2 + 1)
1099 plan = lal.CreateForwardREAL8FFTPlan(len(r8in), 0)
1100 lal.REAL8ForwardFFT(c16outv, r8inv, plan)
1101 c16out = numpy.zeros(numpy.shape(c16outv.data), dtype=c16outv.data.dtype)
1102 lal.REAL8ForwardFFT(c16out, r8in, plan)
1103 assert_array_equal(c16out, c16outv.data)
1108 c16inv = lal.CreateCOMPLEX16Vector(len(c16in))
1110 r8outv = lal.CreateREAL8Vector((len(c16in) - 1) * 2)
1111 plan = lal.CreateReverseREAL8FFTPlan((len(c16in) - 1) * 2, 0)
1112 lal.REAL8ReverseFFT(r8outv, c16inv, plan)
1113 r8out = numpy.zeros(numpy.shape(r8outv.data), dtype=r8outv.data.dtype)
1114 lal.REAL8ReverseFFT(r8out, c16in, plan)
1115 assert_array_equal(r8out, r8outv.data)
1120 r4inv = lal.CreateREAL4Vector(len(r4in))
1122 r4outv = lal.CreateREAL4Vector(len(r4in))
1123 plan = lal.CreateForwardREAL4FFTPlan(len(r4in), 0)
1124 lal.REAL4VectorFFT(r4outv, r4inv, plan)
1125 r4out = numpy.zeros(numpy.shape(r4outv.data), dtype=r4outv.data.dtype)
1126 lal.REAL4VectorFFT(r4out, r4in, plan)
1127 assert_array_equal(r4out, r4outv.data)
1132 r8inv = lal.CreateREAL8Vector(len(r8in))
1134 r8outv = lal.CreateREAL8Vector(len(r8in))
1135 plan = lal.CreateForwardREAL8FFTPlan(len(r8in), 0)
1136 lal.REAL8VectorFFT(r8outv, r8inv, plan)
1137 r8out = numpy.zeros(numpy.shape(r8outv.data), dtype=r8outv.data.dtype)
1138 lal.REAL8VectorFFT(r8out, r8in, plan)
1139 assert_array_equal(r8out, r8outv.data)
1144 r4inv = lal.CreateREAL4Vector(len(r4in))
1146 r4outv = lal.CreateREAL4Vector(len(r4in) // 2 + 1)
1147 plan = lal.CreateForwardREAL4FFTPlan(len(r4in), 0)
1148 lal.REAL4PowerSpectrum(r4outv, r4inv, plan)
1149 r4out = numpy.zeros(numpy.shape(r4outv.data), dtype=r4outv.data.dtype)
1150 lal.REAL4PowerSpectrum(r4out, r4in, plan)
1151 assert_array_equal(r4out, r4outv.data)
1156 r8inv = lal.CreateREAL8Vector(len(r8in))
1158 r8outv = lal.CreateREAL8Vector(len(r8in) // 2 + 1)
1159 plan = lal.CreateForwardREAL8FFTPlan(len(r8in), 0)
1160 lal.REAL8PowerSpectrum(r8outv, r8inv, plan)
1161 r8out = numpy.zeros(numpy.shape(r8outv.data), dtype=r8outv.data.dtype)
1162 lal.REAL8PowerSpectrum(r8out, r8in, plan)
1163 assert_array_equal(r8out, r8outv.data)
1168 print(
"PASSED FFT functions with input views ...", file=sys.stderr)
1172 """check dynamic array of pointers access"""
1173 print(
"checking dynamic array of pointers access ...", file=sys.stderr)
1174 ap = lal.swig_lal_test_Create_arrayofptrs(3)
1175 assert ap.length == 3
1176 for i
in range(0, ap.length):
1177 assert ap.data[i].length == 6
1178 for j
in range(0, ap.data[i].length):
1179 assert ap.data[i].data[j] == 42 * ap.length * i + j
1182 print(
"PASSED dynamic array of pointers access", file=sys.stderr)
1186 """check typemaps for strings and double pointers"""
1187 print(
"checking typemaps for strings and double pointers ...", file=sys.stderr)
1188 sts = lal.swig_lal_test_struct()
1189 ptr_ptr, ptr_null_ptr, null_ptr_ptr = lal.swig_lal_test_typemaps_string_ptrptr(
1190 "abcde",
"",
None, sts, 0,
None
1192 assert ptr_ptr == sts
1193 assert ptr_null_ptr
is not None
1194 assert null_ptr_ptr
is None
1201 for i
in range(1, 10):
1202 ptr_ptr = lal.swig_lal_test_typemaps_ptrptr(ptr_ptr)
1203 assert ptr_ptr
is not None
1204 assert ptr_ptr.n == i
1208 for i
in range(1, 10):
1209 ptr_ptr_list.append(lal.swig_lal_test_typemaps_ptrptr(ptr_ptr_list[-1]))
1210 assert ptr_ptr_list[-1]
is not None
1211 assert ptr_ptr_list[-1].n == i
1212 while len(ptr_ptr_list) > 0:
1213 assert ptr_ptr_list[-1]
is not None
1214 assert ptr_ptr_list[-1].n == i
1218 print(
"PASSED typemaps for strings and double pointers", file=sys.stderr)
1222 """check 'tm' struct conversions"""
1223 print(
"checking 'tm' struct conversions ...", file=sys.stderr)
1225 utc0 = [2011, 5, 11, 16, 57, 49, 2, 131, 0]
1226 assert lal.GPSToUTC(gps0) == tuple(utc0)
1227 assert lal.UTCToGPS(utc0) == gps0
1228 for i
in range(0, 10):
1229 gps = gps0 + i * 86400
1232 utc[6] = (utc[6] + i) % 7
1234 utc[8] = -1 + (i % 3)
1235 assert lal.GPSToUTC(gps)[0:8] == tuple(utc[0:8])
1236 assert lal.UTCToGPS(utc) == gps
1237 utc = lal.GPSToUTC(lal.UTCToGPS(utc))
1238 dt = datetime.datetime(*utc[0:6])
1239 assert utc[6] == dt.weekday()
1241 print(
"PASSED 'tm' struct conversions", file=sys.stderr)
1245 """check LIGOTimeGPS operations"""
1246 print(
"checking LIGOTimeGPS operations ...", file=sys.stderr)
1247 from lal
import LIGOTimeGPS
1252 assert t0 !=
None and not t0
is None
1255 assert not t0
and t1
and t2
1259 assert t1 == t2
and t1 >= t2
and t2 >= t1
1260 assert abs(-t1) == t1
1261 assert float(t1) == 10.5
1266 assert t2 + 5.5 >= t1
and t2 + 3 != t2
1278 assert t1 > t2
and t2 < t1
and t1 >= t2
and t2 <= t1
1282 "-47044285.062262587"
1286 ==
LIGOTimeGPS(
"-914984.929117316") * 7.1502318572066237
1293 ==
LIGOTimeGPS(
"-914984.929117316") / 7.1502318572066237
1296 assert str(t1) ==
"812345678.25"
1297 assert type(eval(repr(t1)))
is type(t1)
1298 assert eval(repr(t1)) == t1
1300 LIGOTimeGPS(1100000000).asutcstr() ==
"Fri, 14 Nov 2014 11:33:04 +0000"
1304 ==
"Fri, 14 Nov 2014 11:33:04.0000001 +0000"
1306 assert LIGOTimeGPS(0, 0).asutcstr() ==
"Sun, 06 Jan 1980 00:00:00 +0000"
1307 assert LIGOTimeGPS(-1, 0).asutcstr() ==
"Sat, 05 Jan 1980 23:59:59 +0000"
1308 assert LIGOTimeGPS(0, -1).asutcstr() ==
"Sat, 05 Jan 1980 23:59:59.999999999 +0000"
1309 assert int(t1) == 812345678
1310 assert t1.ns() == 812345678250000000
1311 assert hash(t1) == 1049484238
1312 t4struct = lal.swig_lal_test_gps()
1314 assert t4struct.t == 1234.5
1318 "*** below should be error messages from LIGOTimeGPS constructor ***",
1326 "*** above should be error messages from LIGOTimeGPS constructor ***",
1329 assert lal.swig_lal_test_noptrgps(
1331 ) == lal.swig_lal_test_noptrgps(1234.5)
1333 "*** below should be error messages from LIGOTimeGPS constructor ***",
1339 "*** above should be error messages from LIGOTimeGPS constructor ***",
1349 print(
"PASSED LIGOTimeGPS operations", file=sys.stderr)
1350 print(
"checking LIGOTimeGPS operations (Python specific) ...", file=sys.stderr)
1353 def __init__(self, s, ns):
1355 self.gpsNanoSeconds = ns
1357 tmy = my_gps_class(987, 654321)
1359 assert type(tsw)
is LIGOTimeGPS
1360 assert tsw.gpsSeconds == 987
1361 assert tsw.gpsNanoSeconds == 654321
1370 assert lal.swig_lal_test_noptrgps(tmy) == lal.swig_lal_test_noptrgps(tsw)
1373 print(
"PASSED LIGOTimeGPS operations (Python specific)", file=sys.stderr)
1377 """check LALUnit operations"""
1378 print(
"checking LALUnit operations ...", file=sys.stderr)
1379 u1 = lal.Unit(
"kg m s^-2")
1380 assert type(lal.Unit(u1))
is lal.Unit
1382 assert str(u1) ==
"m kg s^-2"
1383 u2 = lal.MeterUnit * lal.KiloGramUnit / lal.SecondUnit**2
1385 u2 = lal.MeterUnit ** (1, 2) * lal.KiloGramUnit ** (1, 2) * lal.SecondUnit**-1
1389 lal.SecondUnit ** (1, 0)
1392 assert repr(u1) ==
"m^2 kg s^-2"
1393 u1 /= lal.SecondUnit
1395 assert u1 ==
"m^2 kg s^-3"
1397 assert u1 == lal.KiloUnit * lal.WattUnit
1398 assert u1 == 1000 * lal.WattUnit
1399 assert u1 == lal.WattUnit * 1000
1400 assert u1 == lal.MegaUnit / 1000 * lal.WattUnit
1401 assert int(u1) == 1000
1403 assert u1 == 100 * lal.MilliUnit * lal.WattUnit
1411 assert u1.norm() == u1
1415 print(
"PASSED LALUnit operations", file=sys.stderr)
1419 """check Python non-dynamic structs"""
1420 print(
"checking Python non-dynamic structs", file=sys.stderr)
1421 sts = lal.swig_lal_test_struct()
1428 sts.zzzzz =
"does not exist"
1430 t = lal.LIGOTimeGPS(1234)
1431 t.event =
"this happened"
1434 print(
"PASSED Python non-dynamic structs", file=sys.stderr)
1438 """check Python pickling"""
1439 print(
"checking Python pickling ...", file=sys.stderr)
1453 creator = getattr(lal,
"Create{}FrequencySeries".format(datatype))
1454 a = creator(
"foobar", lal.LIGOTimeGPS(1e9), 0, 1, lal.StrainUnit, 1024)
1455 a.data.data = numpy.arange(1024)
1456 pickled = pickle.dumps(a, 0)
1457 b = pickle.loads(pickled)
1458 assert type(a) == type(b)
1459 assert a.name == b.name
1460 assert a.epoch == b.epoch
1462 assert a.deltaF == b.deltaF
1463 assert a.sampleUnits == b.sampleUnits
1464 assert_array_equal(a.data.data, b.data.data)
1466 creator = getattr(lal,
"Create{}TimeSeries".format(datatype))
1467 a = creator(
"foobar", lal.LIGOTimeGPS(1e9), 0, 1, lal.StrainUnit, 1024)
1468 a.data.data = numpy.arange(1024)
1469 pickled = pickle.dumps(a, 0)
1470 b = pickle.loads(pickled)
1471 assert type(a) == type(b)
1472 assert a.name == b.name
1473 assert a.epoch == b.epoch
1475 assert a.deltaT == b.deltaT
1476 assert a.sampleUnits == b.sampleUnits
1477 assert_array_equal(a.data.data, b.data.data)
1478 print(
"PASSED Python pickling", file=sys.stderr)
1482 """check Python dict to LALDict typemap"""
1483 print(
"checking Python Python dict to LALDict typemap ...", file=sys.stderr)
1485 "str":
"A string value",
1486 "2-byte-unsigned:UINT2": 32767,
1487 "4-byte-unsigned:UINT4": 123456,
1488 "8-byte-unsigned:UINT8": 9223372036854775807,
1489 "2-byte-signed:INT2": -32768,
1490 "4-byte-signed:INT4": -123456,
1491 "8-byte-signed:INT8": 9223372036854775807,
1492 "single:REAL4": 987e6,
1493 "double:REAL8": -543e-21,
1494 "single complex:COMPLEX8": complex(987e6, -123e4),
1495 "double complex:COMPLEX16": complex(-543e-21, 345e43),
1497 laldict = lal.CreateDict()
1498 lal.DictInsertStringValue(laldict,
"str", pydict[
"str"])
1499 lal.DictInsertUINT2Value(
1500 laldict,
"2-byte-unsigned", pydict[
"2-byte-unsigned:UINT2"]
1502 lal.DictInsertUINT4Value(
1503 laldict,
"4-byte-unsigned", pydict[
"4-byte-unsigned:UINT4"]
1505 lal.DictInsertUINT8Value(
1506 laldict,
"8-byte-unsigned", pydict[
"8-byte-unsigned:UINT8"]
1508 lal.DictInsertINT2Value(laldict,
"2-byte-signed", pydict[
"2-byte-signed:INT2"])
1509 lal.DictInsertINT4Value(laldict,
"4-byte-signed", pydict[
"4-byte-signed:INT4"])
1510 lal.DictInsertINT8Value(laldict,
"8-byte-signed", pydict[
"8-byte-signed:INT8"])
1511 lal.DictInsertREAL4Value(laldict,
"single", pydict[
"single:REAL4"])
1512 lal.DictInsertREAL8Value(laldict,
"double", pydict[
"double:REAL8"])
1513 lal.DictInsertCOMPLEX8Value(
1514 laldict,
"single complex", pydict[
"single complex:COMPLEX8"]
1516 lal.DictInsertCOMPLEX16Value(
1517 laldict,
"double complex", pydict[
"double complex:COMPLEX16"]
1519 lal.swig_lal_test_pydict_to_laldict(laldict)
1520 lal.swig_lal_test_pydict_to_laldict(pydict)
1521 print(
"PASSED Python dict to LALDict typemap", file=sys.stderr)
1524@pytest.mark.parametrize(
1525 (
"inputs",
"result"),
1527 ((10, numpy.int16(20), numpy.int32(30), numpy.int64(-40)), 20),
1528 ((numpy.int8(10), numpy.int16(20), numpy.int32(30), numpy.int64(-40)), 20),
1529 ((numpy.int16(10), numpy.int16(20), numpy.int32(30), numpy.int64(-40)), 20),
1530 ((numpy.int32(10), numpy.int16(20), numpy.int32(30), numpy.int64(-40)), 20),
1531 ((numpy.int64(10), numpy.int16(20), numpy.int32(30), numpy.int64(-40)), 20),
1535 """Check conversion of NumPy fixed-width int types."""
1536 assert lal.swig_lal_test_numpy_int_types(*inputs) == result
1539@pytest.mark.parametrize(
1540 (
"inputs",
"result"),
1542 ((10, numpy.uint16(20), numpy.uint32(30), numpy.uint64(40)), 100),
1543 ((numpy.uint8(10), numpy.uint16(20), numpy.uint32(30), numpy.uint64(40)), 100),
1544 ((numpy.uint16(10), numpy.uint16(20), numpy.uint32(30), numpy.uint64(40)), 100),
1545 ((numpy.uint32(10), numpy.uint16(20), numpy.uint32(30), numpy.uint64(40)), 100),
1546 ((numpy.uint64(10), numpy.uint16(20), numpy.uint32(30), numpy.uint64(40)), 100),
1550 """Check conversion of NumPy fixed-width uint types."""
1551 assert lal.swig_lal_test_numpy_uint_types(*inputs) == result
1554@pytest.mark.parametrize(
1555 (
"inputs",
"result"),
1557 ((numpy.int8(10), numpy.int16(20), numpy.int32(30), numpy.int64(-40)), 20),
1558 ((numpy.uint8(10), numpy.uint16(20), numpy.uint32(30), numpy.uint64(40)), 100),
1560 (float(10), numpy.float16(20), numpy.float32(30), numpy.float64(40)),
1566 """Check conversion of NumPy fixed-width float types."""
1567 assert lal.swig_lal_test_numpy_flt_types(*inputs) == result
1570@pytest.mark.parametrize(
1571 (
"inputs",
"result"),
1573 ((numpy.int8(10), numpy.int16(20), numpy.int32(30), numpy.int64(-40)), 20),
1574 ((numpy.uint8(10), numpy.uint16(20), numpy.uint32(30), numpy.uint64(40)), 100),
1576 (float(10), numpy.float16(20), numpy.float32(30), numpy.float64(40)),
1582 numpy.complex64(20),
1583 numpy.complex64(30),
1584 numpy.complex128(40),
1591 """Check conversion of NumPy complex types."""
1592 assert lal.swig_lal_test_numpy_cpx_types(*inputs) == result
1595@pytest.mark.parametrize(
1596 (
"input_",
"result"),
1598 (numpy.int8(123), 123),
1599 (numpy.int16(123), 123),
1600 (numpy.int32(123), 123),
1601 (numpy.int64(123), 123),
1605 """Check conversion of NumPy fixed-width types with LIGOTimeGPS."""
1606 assert int(lal.LIGOTimeGPS(input_)) == result
1609if __name__ ==
"__main__":
1610 args = sys.argv[1:]
or [
"-v",
"-rs",
"--junit-xml=junit-SWIGTestLALPython.xml"]
1611 sys.exit(pytest.main(args=[__file__] + args))
static size_t hash(const char *s)
static double f(double theta, double y, double xi)
def test_Python_pickling()
check Python pickling
def set_nice_error_handlers()
def test_input_views_of_string_array_structs()
check input views of string array structs
def test_conversion_of_numpy_fixed_width_types_ligotimegps(input_, result)
Check conversion of NumPy fixed-width types with LIGOTimeGPS.
def test_LIGOTimeGPS_operations()
check LIGOTimeGPS operations
def set_default_error_handlers()
def catch_errors(*args, **kwargs)
def test_conversion_of_numpy_fixed_width_types_cpx(inputs, result)
Check conversion of NumPy complex types.
def is_value_and_type(x, v, t)
def test_string_conversions()
check string conversions
def test_fixed_and_dynamic_arrays_typemaps()
check fixed and dynamic arrays typemaps
def test_memory_allocation()
check memory allocation
def test_LALUnit_operations()
check LALUnit operations
def test_dynamic_vector_matrix_conversions()
check dynamic vector/matrix conversions
def test_object_parent_tracking()
check object parent tracking
def test_conversion_of_numpy_fixed_width_types_int(inputs, result)
Check conversion of NumPy fixed-width int types.
def test_equal_return_first_argument_type_handling()
check equal return/first argument type handling
def test_dynamic_array_of_pointers_access()
check dynamic array of pointers access
def test_Python_dict_to_LALDict_typemap()
check Python dict to LALDict typemap
def test_Python_non_dynamic_structs()
check Python non-dynamic structs
def test_static_vector_matrix_conversions()
check static vector/matrix conversions
def test_input_views_of_numeric_array_structs()
check input views of numeric array structs
def test_tm_struct_conversions()
check 'tm' struct conversions
def test_conversion_of_numpy_fixed_width_types_uint(inputs, result)
Check conversion of NumPy fixed-width uint types.
def test_typemaps_for_strings_and_double_pointers()
check typemaps for strings and double pointers
def test_conversion_of_numpy_fixed_width_types_flt(inputs, result)
Check conversion of NumPy fixed-width float types.
def test_FFT_functions_with_input_views()
check FFT functions with input views
Epoch relative to GPS epoch, see LIGOTimeGPS type for more details.