@@ -10,17 +10,27 @@ def test_get_dataset(nexus_entries):
10
10
scan0034 = nexus_entries ["scan0034" ]
11
11
assert scan0034 .get ("definition" ) == "NXtas"
12
12
assert scan0034 .get ("title" ) == "scan_title_34"
13
- assert np .allclose (scan0034 .get ("a2" ), np .array ([242.0 , 242.1 , 242.2 ]))
13
+ assert np .allclose (
14
+ scan0034 .get ("a2" ),
15
+ np .array ([242.0 , 242.1 , 242.2 ]),
16
+ )
14
17
assert scan0034 .get ("data" , ATTRS = True ) == {
15
18
"EX_required" : "true" ,
16
19
"NX_class" : "NXdata" ,
17
- "axes" : "en " ,
20
+ "axes" : "a1 " ,
18
21
"signal" : "detector" ,
19
22
}
20
23
assert scan0034 .get ("a3" ) is None
21
24
assert scan0034 .get ("detector" ) is None
22
- assert scan0034 .get ("detector/data" , ATTRS = True ) == {"EX_required" : "true" , "type" : "NX_INT" , "units" : "counts" }
23
- assert np .allclose (scan0034 .get ("instrument/analyser/a2" ), np .array ([242.0 , 242.1 , 242.2 ]))
25
+ assert scan0034 .get ("detector/data" , ATTRS = True ) == {
26
+ "EX_required" : "true" ,
27
+ "type" : "NX_INT" ,
28
+ "units" : "counts" ,
29
+ }
30
+ assert np .allclose (
31
+ scan0034 .get ("instrument/analyser/a2" ),
32
+ np .array ([242.0 , 242.1 , 242.2 ]),
33
+ )
24
34
25
35
scan0035 = nexus_entries ["scan0035" ]
26
36
assert scan0035 .get ("title" ) == "scan_title_35"
@@ -36,24 +46,37 @@ def test_to_nexus(nexus_entries):
36
46
assert nexus_file ["scan0034" ].attrs ["NX_class" ] == "NXentry"
37
47
38
48
39
- def test_from_nexus ():
49
+ def test_from_nexus (nexus_entries ):
40
50
path_to_nexus_entry = "./test_data/scan_to_nexus_test.h5"
41
- nexus_entries = NexusEntry .from_nexus (path_to_nexus_entry )
42
- scan0034 = nexus_entries ["scan0034" ]
43
- assert scan0034 .get ("definition" ) == "NXtas"
51
+ entries = NexusEntry .from_nexus (path_to_nexus_entry )
52
+
53
+ scan0034 = entries ["scan0034" ]
54
+ assert scan0034 ["definition" ] == nexus_entries ["scan0034" ]["definition" ]
55
+ assert np .allclose (
56
+ scan0034 ["instrument" ]["analyser" ]["a2" ]["dataset" ],
57
+ nexus_entries ["scan0034" ]["instrument" ]["analyser" ]["a2" ]["dataset" ],
58
+ )
44
59
assert np .allclose (scan0034 .get ("a2" ), np .array ([242.0 , 242.1 , 242.2 ]))
45
60
assert scan0034 .get ("data" , ATTRS = True ) == {
46
61
"EX_required" : "true" ,
47
62
"NX_class" : "NXdata" ,
48
- "axes" : "en " ,
63
+ "axes" : "a1 " ,
49
64
"signal" : "detector" ,
50
65
}
51
66
assert scan0034 .get ("a3" ) is None
52
- assert scan0034 .get ("detector" ) is None
53
- assert scan0034 .get ("detector/data" , ATTRS = True ) == {"EX_required" : "true" , "type" : "NX_INT" , "units" : "counts" }
54
- assert np .allclose (scan0034 .get ("instrument/analyser/a2" ), np .array ([242.0 , 242.1 , 242.2 ]))
67
+ assert np .allclose (scan0034 .get ("detector" ), np .array ([1 , 2 , 3 ]))
68
+ assert scan0034 .get ("detector/data" , ATTRS = True ) == {
69
+ "EX_required" : "true" ,
70
+ "type" : "NX_INT" ,
71
+ "units" : "counts" ,
72
+ "target" : "/scan0034/instrument/detector/data" ,
73
+ }
74
+ assert np .allclose (
75
+ scan0034 .get ("instrument/analyser/a2" ),
76
+ np .array ([242.0 , 242.1 , 242.2 ]),
77
+ )
55
78
56
- scan0035 = nexus_entries ["scan0035" ]
79
+ scan0035 = entries ["scan0035" ]
57
80
assert scan0035 .get ("title" ) == "scan_title_35"
58
81
59
82
@@ -73,19 +96,27 @@ def test_from_nexus_IPTS32124_CG4C_exp0424():
73
96
assert np .allclose (scan0034 .get ("s1" )[0 :3 ], [36.14 , 36.5025 , 36.855 ])
74
97
75
98
76
- def test_from_spice_IPTS32124_CG4C_exp0424 ():
99
+ def test_from_spice_IPTS32124_CG4C_exp0424_single_scan ():
77
100
path_to_spice_entry = "./test_data/exp424"
78
- nexus_entries = NexusEntry .from_spice (path_to_spice_entry , 34 )
101
+ scan0034 = NexusEntry .from_spice (path_to_spice_entry , 34 )[ "scan0034" ]
79
102
80
- path_to_nexus_entry = "./test_data/spice_to_nexus_test_scan34.h5 "
81
- for scan_num , nexus_entry in nexus_entries . items ():
82
- nexus_entry . to_nexus ( path_to_nexus_entry , scan_num )
103
+ assert scan0034 . get ( "definition" ) == "NXtas "
104
+ assert scan0034 . get ( "end_time" ) == "2024-07-03T02:41:28"
105
+ assert np . allclose ( scan0034 . get ( "s1" )[ 0 : 3 ], np . array ([ 36.14 , 36.5025 , 36.855 ]) )
83
106
84
- scan0034 = NexusEntry .from_nexus (path_to_nexus_entry , 34 )["scan0034" ]
85
107
108
+ def test_from_spice_IPTS32124_CG4C_exp0424_all_scan ():
109
+ path_to_spice_entry = "./test_data/exp424"
110
+ scans = NexusEntry .from_spice (path_to_spice_entry )
111
+
112
+ scan0034 = scans ["scan0034" ]
86
113
assert scan0034 .get ("definition" ) == "NXtas"
87
114
assert scan0034 .get ("end_time" ) == "2024-07-03T02:41:28"
88
- # assert np.allclose(scan0034.get("s1")[0:3], np.array([36.14, 36.5025, 36.855]))
115
+ assert np .allclose (scan0034 .get ("s1" )[0 :3 ], np .array ([36.14 , 36.5025 , 36.855 ]))
116
+
117
+ # scan 41 contains only one data point
118
+ scan0041 = scans ["scan0041" ]
119
+ assert scan0041 .get ("Pt." ) == 3
89
120
90
121
91
122
def test_get_from_daslogs ():
@@ -132,6 +163,7 @@ def nexus_entries():
132
163
"attrs" : {"EX_required" : "true" , "NX_class" : "NXdetector" },
133
164
"data" : {
134
165
"attrs" : {"EX_required" : "true" , "type" : "NX_INT" , "units" : "counts" },
166
+ "dataset" : np .array ([1 , 2 , 3 ]),
135
167
},
136
168
}
137
169
@@ -169,7 +201,7 @@ def nexus_entries():
169
201
"attrs" : {
170
202
"EX_required" : "true" ,
171
203
"NX_class" : "NXdata" ,
172
- "axes" : "en " ,
204
+ "axes" : "a1 " ,
173
205
"signal" : "detector" ,
174
206
}
175
207
},
0 commit comments