Commit 8794d6e
Changed files (3)
assignments
assignments/01/priority_queue.c
@@ -1,15 +1,16 @@
#include "priority_queue.h"
-/*#include <stdio.h>*/
-/*#include <stdlib.h>*/
-/*#include <stdint.h>*/
-/*#include <ctype.h>*/
-/*#include <string.h>*/
+#include <stdlib.h>
-struct PriorityQueue initialize() {
- struct PriorityQueue queue;
+PriorityQueue *initialize() {
+ PriorityQueue *queue = malloc(sizeof(PriorityQueue));
+ queue->size = 0;
return queue;
}
-int count(struct PriorityQueue queue) {
- return 0;
+int count(PriorityQueue *queue) {
+ return queue->size;
+}
+
+void add(PriorityQueue *queue, Node *node) {
+ queue->size++;
}
assignments/01/priority_queue.h
@@ -1,5 +1,12 @@
-struct PriorityQueue {
-};
+typedef struct {
-struct PriorityQueue initialize();
-int count(struct PriorityQueue queue);
+} Node;
+
+typedef struct {
+ int size;
+} PriorityQueue;
+
+
+PriorityQueue *initialize();
+int count(PriorityQueue *queue);
+void add(PriorityQueue *queue, Node *node);
assignments/01/priority_queue_test.c
@@ -18,13 +18,27 @@ BeforeEach(PriorityQueue){ }
AfterEach(PriorityQueue){ }
Ensure(PriorityQueue, returns_size) {
- struct PriorityQueue queue = initialize();
+ PriorityQueue *queue = initialize();
assert_that(count(queue), is_equal_to(0));
}
+Ensure(PriorityQueue, adds_a_node) {
+ PriorityQueue *queue = initialize();
+ Node *node;
+
+ node = malloc(sizeof(Node));
+
+ add(queue, node);
+
+ assert_that(count(queue), is_equal_to(1));
+ free(node);
+ free(queue);
+}
+
TestSuite *priority_queue_tests() {
TestSuite *suite = create_test_suite();
add_test_with_context(suite, PriorityQueue, returns_size);
+ add_test_with_context(suite, PriorityQueue, adds_a_node);
return suite;
}