示例#1
0
def test_setters():
    """vector property setters"""
    v = Vector(1,2,3)
    v.x = 4
    assert v.x==4 and v.y==2 and v.z==3
    v.y = 5
    assert v.x==4 and v.y==5 and v.z==3
    v.z = 6
    assert v.x==4 and v.y==5 and v.z==6
示例#2
0
def test_equality():
    """vector equality"""
    # exact equality
    v1 = Vector(1,2,3)
    v2 = Vector(1,2,3)
    assert v1==v2
    v2.z = 1
    assert v1!=v2
    v2.z = 3
    v2.y = 3
    assert v1!=v2
    v2.y = 2
    v2.x = 2
    assert v1!=v2
    v2.x = 1
    assert v1==v2
    # approximate equality
    v1 = Vector(1,2,3)
    v2 = Vector(1,2,3)
    assert v1.approx(v2)
    v2.z = 1
    assert not v1.approx(v2)
    v2.z = 3
    v2.y = 3
    assert not v1.approx(v2)
    v2.y = 2
    v2.x = 2
    assert not v1.approx(v2)
    v2.x = 1
    assert v1.approx(v2)
    # tolerance checking in all directions
    assert Vector(0,0,0).approx(Vector(0.000001,0,0),0.00001)
    assert Vector(0,0,0).approx(Vector(0,0.000001,0),0.00001)
    assert Vector(0,0,0).approx(Vector(0,0,0.000001),0.00001)
    # tolerance checking over multiple tolerances
    assert Vector(0,0,0).approx(Vector(0.000001,0,0),0.01)
    assert Vector(0,0,0).approx(Vector(0.000001,0,0),0.001)
    assert Vector(0,0,0).approx(Vector(0.000001,0,0),0.0001)
    assert Vector(0,0,0).approx(Vector(0.000001,0,0),0.00001)
    assert not Vector(0,0,0).approx(Vector(0.000001,0,0),0.000001)
    assert not Vector(0,0,0).approx(Vector(0.000001,0,0),0.0000001)
    assert not Vector(0,0,0).approx(Vector(0.000001,0,0),0.00000001)