def test_slice_data(): data = [ (10, 2, 4), (10 + 2 * 1e-7, 4, 6), (8, 1, 7), (10.1, 7, 2), (10 - 2 * 1e-7, 1, 6), ] layer = Points(data) assert len(layer._slice_data((8, slice(None), slice(None)))[0]) == 1 assert len(layer._slice_data((10, slice(None), slice(None)))[0]) == 3 assert (len( layer._slice_data((10 + 2 * 1e-12, slice(None), slice(None)))[0]) == 3) assert len(layer._slice_data((10.1, slice(None), slice(None)))[0]) == 1
class PointsSlicingSuite: """Benchmarks for slicing the Points layer with 3D data.""" params = [True, False] def setup(self, flatten_slice_axis): np.random.seed(0) self.data = np.random.uniform(size=(20_000_000, 3), low=0, high=500) if flatten_slice_axis: self.data[:, 0] = np.round(self.data[:, 0]) self.layer = Points(self.data) self.slice = np.s_[249, :, :] def time_slice_points(self, flatten_slice_axis): """Time to take one slice of points""" self.layer._slice_data(self.slice)