示例#1
0
def test_Key_shift():
    # because the Key class preserves the key captured at object
    # instantiation you have to deliberately tamper with the Key's value
    # to make it equal to the shifted Node

    key = Key('A|B')
    key.value = Node(head='B', tail=[])

    assert (Key('A|B') << 1) == key

    key.value = Node(head=None, tail=[])
    assert (Key('A|B') << 2) == key
示例#2
0
def test_Key_Node_from_key():
    assert Key.Node_from_key('A|B|C') == Node(head='A', tail=['B', ['C']])
示例#3
0
def test_Node_from_nested_list():
    # e.g. split from key:
    #     'A|B|C' -> ['A', '|', 'B', '|', 'C'] -> ['A', ['B', ['C']]]
    ll = ['A', ['B', ['C']]]
    assert Node.from_nested_list(ll) == Node(head='A', tail=['B', ['C']])
示例#4
0
def test_Key():
    key = Key()
    assert key.key is None
    assert key.value == Node()
    assert key.payload is None
示例#5
0
def test_Node_eq():
    assert Node() == Node()
    assert Node('A') == Node('A', [])
示例#6
0
def test_Node_lsfhift():
    node = Node(head='A', tail=['B', ['C']])
    assert (node << 1).head() == 'B'
    assert (node << 2).head() == 'C'
示例#7
0
def test_Node_is_empty():
    assert Node().is_empty()
    assert not Node('A').is_empty()
    assert not Node('A', []).is_empty()
示例#8
0
def test_Node_tail():
    node = Node(head='A', tail=['B', ['C']])
    assert node.tail() == ['B', ['C']]
示例#9
0
def test_Node():
    node = Node()
    assert Node().value == (None, [])

    node = Node(head='A', tail=['B', ['C']])
    assert node.value == ('A', ['B', ['C']])