예제 #1
0
def test_approx_set_create():

    pset = ApproxSet([1, 2, 3, 3.0000001])

    assert 3 == len(pset)
    assert 3.0000001 in pset

    with pytest.raises(TypeError):
        ApproxSet(1, 2, 3)
예제 #2
0
def test_approx_set_contains():

    pset = ApproxSet({P2(0, 0), P2(1, 1), P2(3, 3)})

    assert P2(0, 0) in pset
    assert P2(0.0, 0.0) in pset
    assert P2(0.0000001, 0.0000001) in pset

    assert P2(0.1, 0.1) not in pset

    assert P2(-1, -1) not in pset
    assert P2(10, 10) not in pset

    with pytest.raises(TypeError):
        ApproxSet({V2(0, 0), V2(1, 1)})
예제 #3
0
def test_rasterize_polygon_8(square):
    expected = ApproxSet([
        P2(0, 0),
        P2(0.5, 0),
        P2(1, 0),
        P2(1, 0.5),
        P2(1, 1),
        P2(0.5, 1),
        P2(0, 1),
        P2(0, 0.5),
    ])
    assert expected == rasterize(square, n=8)
예제 #4
0
def test_rasterize_polygon_10(square):
    expected = ApproxSet([
        P2(0, 0),
        P2(0.5, 0),
        P2(1, 0),
        P2(1, 0.3333333),
        P2(1, 0.6666666),
        P2(1, 1),
        P2(0.5, 1),
        P2(0, 1),
        P2(0, 0.6666666),
        P2(0, 0.3333333),
    ])
    assert expected == rasterize(square, n=10)
예제 #5
0
def test_approx_set_eq():

    pset = ApproxSet([P2(0, 0), P2(1, 1), P2(3, 3)])

    assert {P2(0, 0), P2(1, 1), P2(3, 3)} == pset
    assert {P2(3.0000001, 3.0000001), P2(1, 1), P2(0, 0)} == pset
    assert [P2(3.0000001, 3.0000001), P2(1, 1), P2(0, 0)] == pset
    assert (P2(0.0000001, 0.0000001), P2(1, 1), P2(3, 3)) == pset

    assert pset == pset

    assert [P2(0, 0), P2(1, 1)] != pset

    assert pset != set()

    assert pset != None
예제 #6
0
def test_rasterize_polygon_15(square):
    expected = ApproxSet([
        P2(0, 0),
        P2(0.3333333, 0),
        P2(0.6666666, 0),
        P2(1, 0),
        P2(1, 0.25),
        P2(1, 0.5),
        P2(1, 0.75),
        P2(1, 1),
        P2(0.75, 1),
        P2(0.5, 1),
        P2(0.25, 1),
        P2(0, 1),
        P2(0, 0.75),
        P2(0, 0.5),
        P2(0, 0.25),
    ])
    assert expected == rasterize(square, n=15)
예제 #7
0
def test_approx_set_iter():

    pset = ApproxSet([P2(3, 3), P2(2, 2), P2(1, 1)])

    for e, a in zip([P2(1, 1), P2(2, 2), P2(3, 3)], pset):
        assert e == a
예제 #8
0
def test_rasterize_circle():
    expected = ApproxSet([P2(1, 0), P2(0, 1), P2(-1, 0), P2(0, -1)])
    assert expected == rasterize(Circle(1), n=4)

    expected = ApproxSet([P2(2, 1), P2(1, 2), P2(0, 1), P2(1, 0)])
    assert expected == rasterize(Circle(1, P2(1, 1)), n=4)
예제 #9
0
def test_rasterize_line_segment():
    expected = ApproxSet([P2(0, 0), P2(1, 0), P2(2, 0), P2(3, 0)])
    assert expected == rasterize(LineSegment(P2(0, 0), P2(3, 0)), n=4)
예제 #10
0
def test_rasterize_polygon_4(square):
    expected = ApproxSet([P2(0, 0), P2(1, 0), P2(1, 1), P2(0, 1)])
    assert expected == rasterize(square, n=4)