def test_edge_color(): """Test setting edge color.""" shape = (10, 4, 2) np.random.seed(0) data = 20 * np.random.random(shape) layer = Shapes(data) assert layer.current_edge_color == 'black' assert len(layer.edge_color) == shape[0] assert layer.edge_color == ['black'] * shape[0] # With no data selected changing edge color has no effect layer.current_edge_color = 'blue' assert layer.current_edge_color == 'blue' assert layer.edge_color == ['black'] * shape[0] # Select data and change edge color of selection layer.selected_data = [0, 1] assert layer.current_edge_color == 'black' layer.current_edge_color = 'green' assert layer.edge_color == ['green'] * 2 + ['black'] * (shape[0] - 2) # Add new shape and test its color new_shape = np.random.random((1, 4, 2)) layer.selected_data = [] layer.current_edge_color = 'blue' layer.add(new_shape) assert len(layer.edge_color) == shape[0] + 1 assert layer.edge_color == ['green'] * 2 + ['black'] * (shape[0] - 2) + [ 'blue' ] # Instantiate with custom edge color layer = Shapes(data, edge_color='red') assert layer.current_edge_color == 'red' # Instantiate with custom edge color list col_list = ['red', 'green'] * 5 layer = Shapes(data, edge_color=col_list) assert layer.current_edge_color == 'black' assert layer.edge_color == col_list # Add new point and test its color layer.current_edge_color = 'blue' layer.add(new_shape) assert len(layer.edge_color) == shape[0] + 1 assert layer.edge_color == col_list + ['blue'] # Check removing data adjusts colors correctly layer.selected_data = [0, 2] layer.remove_selected() assert len(layer.data) == shape[0] - 1 assert len(layer.edge_color) == shape[0] - 1 assert layer.edge_color == [col_list[1]] + col_list[3:] + ['blue']
def test_shape_controls_edge_color(qtbot): """Check updating of edge color updates QtShapesControls.""" layer = Shapes(_SHAPES) qtctrl = QtShapesControls(layer) qtbot.addWidget(qtctrl) target_color = transform_color(layer.current_edge_color)[0] np.testing.assert_almost_equal(qtctrl.edgeColorEdit.color, target_color) # Update current edge color layer.current_edge_color = 'red' target_color = transform_color(layer.current_edge_color)[0] np.testing.assert_almost_equal(qtctrl.edgeColorEdit.color, target_color)