Commit 98dddc2
Changed files (1)
assignments
assignments/01/swap_doubly_linked_list_test.c
@@ -207,19 +207,24 @@ Ensure(DoublyLinkedList, when_swapping_head_adjacent) {
free(head);
}
-Ensure(DoublyLinkedList, when_swapping_y_head_adjacent) {
+Ensure(DoublyLinkedList, when_swapping_head_adjacent_inverted) {
Node *head = initialize(100);
Node *mid = add(head, 200);
Node *tail = add(head, 300);
swap(mid, head);
- assert_that(get(head, 0), is_non_null);
- assert_that(get(head, 0)->data, is_equal_to(200));
- assert_that(get(head, 1), is_non_null);
- assert_that(get(head, 1)->data, is_equal_to(100));
- assert_that(get(head, 2), is_non_null);
- assert_that(get(head, 2)->data, is_equal_to(300));
+ assert_that(head->prev, is_equal_to(mid));
+ assert_that(head->data, is_equal_to(100));
+ assert_that(head->next, is_equal_to(tail));
+
+ assert_that(mid->prev, is_equal_to(NULL));
+ assert_that(mid->data, is_equal_to(200));
+ assert_that(mid->next, is_equal_to(head));
+
+ assert_that(tail->prev, is_equal_to(head));
+ assert_that(tail->data, is_equal_to(300));
+ assert_that(tail->next, is_equal_to(NULL));
free(head);
}
@@ -364,6 +369,28 @@ Ensure(DoublyLinkedList, when_swapping_tail_adjacent) {
free(head);
}
+Ensure(DoublyLinkedList, when_swapping_tail_adjacent_inverted) {
+ Node *head = initialize(100);
+ Node *mid = add(head, 200);
+ Node *tail = add(head, 300);
+
+ swap(tail, mid);
+
+ assert_that(head->prev, is_equal_to(NULL));
+ assert_that(head->data, is_equal_to(100));
+ assert_that(head->next, is_equal_to(tail));
+
+ assert_that(mid->prev, is_equal_to(tail));
+ assert_that(mid->data, is_equal_to(200));
+ assert_that(mid->next, is_equal_to(NULL));
+
+ assert_that(tail->prev, is_equal_to(head));
+ assert_that(tail->data, is_equal_to(300));
+ assert_that(tail->next, is_equal_to(mid));
+
+ free(head);
+}
+
Ensure(DoublyLinkedList, when_swapping_with_NULL) {
Node *head = initialize(100);
Node *mid = add(head, 200);
@@ -411,12 +438,13 @@ TestSuite *swap_doubly_linked_list_tests() {
/*add_test_with_context(suite, DoublyLinkedList, when_swapping_head_with_non_adjacent_node);*/
add_test_with_context(suite, DoublyLinkedList, when_swapping_head_adjacent);
- /*add_test_with_context(suite, DoublyLinkedList, when_swapping_y_head_adjacent);*/
+ add_test_with_context(suite, DoublyLinkedList, when_swapping_head_adjacent_inverted);
add_test_with_context(suite, DoublyLinkedList, when_swapping_mid);
add_test_with_context(suite, DoublyLinkedList, when_swapping_y_mid);
add_test_with_context(suite, DoublyLinkedList, when_swapping_mid_adjacent);
add_test_with_context(suite, DoublyLinkedList, when_swapping_mid_adjacent_y);
add_test_with_context(suite, DoublyLinkedList, when_swapping_tail_adjacent);
+ add_test_with_context(suite, DoublyLinkedList, when_swapping_tail_adjacent_inverted);
add_test_with_context(suite, DoublyLinkedList, when_swapping_with_NULL);
add_test_with_context(suite, DoublyLinkedList, when_swapping_self);