@@ -27,6 +27,20 @@ def test_Detector_bincount_drops_out_of_range_ids() -> None:
27
27
)
28
28
29
29
30
+ def test_Detector_bincount_raises_if_detector_number_not_sorted () -> None :
31
+ detector_number = sc .array (dims = ['pixel' ], values = [1 , 3 , 2 ], unit = None )
32
+ det = raw .Detector (detector_number )
33
+ with pytest .raises (ValueError , match = "sorted" ):
34
+ det .bincount ([1 ])
35
+
36
+
37
+ def test_Detector_bincount_raises_if_detector_number_not_consecutive () -> None :
38
+ detector_number = sc .array (dims = ['pixel' ], values = [1 , 2 , 4 ], unit = None )
39
+ det = raw .Detector (detector_number )
40
+ with pytest .raises (ValueError , match = "consecutive" ):
41
+ det .bincount ([1 ])
42
+
43
+
30
44
def test_RollingDetectorView_full_window () -> None :
31
45
detector_number = sc .array (dims = ['pixel' ], values = [1 , 2 , 3 ], unit = None )
32
46
det = raw .RollingDetectorView (detector_number = detector_number , window = 2 )
@@ -43,6 +57,26 @@ def test_RollingDetectorView_full_window() -> None:
43
57
assert det .get ().sum ().value == 2
44
58
45
59
60
+ def test_RollingDetectorView_add_events_accepts_unsorted_detector_number () -> None :
61
+ detector_number = sc .array (dims = ['detector_number' ], values = [1 , 3 , 2 ], unit = None )
62
+ det = raw .RollingDetectorView (detector_number = detector_number , window = 2 )
63
+ pixel = sc .array (dims = ['event' ], values = [1 , 2 , 3 , 2 ], unit = None )
64
+ events = sc .DataArray (sc .ones_like (pixel ), coords = {'detector_number' : pixel })
65
+ det .add_events (events .group (detector_number ))
66
+ assert det .get ().sum ().value == 4
67
+
68
+
69
+ def test_RollingDetectorView_add_events_accepts_non_consecutive_detector_number () -> (
70
+ None
71
+ ):
72
+ detector_number = sc .array (dims = ['detector_number' ], values = [1 , 2 , 4 ], unit = None )
73
+ det = raw .RollingDetectorView (detector_number = detector_number , window = 2 )
74
+ pixel = sc .array (dims = ['event' ], values = [1 , 2 , 4 , 2 ], unit = None )
75
+ events = sc .DataArray (sc .ones_like (pixel ), coords = {'detector_number' : pixel })
76
+ det .add_events (events .group (detector_number ))
77
+ assert det .get ().sum ().value == 4
78
+
79
+
46
80
def test_RollingDetectorView_partial_window () -> None :
47
81
detector_number = sc .array (dims = ['pixel' ], values = [1 , 2 , 3 ], unit = None )
48
82
det = raw .RollingDetectorView (detector_number = detector_number , window = 3 )
0 commit comments