def test_edge_color(): """Test setting edge color.""" shape = (10, 2) np.random.seed(0) data = 20 * np.random.random(shape) layer = Points(data) assert layer.current_edge_color == 'black' assert len(layer.edge_color) == shape[0] assert np.all([col == 'black' for col in layer.edge_color]) # With no data selected changing edge color has no effect layer.current_edge_color = 'blue' assert layer.current_edge_color == 'blue' assert np.all([col == 'black' for col in layer.edge_color]) # 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 np.all([col == 'green' for col in layer.edge_color[:2]]) assert np.all([col == 'black' for col in layer.edge_color[2:]]) # Add new point and test its color coord = [18, 18] layer.selected_data = [] layer.current_edge_color = 'blue' layer.add(coord) assert len(layer.edge_color) == shape[0] + 1 assert np.all([col == 'green' for col in layer.edge_color[:2]]) assert np.all([col == 'black' for col in layer.edge_color[2:10]]) assert np.all(layer.edge_color[10] == 'blue') # Instantiate with custom edge color layer = Points(data, edge_color='red') assert layer.current_edge_color == 'red' # Instantiate with custom edge color list col_list = ['red', 'green'] * 5 layer = Points(data, edge_color=col_list) assert layer.current_edge_color == 'black' assert layer.edge_color == col_list # Add new point and test its color coord = [18, 18] layer.current_edge_color = 'blue' layer.add(coord) 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_edge_color_direct(): """Test setting edge color.""" shape = (10, 2) np.random.seed(0) data = 20 * np.random.random(shape) layer = Points(data) colorarray = transform_color(['black'] * shape[0]) assert layer.current_edge_color == 'black' assert len(layer.edge_color) == shape[0] np.testing.assert_allclose(colorarray, layer.edge_color) # With no data selected chaning edge color has no effect layer.current_edge_color = 'blue' assert layer.current_edge_color == 'blue' np.testing.assert_allclose(colorarray, layer.edge_color) # Select data and change edge color of selection layer.selected_data = [0, 1] assert layer.current_edge_color == 'black' layer.current_edge_color = 'green' colorarray_green = transform_color(['green'] * len(layer.selected_data)) np.testing.assert_allclose(colorarray_green, layer.edge_color[:2]) np.testing.assert_allclose(colorarray[2:], layer.edge_color[2:]) # Add new point and test its color coord = [18, 18] layer.selected_data = [] layer.current_edge_color = 'blue' layer.add(coord) colorarray = np.vstack([colorarray, transform_color('blue')]) assert len(layer.edge_color) == shape[0] + 1 np.testing.assert_allclose(colorarray_green, layer.edge_color[:2]) np.testing.assert_allclose(colorarray[2:], layer.edge_color[2:]) np.testing.assert_allclose(transform_color("blue"), np.atleast_2d(layer.edge_color[10])) # Instantiate with custom edge color layer = Points(data, edge_color='red') assert layer.current_edge_color == 'red' # Instantiate with custom edge color list col_list = ['red', 'green'] * 5 col_list_arr = transform_color(col_list) layer = Points(data, edge_color=col_list) assert layer.current_edge_color == 'green' np.testing.assert_allclose(layer.edge_color, col_list_arr) # Add new point and test its color coord = [18, 18] layer.current_edge_color = 'blue' layer.add(coord) assert len(layer.edge_color) == shape[0] + 1 np.testing.assert_allclose( layer.edge_color, np.vstack((col_list_arr, transform_color('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 np.testing.assert_allclose( layer.edge_color, np.vstack( (col_list_arr[1], col_list_arr[3:], transform_color('blue'))), )