예제 #1
0
def test_interpolation_ramps():
    t = Value(0)
    for x in range(-2, 5):
        exp = Interpolation(0, x, t)
        for i in range(-10, 20):
            t.set(i / 10)
            assert exp == simplify(exp) == t * x
예제 #2
0
def test_value_setting():
    exp = Value(4)
    assert exp == 4
    exp.set(6)
    assert exp == 6

    with pytest.raises(ValueError):
        exp.set(6, 7)
예제 #3
0
def test_value_fix_1():
    exp = Value(6)
    exp.fix()
    assert exp == 6
    with pytest.raises(ValueError):
        exp.set(4)
    assert exp == 6
    assert simplify(exp) == 6
    assert isinstance(simplify(exp), Constant)
예제 #4
0
def test_interpolation():
    val1 = Value(0, 1, 5, 1)
    val2 = Value(10, 1, 0, 2)
    t = Value(0)
    exp = Interpolation(val1, val2, t)
    assert all(exp == simplify(exp))
    assert all(exp == (0, 1, 5, 1))

    t.set(1)
    assert all(exp == simplify(exp))
    assert all(exp == (10, 1, 0, 2))

    t.set(0.5)
    assert all(exp == simplify(exp))
    assert all(exp == (5, 1, 2.5, 1.5))
예제 #5
0
def test_index_get():
    val = Value(1, 2, 3)

    assert val[1] == 2
    assert val[2] == 3
    assert val[-2] == 2
    assert val[-3] == 1
    assert all(val[:-1] == (1, 2))
    assert val[-1:] == (3, )
    with pytest.raises(IndexError):
        val[3]
    with pytest.raises(IndexError):
        val[-80]
    assert len(val[1:1]) == 0
    assert len(val[2:1]) == 0
    with pytest.raises(TypeError):
        val[None]

    first_item = val[0]
    last_item = val[-1]
    first_two = val[:2]

    assert first_item == 1
    assert last_item == 3
    assert all(first_two == (1, 2))

    val.set(2, 3, 4)
    assert first_item == 2
    assert last_item == 4
    assert all(first_two == (2, 3))

    assert len(val[1]) == 1
    assert len(val[:1]) == 1
    assert len(val[1:]) == 2
    assert len(val[:]) == 3
    assert len(val[:-1]) == 2
예제 #6
0
def test_concat():
    val = Value(3)
    cat = Concat(val, 2, Value(5, 4))
    assert all(cat == (3, 2, 5, 4))
    val.set(8)
    assert all(cat == (8, 2, 5, 4))