class Shapes2DSuite: """Benchmarks for the Shapes layer with 2D data""" params = [2**i for i in range(4, 9)] def setup(self, n): np.random.seed(0) self.data = [50 * np.random.random((6, 2)) for i in range(n)] self.layer = Shapes(self.data, shape_type='polygon') def time_create_layer(self, n): """Time to create an image layer.""" layer = Shapes(self.data, shape_type='polygon') def time_set_view_slice(self, n): """Time to set view slice.""" self.layer._set_view_slice() def time_update_thumbnail(self, n): """Time to update thumbnail.""" self.layer._update_thumbnail() def time_get_value(self, n): """Time to get current value.""" self.layer.get_value() def mem_layer(self, n): """Memory used by layer.""" return self.layer def mem_data(self, n): """Memory used by raw data.""" return self.data
def test_value(): """Test getting the value of the data at the current coordinates.""" shape = (10, 4, 2) np.random.seed(0) data = 20 * np.random.random(shape) data[-1, :] = [[0, 0], [0, 10], [10, 0], [10, 10]] layer = Shapes(data) value = layer.get_value((0, 0)) assert value == (9, None) layer.mode = 'select' layer.selected_data = [9] value = layer.get_value((0, 0)) assert value == (9, 7) layer = Shapes(data + 5) value = layer.get_value((0, 0)) assert value == (None, None)