def test_unsupported_type(self, tmp_path): s = self.s s.metadata.set_item('test', Point2DROI(1, 2)) fname = tmp_path / 'test.hspy' s.save(fname) l = load(fname) assert 'test' not in l.metadata
def test_repr_vals(self): repr(Point1DROI(1.1)) repr(Point2DROI(1.1, 2.1)) repr(Line2DROI(0, 0, 1, 1, 0.1)) repr(RectangularROI(0, 0, 1, 1)) repr(SpanROI(3., 5.)) repr(CircleROI(5, 5, 3)) repr(CircleROI(5, 5, 3, 1))
def test_point2d_image(self): s = self.s_i r = Point2DROI(35, 40) sr = r(s) scale = s.axes_manager[0].scale nt.assert_equal(sr.axes_manager.navigation_shape, s.axes_manager.navigation_shape[2:]) np.testing.assert_equal(sr.data, s.data[int(40 / scale), int(35 / scale), ...])
def test_point2d_image_sig(self): s = self.s_i r = Point2DROI(1, 2) sr = r(s, axes=s.axes_manager.signal_axes) scale = s.axes_manager.signal_axes[0].scale assert (sr.axes_manager.signal_shape == s.axes_manager.signal_shape[2:]) np.testing.assert_equal( sr.data, s.data[..., int(2 / scale), int(1 / scale)])
def _get_rois(self, signal): rois = [] if self.have_selection(signal): if self.ndim(signal) == 1: if self.ranged: roi_template = SpanROI(0, 1) else: roi_template = Point1DROI(0) elif self.ndim(signal) > 1: if self.ranged: roi_template = RectangularROI(0, 0, 1, 1) else: roi_template = Point2DROI(0, 0) for w in self.widgets[signal]: roi = copy.deepcopy(roi_template) # ROI gets coords from widget: roi._on_widget_change(w) rois.append(roi) return rois
def accept(self): if self.is_on(): if self.ndim == 1: if self.ranged: roi = SpanROI(0, 1) else: roi = Point1DROI(0) elif self.ndim > 1: if self.ranged: roi = RectangularROI(0, 0, 1, 1) else: roi = Point2DROI(0, 0) else: raise RuntimeWarning("No figure could be found.") return roi._on_widget_change(self.widget) # ROI gets coords from widget self.accepted[BaseInteractiveROI].emit(roi) self.accepted[BaseInteractiveROI, SignalFigureTool].emit(roi, self) if self.cancel_on_accept: self.cancel()
def test_unsupported_type(self, tmpfilepath): s = self.s s.metadata.set_item('test', Point2DROI(1, 2)) s.save(tmpfilepath) l = load(tmpfilepath + ".hspy") assert 'test' not in l.metadata
def test_point2d_getitem(self): r = Point2DROI(1, 2) assert tuple(r) == (1, 2)
def test_unsupported_type(self): s = self.s s.metadata.set_item('test', Point2DROI(1, 2)) s.save('tmp.hdf5', overwrite=True) l = load('tmp.hdf5') nt.assert_not_in('test', l.metadata)
def test_interactive_snap(self, snap): kwargs = {} if snap != 'default': kwargs['snap'] = snap else: # default is True snap = True s = self.s r = RectangularROI(left=3, right=7, top=2, bottom=5) s.plot() _ = r.interactive(s, **kwargs) for w in r.widgets: old_position = w.position new_position = (3.25, 2.2) w.position = new_position assert w.position == old_position if snap else new_position assert w.snap_all == snap assert w.snap_position == snap assert w.snap_size == snap p1 = Point1DROI(4) _ = p1.interactive(s, **kwargs) for w in p1.widgets: old_position = w.position new_position = (4.2, ) w.position = new_position assert w.position == old_position if snap else new_position assert w.snap_position == snap p2 = Point2DROI(4, 5) _ = p2.interactive(s, **kwargs) for w in p2.widgets: old_position = w.position new_position = (4.3, 5.3) w.position = new_position assert w.position == old_position if snap else new_position assert w.snap_position == snap span = SpanROI(4.01, 5) _ = span.interactive(s, **kwargs) for w in span.widgets: old_position = w.position new_position = (4.2, ) w.position = new_position assert w.position == old_position if snap else new_position assert w.snap_all == snap assert w.snap_position == snap assert w.snap_size == snap # check that changing snap is working fine new_snap = not snap w.snap_all = new_snap old_position = w.position new_position = (4.2, ) w.position = new_position assert w.position == old_position if new_snap else new_position line2d = Line2DROI(4, 5, 6, 6, 1) _ = line2d.interactive(s, **kwargs) for w in line2d.widgets: old_position = w.position new_position = ([4.3, 5.3], [6.0, 6.0]) w.position = new_position assert w.position == old_position if snap else new_position assert w.snap_all == snap assert w.snap_position == snap assert w.snap_size == snap