From acfbaabad1cd45c1534d589c53de59dc2154907d Mon Sep 17 00:00:00 2001
From: Florian Burgener <florian.burgener@etu.hesge.ch>
Date: Tue, 24 May 2022 16:00:20 +0200
Subject: [PATCH] Start implementing the Directory

---
 _main.c               |  32 +++++++++++++++++++++++++++++++
 src/Directory.c       |  43 ++++++++++++++++++++++++++++++++++++++++++
 src/Directory.h       |  16 ++++++++++++++++
 src/Directory.o       | Bin 0 -> 17272 bytes
 src/DirectoryRecord.c |  28 +++++++++++++++++++++++++++
 src/DirectoryRecord.h |  17 +++++++++++++++++
 src/DirectoryRecord.o | Bin 0 -> 17416 bytes
 src/bptree.h          |   2 --
 src/main.c            |  27 +++++++++-----------------
 src/main.o            | Bin 17224 -> 14248 bytes
 src/program           | Bin 103096 -> 121624 bytes
 11 files changed, 145 insertions(+), 20 deletions(-)
 create mode 100644 _main.c
 create mode 100644 src/Directory.c
 create mode 100644 src/Directory.h
 create mode 100644 src/Directory.o
 create mode 100644 src/DirectoryRecord.c
 create mode 100644 src/DirectoryRecord.h
 create mode 100644 src/DirectoryRecord.o

diff --git a/_main.c b/_main.c
new file mode 100644
index 0000000..9f584fe
--- /dev/null
+++ b/_main.c
@@ -0,0 +1,32 @@
+#include <assert.h>
+// Warning : stdbool
+#include <stdbool.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "bptree.h"
+#include "sorted_array.h"
+
+int main() {
+    BPTreeNode *root = bptree_init(2);
+    int keys_length = 40;
+    uint64_t keys[] = {8, 12, 11, 47, 22, 95, 86, 40, 33, 78, 28, 5, 75, 88, 21, 56, 82, 51, 93, 66, 48, 70, 57, 65, 35, 4, 60, 41, 49, 55, 68, 72, 23, 31, 30, 42, 18, 87, 24, 58};
+    array_print(keys_length, keys);
+
+    for (int i = 0; i < keys_length; i++) {
+        bptree_insert(root, keys[i], keys[i] * 1000);
+    }
+
+    bptree_print(root, 0);
+
+    for (int i = 0; i < keys_length; i++) {
+        uint64_t data;
+        bool found = bptree_search(root, keys[i], &data);
+
+        assert(found == true);
+        assert(data == keys[i] * 1000);
+    }
+
+    bptree_destroy(&root);
+    return EXIT_SUCCESS;
+}
diff --git a/src/Directory.c b/src/Directory.c
new file mode 100644
index 0000000..796581f
--- /dev/null
+++ b/src/Directory.c
@@ -0,0 +1,43 @@
+#include "Directory.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "DirectoryRecord.h"
+
+Directory *Directory_init() {
+    Directory *directory = (Directory *)malloc(sizeof(Directory));
+    directory->records_length = 0;
+    // WARNING
+    directory->records = (DirectoryRecord **)malloc(sizeof(Directory *) * 1000);
+    return directory;
+}
+
+void Directory_destroy(Directory **directory) {
+    for (int i = 0; i < (*directory)->records_length; i++) {
+        DirectoryRecord_destroy(&(*directory)->records[i]);
+    }
+
+    free((*directory)->records);
+    free(*directory);
+    *directory = NULL;
+}
+
+void Directory_print(Directory *directory) {
+    printf("========================\n");
+
+    for (int i = 0; i < directory->records_length; i++) {
+        DirectoryRecord_print(directory->records[i]);
+
+        if (i < directory->records_length - 1) {
+            printf("------------------------\n");
+        }
+    }
+
+    printf("========================\n");
+}
+
+void Directory_insert(Directory *directory, DirectoryRecord *record) {
+    directory->records[directory->records_length] = record;
+    directory->records_length += 1;
+}
diff --git a/src/Directory.h b/src/Directory.h
new file mode 100644
index 0000000..6063a5f
--- /dev/null
+++ b/src/Directory.h
@@ -0,0 +1,16 @@
+#ifndef DIRECTORY_H
+#define DIRECTORY_H
+
+#include "DirectoryRecord.h"
+
+typedef struct Directory {
+    int records_length;
+    DirectoryRecord **records;
+} Directory;
+
+Directory *Directory_init();
+void Directory_destroy(Directory **directory);
+void Directory_print(Directory *directory);
+void Directory_insert(Directory *directory, DirectoryRecord *record);
+
+#endif
diff --git a/src/Directory.o b/src/Directory.o
new file mode 100644
index 0000000000000000000000000000000000000000..44cdaf0a743353597ff980dca51462dc4e9396e4
GIT binary patch
literal 17272
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
Zmb3~g6R_!509C9E3=Cmt0glFH001IyLVf@M

literal 0
HcmV?d00001

diff --git a/src/DirectoryRecord.c b/src/DirectoryRecord.c
new file mode 100644
index 0000000..94fb4bb
--- /dev/null
+++ b/src/DirectoryRecord.c
@@ -0,0 +1,28 @@
+#include "DirectoryRecord.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+DirectoryRecord *DirectoryRecord_init(char phone_number[11], char name[21], char surname[21], int birth_date_year, int birth_date_month, int birth_date_day) {
+    DirectoryRecord *record = (DirectoryRecord *)malloc(sizeof(DirectoryRecord));
+    strcpy(record->phone_number, phone_number);
+    strcpy(record->name, name);
+    strcpy(record->surname, surname);
+    record->birth_date_year = birth_date_year;
+    record->birth_date_month = birth_date_month;
+    record->birth_date_day = birth_date_day;
+    return record;
+}
+
+void DirectoryRecord_destroy(DirectoryRecord **record) {
+    free(*record);
+    *record = NULL;
+}
+
+void DirectoryRecord_print(DirectoryRecord *record) {
+    printf("Phone Number: %s\n", record->phone_number);
+    printf("Name: %s\n", record->name);
+    printf("Surname: %s\n", record->surname);
+    printf("Birth Date: %d-%.2d-%.2d\n", record->birth_date_year, record->birth_date_month, record->birth_date_day);
+}
diff --git a/src/DirectoryRecord.h b/src/DirectoryRecord.h
new file mode 100644
index 0000000..a398b96
--- /dev/null
+++ b/src/DirectoryRecord.h
@@ -0,0 +1,17 @@
+#ifndef DIRECTORY_RECORD_H
+#define DIRECTORY_RECORD_H
+
+typedef struct DirectoryRecord {
+    char phone_number[11];
+    char name[21];
+    char surname[21];
+    int birth_date_year;
+    int birth_date_month;
+    int birth_date_day;
+} DirectoryRecord;
+
+DirectoryRecord *DirectoryRecord_init(char phone_number[11], char name[21], char surname[21], int birth_date_year, int birth_date_month, int birth_date_day);
+void DirectoryRecord_destroy(DirectoryRecord **record);
+void DirectoryRecord_print(DirectoryRecord *record);
+
+#endif
diff --git a/src/DirectoryRecord.o b/src/DirectoryRecord.o
new file mode 100644
index 0000000000000000000000000000000000000000..86700a2bced8ec1297755924790fa9a47b1b5744
GIT binary patch
literal 17416
zcmb<-^>JfjWMqH=Mg}_u1P><4z`$XRU^{@B4h$*`$_$_R<$gJadv<<z4D;-~<{0YO
zdDbx`)TQ%iuuJD@kLEWL9-TER9Q$1u7#LoFwE1+0sBrA!W?*3O>^$PpdEBS-8d%)3
zw?>6~mnZ`RgHPu_xQGH&<QrVX!lUzt$H5oO{M#BB8vfU}94KM2VXn&pX}59h%uzwe
zPXNh#bpB|5z}|d-+2TSCOUtEF8<0W=$IcuT8>|M2J9fsXICwN4k?`q!5FP6n;~480
z=NNw&Y(IiX)8m(K0eJ`P|4@(4zrh}zzda7VX7*@)!_lxCWHm#nf=9PKSPx7<#N)Ut
zSeHlh5sv6sh^Zc(@4<@F_~l&~z~%*ebp8Sv*J}z=ydM-Dh6liEJbHt<p?nXBEKFDd
zt8ldg+?QB`BhRC^+Qy~ZnSe4UkKSsFZf``8VKq#=JJ<s1DyU<kUxGXUb|QiR2_bMm
zMt)wZf?sKFQfiTvf@(1rLW(GsUt(@5Ir?CR2bUJ*QDTHsW>HCof=glv$Q3ENs(MBc
zf>?iO>G?PtFt}tEr6!l;7gYwOCg&HW=p{3N#ErnDA(%9VIT!~m1QmzmO(=&1iWjPu
zT>UWrlB-{eO#4CQ&ps9g1_qB_TaXdp6bE8JF-RViClTonSv4phqUtc_U|;|l$H2e=
z%6AMrP;=mv5fhxr0A{+dun2TAFfcHK#93ImKx`<7jcW}90|Pfih8@gNfN(fC_b@Op
zSU@<OV2%xh!v*FzFt99OU|^WZz`(!?BDfgXIM_iJuracMD0Yx6SP94+uo4jl4i?tT
zyb=aZkOCHNW?cpb2%GhyILHh(7O)9i9BhmnASG-}U_R7DHYQfEAP1NNo540i5>yvJ
z*fXU;Y;F#a#XRzi3=q%XU^nF0$OQE~yD>Y+H4x9Un{k3vae#frZVu)MKsXj)js%2b
z3Fbh8h209w(SXQUgE<Bejt!Ut2{3kBFvkHR;{fJ(Ksb(IP5^}C1m;9QI4)wRm>3um
zARIT53rq|Q84!*K*wqCPjwhH?0^xXZvokU<R6sbsLa!MZ7#biPKmJb)3=B;Wjz7mW
zCI*IP2q%#L8509T2ZR&JE6m8iFag4e7XQe^z%T>CiIM!n#K5os!ifbtX9a{4$N7kX
zfnfuL6VG*?fq`KMgp&Yv+W`nCiGzumf#C=whB??JwHO%~z?qm`n~x6^liVCfnHU(j
zIY1KNlmc=WIHiC@_cAdsK$X2gFuyY~KoXu1Gc@4|Gw_29<Lu;<V+QF1MK(mF3oHU*
zcO%$bQaqqUz!JyIz!1#Lz#zcD4vHIYj^zvt4D6uD-~ka}eO%H~ASG;&GzU%Lf*|`C
z#lguO!~}%~h-RFl#LB<`F6S7<bwO;9C<qJh0w-h;lL3@S85kHPSQ%Lu7(`AZNr2iG
zU?n%%85qPELm3Ul7(+P0fe8{8V+>>}W?*0tM>Y(c!9lX(AcBE`fl-n*iX4Nv2^uWL
zx|tk<6&M&$ybpFKqcrO;bi*XTG7Jn1*uBrdAPH0OlpP<3ft%wn0|NsjmW1H3<OS8u
zIHwaHOF{-9HdF#({s(09|FSbMz+;Ak0~|9<WuQ`%0~E#JYJrhm2*idN^bN{joHKzP
zmLS-5K!pud0-8wJow0}oVG&CPC0I1Q6<Eajkj11y8W=gmkX<GWau7%ygu&GZBPZ)5
zHU<WfwMYq3WFZm<?ss9R-)k7e7(-Yl?x<%IV+>@pW?&FUHWZ#9!TA7`Ah}pSl4t?9
z7-I-iJp;&iSAxcKvj(t}=6(f`@pUlcWk5jz!g3r83>lD|$Hd`+NDbN?NU05j!ypUN
z%M`%~iZ*6Y)|7(^s4_Azz}U&4TntvpoXH4^BxX<|2g@>NDu86=85BVJK$tm-M-fDW
zFb{(ghyr15Qzl*{aqLWlYH21uBqa=tf{dzs!raV!(tLu9LhJ(K3=B-djLdx8+*aJy
z+?L#o!VC<|ybR2I5U!`N1vdi&3nQbaFi3_~k-<|~pPPY!O@)D*+m4%=kAZ<*jlolx
zfq?@m!ok46DTbt<fq{#kft#Cwfg41DRPvaEHSi)-F);86GcfbnNHQ?+n;_}6mjnq3
zfZQ*r$7nAJbCtRz$n6di)14$it`cHJ(!(Ua-ASB*L0Fd2P&kNjhZA?Gcm#JOcR1K*
zBCHIC!cY~WolT64f{cd33=CpjO^ggo5)+*y7#PIi8bNj-v`RpfPj!+6>5%MfVq}15
zmO^!zr!Yt#+-=gx{(;&o12M`F9Hg@7+7-A>z`l}0_7wwzJg8h$&|?6FNgf|8Bp4VJ
zQH2;7lu!g%EkRvaP`ZKO0B~++U`U73j0~YLW-eSP5XO{)W@AQ%U>H*wD#XI@nK5)e
zj0bCMGBN~1>_L!>3?Wd1^Pn^rq~QfpG9N@BV<rZes#c;@!&J>7LNx;e57hB6XXA4T
zlB=L*D?n*RhEN#O1}+o^W7<N6AOQs9IYLDl8A4%9FSt+`l3f@~ZKwz%Lnw?1t5}#B
zChn+*O5>#Tp)!mNAu#4MxKKQd`5Y<)a&^dj7!PI<BSSn?9w!Aen~@<9#(V-*%*YT2
zW5NsuSrdrGnmDKyoD|G#Mus356W;D(h=nm>)-W*?Sisl_zr^A+9WDVgn~@;`#=HlW
zWMl|~F&{vMm>6noU~HImObi7!FgC(!yfF<j4Q3l7LnMrO7bFg<K^cN!OqjvU3<U=m
zU>t-k7<mwC0t2|`$-uzi4i#Wz2!JtR?q_6(fiYnQGcp9gm<T&!phmzcP-@0BKMH2P
z2UH=}G>cs?+-)$uj0_mIGBLm;qo5XGNvn`t4^!w1RmjXx!#y9yiG&I=GK9jIFayEr
zpwe)Pi2){^0~KRrz(~9hdtnM;S%{gTMqxgTlMUA$3S+_y1gnEe!zmpGXor>o+%<-a
z!wO)y0F+?>rLCYeEQVl#0TqT*u(BFPhk~Mpfq@|cN=HL!SSbzH2xY)ZSXqeQ8PKZ@
zs4_Tp8{8-NU}RumWc<y?%fQG89^(b^^-GJ3^fU94b4pWE^(!pQ;>}ESb29TvD|FNI
zO7)X6ONtr5N^&xj^wX1*F_l=tbVJnPHA=svvLF>|AXFg(meDQ-28QC2qRhPX__X|@
zlFYQs)D*o8P*<+FBqcN72*O4mB+CH#wzwoEB{fYi12h}~whN-RxTL5wxg_4r)5ldW
z15_^}SYRXdGC-p|#g)bJsYOLOnZ+eAZ7DgKNf1e!q|(fs65Y%^JCHpLtn(NdIH94>
zz#zfK$jZv*%{q^fO^{<3t5IYG3ll3B^CgA|7DiSh=5_V+SXtR@S(sQEna?vYvNDUX
za<MV4VF77k-cZj7mN*BOh&Ta}*$9<6iy^bAo{?3SjgeK3V?L{FI4dh#B&!@7BgZ^e
z8E;lO2w#Sckwbx%m2Dy`Bb#uOf}Wn99;=KTNLDtS)q?F6)WsHTf~>5OtQN(rtlqoW
zB3XIa7+D!Pgwt4A<yd(mSxwn)LKLzvvobPY1UrO<k=2xqc}+bd3o|Ph^A!dKkO1?V
zdK)O;W>*Qs{p-L=7@04CwSm0Mkp_`j50ya#222JN8X&9AF)$Ut0*Zx^m63U4J%<q3
zg7XXtpipH61zbb~6DtEFV?j}7UP&55e0+XdT6_sZyr+MBQEFmJd_hSOLvCVDPJS{&
zd~!x&W*$RvW>qRkMR7)cQAtv18bcCjz&1W5u_QG<C9#qrK0dKHF)zL-wIIK!B)+&L
zzbMs&AtygCT>&(dhDFu_Y+F)kT6|JsaVkV9Sbb?;ab|j6Y6@5*T3U@yNi8lZ$_H6j
zT$IdE3>kE0NGnQBWr$DCPf1NKD?u^}WHr>V<c!23^b8XZ_C7;=T4qjaUOq#7d~r!p
zazSN$az-}Tap0gx%}YVo#}J>ElbBu%Rs-??NJ)HhX;FM~eokp_9#|aa7^GmTOie6e
zh=*932C*bRCj}Jr#i=C>a5^5GUo!LJG2D}zSd^Vw!~n{8c?>AQ6b}l4qSWGeP|RS4
zA}C(Vi!w`6!4V4@r)L0V*}T-EA_j1TDxjL?=^tO5Se6QjnF7$vLVO;0W&u>XBo|aN
z#OLHEXG4R*h#@{VKP469to+gv^stK0%*%u%EQkZZVFivxa4><)0VOL>e{dPY5Rc@0
z<OG$IpO|8TSJr}|2t4Kw_8GJ=Vu*(XSurBC!07-fQgZY2N;05<07@?4pvp`ECF+ty
zhWN6Q#H5^5SloaLKXec3B{P7{#N~2mR=_K50m*@8CeWY&Cp>Vr067O76_9XC%Pj$=
zpu`kYhWOIF(&E$<BT%@5;t`}WDKR;_v;Y!q`nh=}`pNpC#i>Qb`e`}&MVb08sm0kP
z`33sL$r<_iIl3vZ$r61~UUK&fRd6;mSFqGG(KArc%`GX-OSMf;%}XuHOjgj%O)N^z
zu&uB#(={_u&`np+^-oJIE>X};D^ASIEXk}&wM|S(DM~FaMi$CRP0Uu%O-n4U%uCKF
z%FoL$E!Hi~E6>bJ(FF%9SaC^Wa<*<kQGN+{;zk#gz4OvRrhp}qa}tX)VA7fSc?!B|
z$!SP@26)N`RXz;y<%p>B^pA%mIY>aFluxkagr3AK7#Q50ovjo!LX%4KN=hMtp=($Q
z<{8!*8R!|9=oxB4#KF}WXpTbwG`j$5w)%yFs?P%;G0;c~NP!550JV;*f*2Sp1Q?}x
z*f}OJGJu<furVEQtJRH9pr6T=Poj_6l~19U#g$K^ht-kKppDIi&!U;#oiBiC2N$1(
z3!i}_pN12kf)k&F6Q6(+ABQ71g9ZZwLk83y@c5xCpFkUv3!g+Yvp1hY8W*30BcFgH
zSSbU@&M8o};O>YkpFlGc(@8Eq4p&fD9ORcRP<hyx8mMc30xG5sqCNNoqWDl7cpzb9
z3~Gn5Fns)vECypUgIXjo4ie1_YG5GoVN7OF8w18cqL~@Mb1X<A5GFGNd^i;%0413j
zkOmB)VjzkcGWZW-!m%*8Aq$?e0gJ)H0>oiv0EHBYg^HOW69*`Qpph;nByn)~K~*qA
z<^-TT1jP&)6-Ed^S<DO|S3x;Q6f*-Xl_3d&XVSz_1)w};22hMbIY<;UVl)v+6f`LX
z9;8JP196xkqlzFV3TB23D58jgILr+4APNIBgHt7{upt9zNE(!iAmZRW!oa}b#sHcM
zfrufKpq>{f?IMeT*vUB57vK<Yh1m<W8l0aP7#QZ_P`?O=_%<Bkr=jM<2D-p`kb!~W
zArAHLaELQ8Vh;xy9O4={#659{W2xrii%XN@UE&Q43@k0<4H&>&Pbk+AT|KnkclYsk
za`cJ!cXJDN4T%qNbn<bHhqo+I+FK~)Gqlpg)%pXqcF<a!pb{NajUt!mU{fqGTn26R
zp)|x$YzLVIYHWbbD$OfOP0uVYNiB*`&&f|p%qfQ13~AXwbe5$S6=&w>#ph-g=O&gU
zXT&FGq$X#_mmxU`%@9!HWME(bb(ld+P@MtFWq<xd0BE5POdM2Z!^B}DG$8fJ;;`}`
zT^u}L&j6W=2aW8*%y|nk9E&(;Iu;}aG6z|`A~ZjM#6h_jW{w?_IB04BChmqL4jLeb
ziN`_3K|MfF=?xRlf{KI8S7u;ffQi>Y#bN4gK#pTzU}%JjqpP0`6^E&>fvTSY6-QSu
z1X2ht>lwhc324>>q(ucP4pOgz<Q`2N;(9p5<&ngZ{ROfEgh9>%g#(BU!myGVB#vB*
zfx;Ff4-<#U!Pbd@#6jjXfE0lSM4&WC9HbUzZUUM(NDd?f(+5%yG6!bv43H$K{ldTi
zu2sR4K@1EGpydl7DUf=Q86XVe9{>?h^&oR#{2NH(Ahn<{1qs0h^U%$Ktrr0WAE?%b
zr3dhQDKy=xBE<{HED#2ngWNKK)!?9bR6|k^p0kIV1FDl@=7T3nq3HqHUQpbD%m<kR
zYHz{RgTz1>WG`~70OUuIIA}c&c#a;#VPJr-g8_+yYHe<ifv|aC1_lP0xCyiY32S%2
z#BW2zVYAF2dqH6YHJ(8e$^fZHZY}5`iG%D_2WezrV1O-01gQs!!_qx$01hVp6{<cI
z&7A#EeiD?1sZWBc&qosnt&9K(!SW?cJ<J_*K$1w|a20CKVl;6#XgC}}6NmZh0-CrM
zln)ylhuOOuYCdcP87BS`8mOT97o-&?&I}d*3KB$e=VK`U50r+fhpgLSU|@#Y0~3c0
zutHWxA>tjB=0HY>psDYK`d1rGyaVbU3p8<aDBl%I!|a8n#UM0sDJVZ4O2gDohT5Bh
zCVm^5ZY$BmpF{a=P#R`V2GpIf@);&x3-T<eJV8?rt5?>diHkwa*@Y&48tTsDXyOZ@
z;#bhbA3)7{h$arp=kL(OS)u&jP#WfbJE%DvP#Pv)4^=0MCJvibQ$iDmEZkyX&_@#o
zwSz%HWP>Jd0p)u_X_&p;P<zAB#Ls{XVPIfLMiajPjmH8s@k3DYS~T$!Q1iRc#J51h
zc{-Z78<f8UO2gc_8>)U2nz%kxd>@)P%pJ$j#8*Mx^A=4!3@ZKuO&qi!3ltQ>P<vqR
z*$P#!iYD#@)o+L<egw+5h0-u{enHL2L=(RPHK!a+{3^&X3=9l)XyRQ^amZ>oMEUR@
zD&7TE53&wqG^{@XOYboEoCQfTFfgovst1XK`bi)fWE5n59K?K(I7keHcS6;}%!f_5
z9D<62^n=#Uz$S1mA&G;`sRJ3pz`$?~O&nJ4!|E}Z`LGF_k5Kg>aZvjKY77G#G(CdE
zL0*EX=f@$g4HXBu6XYJy0#cA!`e@>-K!OYm3?@)<nE9}YdoLt$kb7Y5qIe{6kb7Y2
zGjNEvK*eG1xdpYi15F&(PU?k<!`uT~K(H7|9ONEYyKM)OILJM)iLQfCage>B_yYBN
zK~`Tx5(kA3tRA|GCe8+O00RTVEvPt%3o;+JMBxLHILJM)_TFzKagcfq5W&E}09m34
zSzZVd(ghI=3=E<m&CqruNC-Azs0kGZxgXR%SqO4G0|SErR2=3W*pQMtR2-%rmi~i~
z#6kXr)h}Ua;wB&i85kI%q2eGe$UUHCQXs1{(8QfU3K$p|O3}n&<@^MwILtl4Aj23K
z7-mDoLE520AmbS}LB(O}VePTKNa7&(Zvkm!U|=|iCcXhGehf(*6mGEg+eIXCkU3wV
z>aU`Szk!P1LJ|j=18eU+MG^;@6AksmOEhtqf8QaAgUo@o4}T(wgUmSuHRmsy_%5h8
z6SQFs3m;f}k{3xFWR51Z91%nlmxqdrA&G<B18aXOB8h{{Sp-$DiY7h_Dz1ej4l)Op
z-b|6iLFRBk^MfUtIBaOs2`UZ>c92(L6XD)aagcvO`4^l>K<N`n9ArMM+=)jMPl4K-
zfhN8LDxQNTz5ps-2o;C92i6~$jzfF_4)Hxuagh5#?z{sv{{Wgetb93%Ce8{?2WQd5
z|3l5W1Qmz56SkV+8xHaRIK-u)4R4q`L!kD`qlv@H5e+o)TBv#*H1Tq%xFJ*==1$lu
zia<1RSbds_CjJH*@nvY@AEDySXyUN((uq)UkiS6b(-4%n7#J89p^2A4#n+*U?}VDa
z8%-Q4%y0%xd>u4j+(HvC0(qQ)f#Dtw@n>k_ub}b!3Qc?>)SVyE#E(NA^c9ErKQ!@w
zQ1h9fg9WhgSr0Xz6HOd8zQ&6to(1)<2%0!A)V~sF;;{aYJeoLYEDz)bWgOx<XyUMO
zX#+HIZ>W1Ff((P!r_dw_7J-%DAm@R^VeJ{%cpyw1)~=8S2_TsRtKXs72s~Z^8%qIM
z0LtSa8l(*xlprnxY=I8CIBZ-Cq!xt1iWwLfVEF?i2EwrV9X1{X5(8mayLSgvBS;Jy
zBw!I(zXv3aJU+vqS6rD}l9<GxS6osAp)+8tqSTy3y^_?55(d4L#F9h?y`<t|2EC$u
z2nRxgv>ECdGU$O7gJeJ~y`22y#2ly~$OOIAip&xyKP@vaGd{7XD6vuxJcbSx1}iHr
zNh~TUEr1GvMwYRtOi4{DO^?saOUq}_gRm2ml8RExpt>MJpfwvHrzFCZ6eZ@RrxwF>
zz<3a6gAL5d%u9ty7nc+<=q2ap=BDPAFzDswm!#^s`-SQjgC=94{Pet1y@I0rg4Cjt
zN~q1L8S!aFiMgrZ5T}d)r3X+Nfu%2)X|Qw(YZt=AVd)LV2aTbFvNlXTOxyxG;P?Y%
zI0FL%XiOT!grybO_$X+M5F`%GMlkIRMW6%(=OGv%wFn+$JRf8xx%xr<eUO>x)-}Kc
zK$1ung2D@l%U}u3t47Fz@cmW{46t!9m^92d7!6u*2x6nVAF^8tYB)?Y0|R0^08|Xr
zPQVua2B3fisRtPj4S!IP3<@idR#^Ch#t}hE(BmIGsSfHVfD|KP^!NuYp2cQ=0BDdG
z)Ng?51;syTY#81CA_fNVtSq|!Z-5L1^<SX+VH8Y1jLwCQDWj*q2B`foe}e1>l}9jr
zFmceXM{NFo0JR@#49t24bpL~PQ-hSE+dl)U5jOr0vLCd~4c&gw_$#P9NB2Lh-v(0;
za{!DFqo?EW{|~7BFn@yV2aQF-^ufe8V<s`MRRW;Oih+T_9Hs#*3h75enP6%i4*LZ_
zgZ7|&01YsZ{h+x7m~k-sLG>dj{K1AH5$>SCVqjqSh9-%|Ww?aH{k9;_GB7Zlg8Bny
zG`jw?INU$M0-^&s{y^<HboYbilhMrt>12maB*5C2ATba|R|{IgjV=9rfZ7k!4+=lf
z>H>88LG4j=GeP#4L+yvn8-c_?7+oz3XlX4-0u5h>>c0;w2ch!l`aug$u(@9WR4_6y
zz*jzi+z*;VL3h6Z)P9&hq1G^LgC-Cm9PtNp2dKRSVx#Ln0h&xjn(u{~3sMVW!)O(#
z{U9-9`~|8XSq#L6=>xGr7&LwXDp%2hiQxxSKYD!u^FK&02>U?oN7pX_o%n;z*MZc6
zFuHzsM#x+<dii4k4gU&|CTRH&nn#A|hXyaWnTKvSNXrkX{WqWm6KGuxw)g{;=};vg
iZE$=6q=A8fArURW(7520H`w%VfVv+xt_(96T|WS}rhUEu

literal 0
HcmV?d00001

diff --git a/src/bptree.h b/src/bptree.h
index bff78b3..05fdd19 100644
--- a/src/bptree.h
+++ b/src/bptree.h
@@ -21,8 +21,6 @@ void bptree_destroy(BPTreeNode **root);
 void bptree_print(BPTreeNode *root, int depth);
 bool bptree_search(BPTreeNode *root, uint64_t key, uint64_t *data);
 
-// ...
-
 // Insertion
 
 void bptree_insert(BPTreeNode *root, uint64_t key, uint64_t data);
diff --git a/src/main.c b/src/main.c
index 9f584fe..ee5ea62 100644
--- a/src/main.c
+++ b/src/main.c
@@ -4,29 +4,20 @@
 #include <stdio.h>
 #include <stdlib.h>
 
+#include "Directory.h"
+#include "DirectoryRecord.h"
 #include "bptree.h"
 #include "sorted_array.h"
 
 int main() {
-    BPTreeNode *root = bptree_init(2);
-    int keys_length = 40;
-    uint64_t keys[] = {8, 12, 11, 47, 22, 95, 86, 40, 33, 78, 28, 5, 75, 88, 21, 56, 82, 51, 93, 66, 48, 70, 57, 65, 35, 4, 60, 41, 49, 55, 68, 72, 23, 31, 30, 42, 18, 87, 24, 58};
-    array_print(keys_length, keys);
+    BPTreeNode *index = bptree_init(2);
 
-    for (int i = 0; i < keys_length; i++) {
-        bptree_insert(root, keys[i], keys[i] * 1000);
-    }
+    Directory *directory = Directory_init();
+    Directory_insert(directory, DirectoryRecord_init("0794592180", "Florian", "Burgener", 2000, 10, 03));
+    Directory_insert(directory, DirectoryRecord_init("0799494969", "Daisy", "Luna", 1995, 05, 31));
+    Directory_print(directory);
 
-    bptree_print(root, 0);
-
-    for (int i = 0; i < keys_length; i++) {
-        uint64_t data;
-        bool found = bptree_search(root, keys[i], &data);
-
-        assert(found == true);
-        assert(data == keys[i] * 1000);
-    }
-
-    bptree_destroy(&root);
+    Directory_destroy(&directory);
+    bptree_destroy(&index);
     return EXIT_SUCCESS;
 }
diff --git a/src/main.o b/src/main.o
index 48a3065119e6f7e4a258d9e3f7cababf73859fc3..ca2341be399e9bed35f53bf070ec7056618708e1 100644
GIT binary patch
literal 14248
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
F4*;WNrbPe%

literal 17224
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
WVl*yzWf(U70Z{iBqiI0nG5`R`<_-4%

diff --git a/src/program b/src/program
index 9e4a14ec81fca974afb54dcc39df11dba1aa35df..c0146df79aba0eb288537ce614d67e08d5b8afbd 100644
GIT binary patch
delta 38454
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
A`2YX_

delta 27636
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

-- 
GitLab