Exemple #1
0
def test_invalid_order_count_combination():
    count = 4
    order = 5
    with pytest.raises(ezdxf.DXFValueError):
        required_knot_values(count, order)
    with pytest.raises(ezdxf.DXFValueError):
        list(control_frame_knots(n=count - 1, p=order - 1, t_vector=[]))
Exemple #2
0
def test_invalid_order_count_combination():
    count = 4
    order = 5
    with pytest.raises(ezdxf.DXFValueError):
        required_knot_values(count, order)
    with pytest.raises(ezdxf.DXFValueError):
        list(knots_from_parametrization(n=count - 1, p=order - 1, t=[]))
Exemple #3
0
def test_nurbs_arc_parameter_quarter_arc_4_segments():
    control_points, weights, knots = nurbs_arc_parameters(start_angle=0,
                                                          end_angle=math.pi / 2,
                                                          segments=4)
    assert len(control_points) == 9
    assert len(weights) == len(control_points)
    assert len(knots) == required_knot_values(len(control_points), order=3)
Exemple #4
0
def check_knots(count: int, order: int, knots: List[float]):
    assert len(knots) == required_knot_values(count, order)
    assert len(set(
        knots[:order])) == 1, "first order elements have to be equal"
    assert len(set(
        knots[-order:])) == 1, "last order elements have to be equal"
    for k1, k2 in zip(knots, knots[1:]):
        assert k1 <= k2
Exemple #5
0
def test_control_frame_knot_values(fit_points):
    count = len(fit_points)
    n = count - 1
    degrees = (2, 3, 4) if len(fit_points) > 4 else (2, 3)
    for p in degrees:  # degree
        order = p + 1
        t_vector = uniform_t_vector(fit_points)
        knots = list(control_frame_knots(n, p, t_vector))
        assert len(knots) == required_knot_values(count, order)
        assert len(set(
            knots[:order])) == 1, 'first order elements have to be equal'
        assert len(set(
            knots[-order:])) == 1, 'last order elements have to be equal'
        for k1, k2 in zip(knots, knots[1:]):
            assert k1 <= k2
Exemple #6
0
def test_nurbs_arc_parameter_quarter_arc_1_segment():
    control_points, weights, knots = nurbs_arc_parameters(start_angle=0,
                                                          end_angle=math.pi / 2,
                                                          segments=1)

    assert len(control_points) == 3
    assert len(weights) == len(control_points)
    assert len(knots) == required_knot_values(len(control_points), order=3)

    assert control_points[0].isclose((1, 0, 0))
    assert control_points[1].isclose((1, 1, 0))
    assert control_points[2].isclose((0, 1, 0))

    assert weights[0] == 1.0
    assert weights[1] == math.cos(math.pi / 4)
    assert weights[2] == 1.0
Exemple #7
0
def test_uniform_knot_order_4():
    result = uniform_knot_vector(9, 4, normalize=False)
    assert len(result) == required_knot_values(9, 4)
    assert result == uniform_order4
    assert uniform_knot_vector(9, 4, normalize=True) == _normalize(
        uniform_order4, 12.0)
Exemple #8
0
def test_uniform_knot_order_3():
    result = uniform_knot_vector(7, 3, normalize=False)
    assert len(result) == required_knot_values(7, 3)
    assert result == uniform_order3
    assert uniform_knot_vector(7, 3, normalize=True) == _normalize(
        uniform_order3, 9.0)
Exemple #9
0
def test_uniform_knot_order_2():
    result = uniform_knot_vector(5, 2, normalize=False)
    assert len(result) == required_knot_values(5, 2)
    assert result == uniform_order2
    assert uniform_knot_vector(5, 2, normalize=True) == _normalize(
        uniform_order2, 6.0)
Exemple #10
0
def test_uniform_knot_order_4():
    result = knot_uniform(9, 4)
    assert len(result) == required_knot_values(9, 4)
    assert result == uniform_order4
Exemple #11
0
def test_uniform_knot_order_3():
    result = knot_uniform(7, 3)
    assert len(result) == required_knot_values(7, 3)
    assert result == uniform_order3
Exemple #12
0
def test_uniform_knot_order_2():
    result = knot_uniform(5, 2)
    assert len(result) == required_knot_values(5, 2)
    assert result == uniform_order2
Exemple #13
0
def test_open_uniform_knot_order_4():
    result = open_uniform_knot_vector(9, 4)
    assert len(result) == required_knot_values(9, 4)
    assert result == open_uniform_order4