Esempio n. 1
0
def test_bad():
    with pytest.raises(ValueError):
        State.parse("")
    with pytest.raises(ValueError):
        State.parse("p=Mx v")
    with pytest.raises(ValueError):
        State.parse("p=Mxq")
    with pytest.raises(ValueError):
        State.parse("d=potato")
    with pytest.raises(ValueError):
        State.parse("Δ+C")
Esempio n. 2
0
def test_simple_3():
    s = "d=80"
    state = State.parse(s)
    assert state.d == 0x80
    for var in ("m", "x", "c", "e", "b"):
        assert getattr(state, var) is None
    assert state.encode() == s
Esempio n. 3
0
def test_simple_1():
    s = "p=e"
    state = State.parse(s)
    assert state.e is False
    for var in ("m", "x", "c", "b", "d"):
        assert getattr(state, var) is None
    assert state.encode() == s
Esempio n. 4
0
def test_simple_2():
    s = "b=12"
    state = State.parse(s)
    assert state.b == 0x12
    for var in ("m", "x", "c", "e", "d"):
        assert getattr(state, var) is None
    assert state.encode() == s
Esempio n. 5
0
def test_combined_2():
    s = "d=10 b=f p=Cm"
    state = State.parse(s)
    assert state.m is False
    assert state.x is None
    assert state.c is True
    assert state.e is None
    assert state.b == 0xf
    assert state.d == 0x10
    assert state.encode() == "p=mC b=f d=10"
Esempio n. 6
0
def test_combined_1():
    s = "p=MxE d=0"
    state = State.parse(s)
    assert state.m is True
    assert state.x is False
    assert state.c is None
    assert state.e is True
    assert state.b is None
    assert state.d == 0
    assert state.encode() == s
Esempio n. 7
0
def test_add_3():
    state = State(c=False)

    s = "d=60"
    delta = StateDelta.parse(s)
    state = delta.apply(state)
    assert state.c is False
    assert state.d == 0x60

    assert delta.encode() == s
Esempio n. 8
0
def test_combined():
    state = State(e=True, b=0x13, d=0x66)

    s = "-ed +X"
    delta = StateDelta.parse(s)
    state = delta.apply(state)
    assert state.e is None
    assert state.b == 0x13
    assert state.d is None
    assert state.x is True

    assert delta.encode() == "+X -ed"
Esempio n. 9
0
def test_add_2():
    state = State(x=True, b=0xff)

    s = "+m b=03 d=a2"
    delta = StateDelta.parse(s)
    state = delta.apply(state)
    assert state.x is True
    assert state.m is False
    assert state.b == 0x03
    assert state.d == 0xa2

    assert delta.encode() == s
Esempio n. 10
0
def test_add_1():
    state = State()
    for var in ("m", "x", "c", "e", "b", "d"):
        assert getattr(state, var) is None

    s = "+C"
    delta = StateDelta.parse(s)
    state = delta.apply(state)
    assert state.c is True
    for var in ("m", "x", "e", "b", "d"):
        assert getattr(state, var) is None

    assert delta.encode() == s
Esempio n. 11
0
def test_clear():
    state = State(e=True, m=False, x=True, c=False, b=1, d=2)

    s = "-ecd"
    delta = StateDelta.parse(s)
    state = delta.apply(state)
    assert state.e is None
    assert state.m is False
    assert state.x is True
    assert state.c is None
    assert state.b == 1
    assert state.d is None

    assert delta.encode() == s
Esempio n. 12
0
def test_unknown():
    s = "unknown"
    state = State.parse(s)
    for var in ("e", "m", "x", "c", "b", "d"):
        assert getattr(state, var) is None
    assert state.encode() == s