Skip to content

Commit d86c51e

Browse files
Add tests
1 parent 89f8e92 commit d86c51e

1 file changed

Lines changed: 83 additions & 0 deletions

File tree

hendrics/tests/test_parallel.py

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
import subprocess as sp
2+
import tempfile
3+
import numpy as np
4+
from stingray import EventList, AveragedPowerspectrum
5+
from hendrics.fake import main as main_fake
6+
from hendrics.parallel import main as main_parallel
7+
8+
9+
class TestParallel:
10+
def setup_class(cls):
11+
cls.tempfile = tempfile.NamedTemporaryFile(suffix=".fits", delete=False)
12+
cls.fname = cls.tempfile.name
13+
print(cls.fname)
14+
15+
main_fake(["-o", cls.fname, "-c", "10", "--tstart", "0", "--tstop", "10000"])
16+
cls.events = EventList.read(cls.fname, fmt="ogip")
17+
cls.pds = AveragedPowerspectrum.from_events(
18+
cls.events, dt=0.1, segment_size=10.0, use_common_mean=False, norm="leahy"
19+
)
20+
21+
def test_none_version(self):
22+
out_file = tempfile.NamedTemporaryFile(suffix=".hdf5", delete=False)
23+
main_parallel(
24+
[
25+
self.fname,
26+
"-o",
27+
out_file.name,
28+
"-b",
29+
"0.1",
30+
"-f",
31+
"10.0",
32+
"--method",
33+
"none",
34+
]
35+
)
36+
pds = AveragedPowerspectrum.read(out_file.name)
37+
assert pds.m == self.pds.m
38+
assert np.allclose(pds.freq, self.pds.freq)
39+
assert np.allclose(pds.power, self.pds.power, rtol=1e-6)
40+
41+
def test_multiprocessing_version(self):
42+
out_file = tempfile.NamedTemporaryFile(suffix=".hdf5", delete=False)
43+
main_parallel(
44+
[
45+
self.fname,
46+
"-o",
47+
out_file.name,
48+
"-b",
49+
"0.1",
50+
"-f",
51+
"10.0",
52+
"--method",
53+
"multiprocessing",
54+
]
55+
)
56+
pds = AveragedPowerspectrum.read(out_file.name)
57+
assert pds.m == self.pds.m
58+
assert np.allclose(pds.freq, self.pds.freq)
59+
assert np.allclose(pds.power, self.pds.power, rtol=1e-4)
60+
61+
def test_mpi_version(self):
62+
out_file = tempfile.NamedTemporaryFile(suffix=".hdf5", delete=False)
63+
sp.check_call(
64+
[
65+
"mpirun",
66+
"-n",
67+
"4",
68+
"HENparfspec",
69+
self.fname,
70+
"-o",
71+
out_file.name,
72+
"-b",
73+
"0.1",
74+
"-f",
75+
"10.0",
76+
"--method",
77+
"mpi",
78+
]
79+
)
80+
pds = AveragedPowerspectrum.read(out_file.name)
81+
assert pds.m == self.pds.m
82+
assert np.allclose(pds.freq, self.pds.freq)
83+
assert np.allclose(pds.power, self.pds.power, rtol=1e-4)

0 commit comments

Comments
 (0)