24 from pathlib
import Path
25except ImportError
as exc:
28 warnings.warn(
str(exc))
34 testfilename =
"V1_mfdv5_20191114_043831.SFDB09"
36 startTime = 1257741529
44 TEST_PATH = Path(os.getenv(
"LAL_TEST_SRCDIR", Path(__file__).parent)).absolute()
45 sfdb_file =
str(TEST_PATH / testfilename)
48 multi_sfts_from_sfdb = lalpulsar.ReadSFDB(
51 file_pattern=sfdb_file,
52 timeStampsStarting=
None,
53 timeStampsFinishing=
None,
55 print(
"Got SFTs for {:d} detectors from SFDBs.".
format(multi_sfts_from_sfdb.length))
56 assert multi_sfts_from_sfdb.length == len(IFOs)
57 sfts_from_sfdb = multi_sfts_from_sfdb.data[0]
58 nSFTs = sfts_from_sfdb.length
60 "Got {:d} SFTs for {:s} from SFDBs.".
format(nSFTs, sfts_from_sfdb.data[0].name)
63 for k, sft
in enumerate(sfts_from_sfdb.data):
64 print(
"SFT {:d}/{:d}: epoch={:d}".
format(k, nSFTs, sft.epoch.gpsSeconds))
67 nBins = sft.data.length
68 absval = np.abs(sft.data.data)
69 maxabs = np.max(absval)
70 maxbin = np.argmax(absval)
71 maxfreq = f0 + deltaF * maxbin
74 print(
"f0 SFDB: {}".
format(f0))
75 print(
"df SFDB: {}".
format(deltaF))
76 print(
"nBins SFDB: {}".
format(nBins))
78 "max abs value {:.4e} at freq[{:d}]={:.6f} (expected signal frequency: {:.6f})".
format(
79 maxabs, maxbin, maxfreq, signal_freq
85 assert sft.name == IFOs[0]
87 assert abs(deltaF - 1.0 / Tsft) < 1e-16
88 assert nBins == 2 * Tsft + 1
89 assert maxbin == maxbin0
90 assert abs(maxfreq - signal_freq) < 4 * deltaF
93if __name__ ==
"__main__":
94 args = sys.argv[1:]
or [
"-v",
"-rs",
"--junit-xml=junit-ReadSFDB.xml"]
95 sys.exit(pytest.main(args=[__file__] + args))