def test_state_vector_encode():
    sv = StateVector()
    sv.set("one", 1)
    sv.set("two", 2)

    enc_sv = sv.encode()
    assert enc_sv == b'\xC9\x10\xCA\x03\x6F\x6E\x65\xCB\x01\x01\xCA\x03\x74\x77\x6F\xCB\x01\x02'
def test_state_vector_component_functionality():
    sv = StateVector()
    sv.set("one", 1)
    sv.set("two", 2)

    name = Name.from_str("/state_vector/test") + [sv.to_component()]
    assert name == Name.from_str(Name.to_str(name))
def test_state_vector_decode():
    enc_sv = b'\xCA\x03\x6F\x6E\x65\xCB\x01\x01\xCA\x03\x74\x77\x6F\xCB\x01\x02'
    enc_sv = Component.from_bytes(enc_sv, StateVectorModelTypes.VECTOR.value)

    sv = StateVector(enc_sv)
    assert sv.get("one") == 1
    assert sv.get("two") == 2
def test_state_vector_has():
    sv = StateVector()
    sv.set("b", 5)
    sv.set("a", 6)

    assert sv.has("a")
    assert sv.has("b")
def test_state_vector_get():
    sv = StateVector()
    sv.set("b", 5)
    sv.set("a", 6)

    assert sv.get("a") == 6
    assert sv.get("b") == 5
def test_state_vector_partition() -> None:
    sv: StateVector = StateVector(None)
    sv.set("c", 5)
    sv.set("a", 6)
    sv.set("B", 10)
    sv.set("z", 15)
    sv.set("x", 5225)
    nsv, osv = StateVector(sv.partition(0, 0)), StateVector(None)

    assert osv.to_str() == nsv.to_str()
def test_state_vector_component() -> None:
    sv: StateVector = StateVector()
    sv.set("c", 5)
    sv.set("a", 6)
    sv.set("B", 10)
    sv.set("z", 15)
    sv.set("x", 5225)

    svc: StateVector = StateVector(sv.to_component())
    assert sv.to_str() == svc.to_str()
    assert sv.encode() == svc.encode()
def test_state_vector_ordering() -> None:
    sv1: StateVector = StateVector()
    sv1.set("c", 5)
    sv1.set("a", 6)
    sv1.set("B", 10)

    assert sv1.to_str() == "B:10 a:6 c:5"
def test_state_vector_set() -> None:
    sv: StateVector = StateVector()
    sv.set("a", 10)
    sv.set("a", 100)

    assert sv.get("a") == 100
    assert sv.get("c") == None
def test_state_vector_has() -> None:
    sv: StateVector = StateVector()
    sv.set("b", 5)
    sv.set("a", 6)

    assert sv.has("a")
    assert sv.has("b")
def test_state_vector_component_functionality() -> None:
    sv: StateVector = StateVector()
    sv.set("one", 1)
    sv.set("two", 2)

    # does the state vector component act as a compoent in a name
    name: Name = Name.from_str("/state_vector/test") + [sv.to_component()]
    assert name == Name.from_str(Name.to_str(name))
def test_state_vector_encode() -> None:
    sv: StateVector = StateVector(None)
    sv.set("one", 1)
    sv.set("two", 2)

    enc_sv: bytes = sv.encode()
    # does this state vector's byte value equal a hard coded byte value based on the state vector's protocol
    assert enc_sv == b'\xc9\x10\xca\x03two\xcb\x01\x02\xca\x03one\xcb\x01\x01'
def test_state_vector_decode() -> None:
    # hard coded bytes of component vector based on SVS protocol
    enc_sv = b'\xCA\x03\x6F\x6E\x65\xCB\x01\x01\xCA\x03\x74\x77\x6F\xCB\x01\x02'
    enc_sv = Component.from_bytes(enc_sv, SVSyncTlvTypes.VECTOR.value)

    sv: StateVector = StateVector(enc_sv)
    assert sv.get("one") == 1
    assert sv.get("two") == 2
def test_state_vector_total() -> None:
    sv: StateVector = StateVector(None)
    sv.set("c", 5)
    sv.set("a", 6)
    sv.set("B", 10)
    sv.set("z", 15)
    sv.set("x", 5225)

    assert sv.total() == 5261
def test_state_table_metadata() -> None:
    mynid: Name = Name.from_str("D")
    sv, st = StateVector(), StateTable(mynid)
    sv.set("c", 4)
    sv.set("a", 6)
    sv.set("B", 10)
    sv.set(Name.to_str(mynid), 55)
    ml: List[MissingData] = st.processStateVector(sv, True)
    st.updateMyState(56)
    st.updateMetaData()

    assert 76 == st.getMetaData().tseqno
    assert Name.to_str(mynid) == bytes(st.getMetaData().source).decode()
    assert 0 == st.getMetaData().nopcks
def test_state_table_metadata_change() -> None:
    mynid: Name = Name.from_str("D")
    sv, st = StateVector(), StateTable(mynid)
    sv.set("c", 4)
    sv.set("a", 6)
    sv.set("B", 10)
    sv.set(Name.to_str(mynid), 55)

    assert 0 == st.getMetaData().tseqno
    ml: List[MissingData] = st.processStateVector(sv, True)
    assert 0 == st.getMetaData().tseqno
    st.updateMetaData()
    assert 75 == st.getMetaData().tseqno
    st.updateMyState(56)
    assert 75 == st.getMetaData().tseqno
    st.updateMetaData()
    assert 76 == st.getMetaData().tseqno
示例#17
0
def test_state_vector_set():
    sv = StateVector()
    sv.set("a", 10)
    sv.set("a", 100)

    assert sv.get("a") == 100
def test_state_table_processing_order() -> None:
    mynid: Name = Name.from_str("D")
    sv, st = StateVector(), StateTable(mynid)
    sv.set("/c", 4)
    sv.set("/a", 6)
    sv.set("/B", 10)
    sv.set(Name.to_str(mynid), 55)

    ml: List[MissingData] = st.processStateVector(sv, False)
    nsv: StateVector = st.getCompleteStateVector()

    assert nsv.to_str() == "/D:55 /B:10 /a:6 /c:4"

    sv = StateVector()
    sv.set("/Z", 44)
    ml: List[MissingData] = st.processStateVector(sv, True)
    nsv: StateVector = st.getCompleteStateVector()

    assert nsv.to_str() == "/D:55 /B:10 /a:6 /c:4 /Z:44"
示例#19
0
def test_state_vector_ordering():
    sv1 = StateVector()
    sv1.set("c", 5)
    sv1.set("a", 6)
    sv1.set("B", 10)
    sv1.set("z", 15)
    sv1.set("x", 5225)

    sv2 = StateVector()
    sv2.set("z", 15)
    sv2.set("x", 5225)
    sv2.set("a", 6)
    sv2.set("B", 10)
    sv2.set("c", 5)

    assert sv1.to_str() == sv2.to_str()
    assert sv1.encode() == sv2.encode()