summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormo khan <mo.khan@gmail.com>2020-06-28 12:53:57 -0600
committermo khan <mo.khan@gmail.com>2020-06-28 12:53:57 -0600
commitb4329298825bb6e9783bb463e786a4253422efd3 (patch)
tree64031b4cd77ad74ecb0f8dd64a5eb8a03325b531
parent26bf5c80b83a108e8daabbbd4db63065433c8ccc (diff)
Add MinStack test
-rw-r--r--Makefile7
-rw-r--r--assignments/01/min_stack_test.c26
-rw-r--r--assignments/01/swap_doubly_linked_list_test.c2
-rw-r--r--main.c2
4 files changed, 35 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index 9044d67..a7cb850 100644
--- a/Makefile
+++ b/Makefile
@@ -13,8 +13,8 @@ doc : doc/
run : main
./main
-main : main.o words_test.o words.o priority_queue_test.o stack_test.o swap_singly_linked_list_test.o swap_doubly_linked_list_test.o
- $(CC) main.o words_test.o words.o priority_queue_test.o stack_test.o swap_singly_linked_list_test.o swap_doubly_linked_list_test.o -lcgreen -o main
+main : main.o words_test.o words.o priority_queue_test.o stack_test.o swap_singly_linked_list_test.o swap_doubly_linked_list_test.o min_stack_test.o
+ $(CC) main.o words_test.o words.o priority_queue_test.o stack_test.o swap_singly_linked_list_test.o swap_doubly_linked_list_test.o min_stack_test.o -lcgreen -o main
main.o : main.c
$(CC) -c main.c
@@ -31,6 +31,9 @@ priority_queue_test.o : assignments/01/priority_queue_test.c
stack_test.o : assignments/01/stack_test.c
$(CC) -c assignments/01/stack_test.c
+min_stack_test.o : assignments/01/min_stack_test.c
+ $(CC) -c assignments/01/min_stack_test.c
+
swap_singly_linked_list_test.o : assignments/01/swap_singly_linked_list_test.c
$(CC) -c assignments/01/swap_singly_linked_list_test.c
diff --git a/assignments/01/min_stack_test.c b/assignments/01/min_stack_test.c
new file mode 100644
index 0000000..be0c989
--- /dev/null
+++ b/assignments/01/min_stack_test.c
@@ -0,0 +1,26 @@
+#include <cgreen/cgreen.h>
+
+/*
+Design and implement a `MinStack` data structure that can store
+comparable elements and supports the stack operations:
+
+* `push(x)`
+* `pop()`
+* `size()`
+* `min()`
+All operations should run in constant time.
+*/
+
+Describe(MinStack);
+BeforeEach(MinStack){ }
+AfterEach(MinStack){ }
+
+Ensure(MinStack, when_getting_head) {
+}
+
+TestSuite *min_stack_tests() {
+ TestSuite *suite = create_test_suite();
+
+ /*add_test_with_context(suite, MinStack, when_pushing_it);*/
+ return suite;
+}
diff --git a/assignments/01/swap_doubly_linked_list_test.c b/assignments/01/swap_doubly_linked_list_test.c
index d79bdfc..0520f67 100644
--- a/assignments/01/swap_doubly_linked_list_test.c
+++ b/assignments/01/swap_doubly_linked_list_test.c
@@ -543,6 +543,8 @@ Ensure(DoublyLinkedList, when_reversing_a_short_list) {
assert_that(head->prev, is_equal_to(mid));
assert_that(head->next, is_equal_to(NULL));
+
+ free(head);
}
Ensure(DoublyLinkedList, when_reversing_an_empty_list) {
diff --git a/main.c b/main.c
index b80ffa5..f7d1965 100644
--- a/main.c
+++ b/main.c
@@ -5,6 +5,7 @@ TestSuite *priority_queue_tests();
TestSuite *stack_tests();
TestSuite *swap_singly_linked_list_tests();
TestSuite *swap_doubly_linked_list_tests();
+TestSuite *min_stack_tests();
int main(int argc, char **argv) {
TestSuite *suite = create_test_suite();
@@ -14,6 +15,7 @@ int main(int argc, char **argv) {
add_suite(suite, stack_tests());
add_suite(suite, swap_singly_linked_list_tests());
add_suite(suite, swap_doubly_linked_list_tests());
+ add_suite(suite, min_stack_tests());
if (argc > 1)
return run_single_test(suite, argv[1], create_text_reporter());