16"""Regression tests for the SimInspiralSpinTaylorOrbitalDriver() function of
17lalsimulation/src/LALSimInspiralSpinTaylor.c.
22from pathlib
import Path
29import lalsimulation
as lalsim
31DEFAULT_FILE = Path(__file__).parent /
'reviewed_evolveorbit.ini'
32NEW_DATA_STR =
'######### NEW DATASET #############'
35def _format_dataset(dataset):
36 parameters = dataset[
'parameters']
37 spindata = dataset[
'spin-data']
40 (spindata[
"spin1x"], spindata[
"spin1y"], spindata[
"spin1z"]),
41 (spindata[
"spin2x"], spindata[
"spin2y"], spindata[
"spin2z"]),
44 return pytest.param(*dataset, id=parameters[
'approximant'])
45 except AttributeError:
49 with open(str(filename),
"r")
as file:
51 for line
in map(str.strip, file):
54 if line == NEW_DATA_STR:
56 yield _format_dataset(dataset)
59 elif line.startswith(
"["):
60 section = line.strip(
"[]")
64 (key, val) = map(str.strip, line.split(
'=', 1))
65 if section ==
"spin-data":
66 val = np.fromstring(val, dtype=float, sep=
" ")
67 dataset[section][key] = val
69 yield _format_dataset(dataset)
72@pytest.mark.parametrize(
77 """Regression test for lalsim.SimInspiralSpinTaylorPNEvolveOrbit.
80 lal_pars = lal.CreateDict()
81 lalsim.SimInspiralWaveformParamsInsertPNPhaseOrder(lal_pars, int(pars[
"phaseO"]))
82 lalsim.SimInspiralWaveformParamsInsertPNSpinOrder(lal_pars, int(pars[
"spinO"]))
83 lalsim.SimInspiralWaveformParamsInsertPNTidalOrder(lal_pars, int(pars[
"tidalO"]))
85 approx = lalsim.SimInspiralGetApproximantFromString(pars[
'approximant'])
86 out = lalsim.SimInspiralSpinTaylorOrbitalDriver(
87 float(pars[
'phiref']),
88 float(pars[
'deltaT']),
89 float(pars[
'm1']) * lal.MSUN_SI,
90 float(pars[
'm2']) * lal.MSUN_SI,
91 float(pars[
'fstart']),
99 float(pars[
'lnhatx']),
100 float(pars[
'lnhaty']),
101 float(pars[
'lnhatz']),
111 for spinin, spinout
in (
116 np.testing.assert_allclose(
117 spinout[i].data.data,
119 err_msg=
"{} test failed.".format(approx),
124if __name__ ==
'__main__':
125 args = sys.argv[1:]
or [
"-v",
"-rs",
"--junit-xml=junit-spintaylor-evolveorbit.xml"]
126 sys.exit(pytest.main(args=[__file__] + args))
def test_spintaylor_pnevolveorbit(pars, S1, S2)
Regression test for lalsim.SimInspiralSpinTaylorPNEvolveOrbit.
def iter_datasets_from_config(filename)