コード例 #1
0
ファイル: test_points.py プロジェクト: AhmetCanSolak/napari
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']
コード例 #2
0
ファイル: test_points.py プロジェクト: keithchev/napari
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'))),
    )