コード例 #1
0
ファイル: test_boolean_op.py プロジェクト: avl/shapemerge2d
def test_edge_sort():
    b=BooleanOp()
    v=vorig(0,0)
    for x in xrange(100):
        if x==0:
            ang=0
        else:
            ang=x/6.0
        def Vertex(a,b):
            x=a*cos(ang)-b*sin(ang)
            y=b*cos(ang)+a*sin(ang)
            return vorig(int(x),int(y))
        for side in [0,1]: 
            l=Line(Vertex(-10,0),Vertex(0,0))
            tosort=lvector([
                    Line(Vertex(0,0),Vertex(-10,10)),
                    Line(Vertex(0,0),Vertex(0,10)),
                    Line(Vertex(0,0),Vertex(10,10))])
            out=list(b.dbg_step5_sort_edges(v,l,tosort,side))
            if side==0:
                assert out[0]==Line(Vertex(0,0),Vertex(-10,10))
                assert out[1]==Line(Vertex(0,0),Vertex(0,10))
                assert out[2]==Line(Vertex(0,0),Vertex(10,10))
            else:
                assert out[2]==Line(Vertex(0,0),Vertex(-10,10))
                assert out[1]==Line(Vertex(0,0),Vertex(0,10))
                assert out[0]==Line(Vertex(0,0),Vertex(10,10))
                
            tosort=lvector([
                    Line(Vertex(0,0),Vertex(-10,10)),
                    Line(Vertex(0,10),Vertex(0,0)),
                    Line(Vertex(0,0),Vertex(10,10))])
            out=list(b.dbg_step5_sort_edges(v,l,tosort,side))
            if side==0:
                assert out[0]==Line(Vertex(0,0),Vertex(-10,10))
                assert out[1]==Line(Vertex(0,10),Vertex(0,0))
                assert out[2]==Line(Vertex(0,0),Vertex(10,10))
            else:
                assert out[2]==Line(Vertex(0,0),Vertex(-10,10))
                assert out[1]==Line(Vertex(0,10),Vertex(0,0))
                assert out[0]==Line(Vertex(0,0),Vertex(10,10))
                
            tosort=lvector([
                    Line(Vertex(-10,10),Vertex(0,0)),
                    Line(Vertex(0,10),Vertex(0,0)),
                    Line(Vertex(0,0),Vertex(10,10))])
            out=list(b.dbg_step5_sort_edges(v,l,tosort,side))
            if side==0:
                assert out[0]==Line(Vertex(-10,10),Vertex(0,0))
                assert out[1]==Line(Vertex(0,10),Vertex(0,0))
                assert out[2]==Line(Vertex(0,0),Vertex(10,10))
            else:
                assert out[2]==Line(Vertex(-10,10),Vertex(0,0))
                assert out[1]==Line(Vertex(0,10),Vertex(0,0))
                assert out[0]==Line(Vertex(0,0),Vertex(10,10))