Пример #1
0
    def test_singly_linked_list_reverse(self):
        list_, nodes, keys = get_random_singly_linked_list()

        singly_linked_list_reverse(list_)

        actual_keys = get_linked_list_keys(list_)
        expected_keys = list(reversed(keys))
        assert_that(actual_keys, is_(equal_to(expected_keys)))
Пример #2
0
    def test_singly_linked_list_pop(self):
        list_, nodes, keys = get_random_singly_linked_list(max_size=5)

        actual_deleted = singly_linked_list_pop(list_)

        assert_that(actual_deleted, is_(equal_to(keys[0])))
        actual_keys = get_linked_list_keys(list_)
        expected_keys = keys[1:]
        assert_that(actual_keys, is_(equal_to(expected_keys)))
Пример #3
0
    def test_singly_linked_list_push(self):
        list_, nodes, keys = get_random_singly_linked_list()
        x = random.randint(0, 999)

        singly_linked_list_push(list_, x)

        actual_keys = get_linked_list_keys(list_)
        expected_keys = [x] + keys
        assert_that(actual_keys, is_(equal_to(expected_keys)))
Пример #4
0
    def test_singly_linked_list_pop(self):
        list_, nodes, keys = get_random_singly_linked_list(max_size=5)

        actual_deleted = singly_linked_list_pop(list_)

        assert_that(actual_deleted, is_(equal_to(keys[0])))
        actual_keys = get_linked_list_keys(list_)
        expected_keys = keys[1:]
        assert_that(actual_keys, is_(equal_to(expected_keys)))
Пример #5
0
    def test_singly_linked_list_push(self):
        list_, nodes, keys = get_random_singly_linked_list()
        x = random.randint(0, 999)

        singly_linked_list_push(list_, x)

        actual_keys = get_linked_list_keys(list_)
        expected_keys = [x] + keys
        assert_that(actual_keys, is_(equal_to(expected_keys)))
Пример #6
0
    def test_singly_linked_list_enqueue(self):
        list_, nodes, keys = get_random_singly_linked_list()
        list_.tail = nodes[-1]
        x = random.randint(0, 999)

        singly_linked_list_enqueue(list_, x)

        actual_keys = get_linked_list_keys(list_)
        expected_keys = keys + [x]
        assert_that(actual_keys, is_(equal_to(expected_keys)))
Пример #7
0
    def test_singly_linked_list_enqueue(self):
        list_, nodes, keys = get_random_singly_linked_list()
        list_.tail = nodes[-1]
        x = random.randint(0, 999)

        singly_linked_list_enqueue(list_, x)

        actual_keys = get_linked_list_keys(list_)
        expected_keys = keys + [x]
        assert_that(actual_keys, is_(equal_to(expected_keys)))
Пример #8
0
    def test_singly_linked_list_delete(self):
        list_, nodes, keys = get_random_singly_linked_list(max_size=5)
        node_idx = random.randrange(len(nodes))
        node_to_delete = nodes[node_idx]

        singly_linked_list_delete(list_, node_to_delete)

        actual_keys = get_linked_list_keys(list_)
        expected_keys = keys[:node_idx] + keys[node_idx + 1:]
        assert_that(actual_keys, is_(equal_to(expected_keys)))
Пример #9
0
    def test_singly_linked_list_insert(self):
        list_, nodes, keys = get_random_singly_linked_list()
        new_key = random.randint(0, 999)
        new_node = SNode(new_key)

        singly_linked_list_insert(list_, new_node)

        actual_keys = get_linked_list_keys(list_)
        expected_keys = [new_key] + keys
        assert_that(actual_keys, is_(equal_to(expected_keys)))
Пример #10
0
    def test_singly_linked_list_dequeue(self):
        list_, nodes, keys = get_random_singly_linked_list(min_size=0, max_size=5)

        if list_.head is None:
            list_.tail = None
            assert_that(calling(singly_linked_list_dequeue).with_args(list_), raises(RuntimeError, 'underflow'))
        else:
            list_.tail = nodes[-1]

            actual_deleted = singly_linked_list_dequeue(list_)

            assert_that(actual_deleted, is_(equal_to(keys[0])))
            actual_keys = get_linked_list_keys(list_)
            expected_keys = keys[1:]
            assert_that(actual_keys, is_(equal_to(expected_keys)))
            if list_.head is None:
                assert_that(list_.tail, is_(none()))
Пример #11
0
    def test_singly_linked_list_dequeue(self):
        list_, nodes, keys = get_random_singly_linked_list(min_size=0,
                                                           max_size=5)

        if list_.head is None:
            list_.tail = None
            assert_that(
                calling(singly_linked_list_dequeue).with_args(list_),
                raises(RuntimeError, 'underflow'))
        else:
            list_.tail = nodes[-1]

            actual_deleted = singly_linked_list_dequeue(list_)

            assert_that(actual_deleted, is_(equal_to(keys[0])))
            actual_keys = get_linked_list_keys(list_)
            expected_keys = keys[1:]
            assert_that(actual_keys, is_(equal_to(expected_keys)))
            if list_.head is None:
                assert_that(list_.tail, is_(none()))