Commit e291a2c

mo khan <mo.khan@gmail.com>
2020-08-03 19:52:16
Create tuple
1 parent 53434ee
src/02/04/Makefile
@@ -6,8 +6,8 @@ CFLAGS=-std=c99
 TEST_LIBS = -lcgreen
 
 BUILDDIR := build
-OBJS := $(addprefix $(BUILDDIR)/,hash.o list.o)
-TEST_OBJS := $(addprefix $(BUILDDIR)/,hash_test.o list_test.o)
+OBJS := $(addprefix $(BUILDDIR)/,hash.o list.o tuple.o)
+TEST_OBJS := $(addprefix $(BUILDDIR)/,hash_test.o list_test.o tuple_test.o)
 
 $(BUILDDIR)/%.o : %.c
 	$(COMPILE.c) $(OUTPUT_OPTION) $<
src/02/04/tuple.c
@@ -0,0 +1,15 @@
+#include "stdlib.h"
+#include "tuple.h"
+
+Tuple *tuple_initialize(int key, int value)
+{
+  Tuple *tuple = malloc(sizeof(Tuple));
+  tuple->key = key;
+  tuple->value = value;
+  return tuple;
+}
+
+void tuple_destroy(Tuple *tuple)
+{
+  return free(tuple);
+}
src/02/04/tuple.h
@@ -0,0 +1,7 @@
+typedef struct {
+  int key;
+  int value;
+} Tuple;
+
+Tuple *tuple_initialize(int key, int value);
+void tuple_destroy(Tuple *tuple);
src/02/04/tuple_test.c
@@ -0,0 +1,23 @@
+#include "tuple.h"
+#include <cgreen/cgreen.h>
+#include <string.h>
+
+Describe(Tuple);
+BeforeEach(Tuple) {}
+AfterEach(Tuple) {}
+
+Ensure(Tuple, when_initializing_a_tuple) {
+  Tuple *subject = tuple_initialize(21, 100);
+
+  assert_that(subject->key, is_equal_to(21));
+  assert_that(subject->value, is_equal_to(100));
+
+  tuple_destroy(subject);
+}
+
+TestSuite *tuple_tests() {
+  TestSuite *suite = create_test_suite();
+
+  add_test_with_context(suite, Tuple, when_initializing_a_tuple);
+  return suite;
+}