Пример #1
0
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']
Пример #2
0
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)