summaryrefslogtreecommitdiff
path: root/src/02
diff options
context:
space:
mode:
authormo khan <mo.khan@gmail.com>2020-08-03 13:52:16 -0600
committermo khan <mo.khan@gmail.com>2020-08-03 13:52:16 -0600
commite291a2c6b57af1889010529031e07d5236fc1570 (patch)
tree87471368ed2dda394ca6fe17e46ba3d513e35dae /src/02
parent53434ee474a036340afb9f05ad083a6c43d81eac (diff)
Create tuple
Diffstat (limited to 'src/02')
-rw-r--r--src/02/04/Makefile4
-rw-r--r--src/02/04/tuple.c15
-rw-r--r--src/02/04/tuple.h7
-rw-r--r--src/02/04/tuple_test.c23
4 files changed, 47 insertions, 2 deletions
diff --git a/src/02/04/Makefile b/src/02/04/Makefile
index a710855..30635fe 100644
--- a/src/02/04/Makefile
+++ b/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) $<
diff --git a/src/02/04/tuple.c b/src/02/04/tuple.c
new file mode 100644
index 0000000..4e27015
--- /dev/null
+++ b/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);
+}
diff --git a/src/02/04/tuple.h b/src/02/04/tuple.h
new file mode 100644
index 0000000..1926065
--- /dev/null
+++ b/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);
diff --git a/src/02/04/tuple_test.c b/src/02/04/tuple_test.c
new file mode 100644
index 0000000..88da4ba
--- /dev/null
+++ b/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;
+}