|
18 | 18 | 'hostname': 'sn176.localdomain', |
19 | 19 | 'write_count': 1, |
20 | 20 | 'read_count': 0, |
21 | | - 'write_segments': [{'offset': 0, |
22 | | - 'length': 40, |
23 | | - 'start_time': 0.10337884305045009, |
24 | | - 'end_time': 0.10338771319948137}], |
25 | | - 'read_segments': []}), |
| 21 | + 'write_segments': np.array([(0, |
| 22 | + 40, |
| 23 | + 0.10337884305045009, |
| 24 | + 0.10338771319948137)], |
| 25 | + dtype=[("offset", int), |
| 26 | + ("length", int), |
| 27 | + ("start_time", float), |
| 28 | + ("end_time", float)]), |
| 29 | + 'read_segments': np.array([], |
| 30 | + dtype=[("offset", int), |
| 31 | + ("length", int), |
| 32 | + ("start_time", float), |
| 33 | + ("end_time", float)])}), |
26 | 34 | ('DXT_MPIIO', {'id': 9457796068806373448, |
27 | 35 | 'rank': 0, |
28 | 36 | 'hostname': 'sn176.localdomain', |
29 | 37 | 'write_count': 1, |
30 | 38 | 'read_count': 0, |
31 | | - 'write_segments': [{'offset': 0, |
32 | | - 'length': 4000, |
33 | | - 'start_time': 0.10368914622813463, |
34 | | - 'end_time': 0.1053433942142874}], |
35 | | - 'read_segments': []})]) |
| 39 | + 'write_segments': np.array([(0, |
| 40 | + 4000, |
| 41 | + 0.10368914622813463, |
| 42 | + 0.1053433942142874)], |
| 43 | + dtype=[("offset", int), |
| 44 | + ("length", int), |
| 45 | + ("start_time", float), |
| 46 | + ("end_time", float)]), |
| 47 | + 'read_segments': np.array([], |
| 48 | + dtype=[("offset", int), |
| 49 | + ("length", int), |
| 50 | + ("start_time", float), |
| 51 | + ("end_time", float)])})]) |
36 | 52 | def test_dxt_records(logfile, mod, expected_dict): |
37 | | - # regression guard for DXT records values |
| 53 | + # regression guard for DXT records values; |
38 | 54 | # write_segments and read_segments are now NumPy |
39 | 55 | # recarrays, to save considerable memory |
40 | 56 | # per gh-779 |
41 | | - # TODO: refactor for simplicity--we can probably |
42 | | - # just initialize the expected values via |
43 | | - # np.array() with the appropriate structured dtypes |
44 | | - expected_write_segs = np.recarray(1, dtype=[("offset", int), |
45 | | - ("length", int), |
46 | | - ("start_time", float), |
47 | | - ("end_time", float)]) |
48 | | - expected_read_segs = np.recarray(1, dtype=[("offset", int), |
49 | | - ("length", int), |
50 | | - ("start_time", float), |
51 | | - ("end_time", float)]) |
52 | | - if expected_dict["write_segments"]: |
53 | | - expected_write_segs.offset = expected_dict["write_segments"][0]["offset"] |
54 | | - expected_write_segs.length = expected_dict["write_segments"][0]["length"] |
55 | | - expected_write_segs.start_time = expected_dict["write_segments"][0]["start_time"] |
56 | | - expected_write_segs.end_time = expected_dict["write_segments"][0]["end_time"] |
57 | | - else: |
58 | | - expected_write_segs = np.recarray(0, dtype=[("offset", int), |
59 | | - ("length", int), |
60 | | - ("start_time", float), |
61 | | - ("end_time", float)]) |
62 | | - if expected_dict["read_segments"]: |
63 | | - expected_read_segs.offset = expected_dict["read_segments"][0]["offset"] |
64 | | - expected_read_segs.length = expected_dict["read_segments"][0]["length"] |
65 | | - expected_read_segs.start_time = expected_dict["read_segments"][0]["start_time"] |
66 | | - expected_read_segs.end_time = expected_dict["read_segments"][0]["end_time"] |
67 | | - else: |
68 | | - expected_read_segs = np.recarray(0, dtype=[("offset", int), |
69 | | - ("length", int), |
70 | | - ("start_time", float), |
71 | | - ("end_time", float)]) |
72 | | - expected_dict["write_segments"] = expected_write_segs |
73 | | - expected_dict["read_segments"] = expected_read_segs |
74 | | - |
75 | 57 | logfile = get_log_path(logfile) |
76 | 58 | log = backend.log_open(logfile) |
77 | 59 | rec = backend.log_get_record(log, mod) |
78 | 60 | for key in expected_dict.keys(): |
79 | 61 | if "segments" in key: |
80 | 62 | # careful, can't use assert_allclose directly |
81 | 63 | # on recarrays |
82 | | - assert_allclose(rec[key].offset, expected_dict[key].offset) |
83 | | - assert_allclose(rec[key].length, expected_dict[key].length) |
84 | | - assert_allclose(rec[key].start_time, expected_dict[key].start_time) |
85 | | - assert_allclose(rec[key].end_time, expected_dict[key].end_time) |
| 64 | + assert_allclose(rec[key]["offset"], expected_dict[key]["offset"]) |
| 65 | + assert_allclose(rec[key]["length"], expected_dict[key]["length"]) |
| 66 | + assert_allclose(rec[key]["start_time"], expected_dict[key]["start_time"]) |
| 67 | + assert_allclose(rec[key]["end_time"], expected_dict[key]["end_time"]) |
86 | 68 | else: |
87 | 69 | assert rec[key] == expected_dict[key] |
0 commit comments