From cb2c33ff12dc986803391f41e31f215772d8cf27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yannik=20Baumg=C3=A4rtner?= Date: Thu, 27 Nov 2025 14:30:22 +0100 Subject: [PATCH] Endlich fertig --- imageInput.c | 2 +- imageInputTests.c | 183 ++++++++++++++- runImageInputTests | Bin 0 -> 40640 bytes .../Resources/DWARF/runImageInputTests | Bin 40129 -> 40930 bytes .../Relocations/x86_64/runImageInputTests.yml | 213 +++++++++--------- runMatrixTests | Bin 0 -> 44888 bytes .../Contents/Resources/DWARF/runMatrixTests | Bin 42725 -> 42725 bytes runNeuralNetworkTests | Bin 0 -> 50872 bytes .../Resources/DWARF/runNeuralNetworkTests | Bin 51521 -> 51521 bytes 9 files changed, 280 insertions(+), 118 deletions(-) create mode 100755 runImageInputTests create mode 100755 runMatrixTests create mode 100755 runNeuralNetworkTests diff --git a/imageInput.c b/imageInput.c index b433e1b..3202ca0 100644 --- a/imageInput.c +++ b/imageInput.c @@ -36,7 +36,7 @@ static int checkheader(FILE *path, unsigned short *count, unsigned short *width, return 0; } - // Danach folgen im File: count, width, height (je 2 Bytes) + // Danach folgen in der Datei: count, width, height (je 2 Bytes) if (fread(count, sizeof(unsigned short), 1, path) != 1) return 0; diff --git a/imageInputTests.c b/imageInputTests.c index 03240ab..c3d9a53 100644 --- a/imageInputTests.c +++ b/imageInputTests.c @@ -1,12 +1,15 @@ - #include #include #include #include "unity.h" #include "imageInput.h" +#define FILE_HEADER_STRING "__info2_image_file_format__" - -static void prepareImageFile(const char *path, unsigned short int width, unsigned short int height, unsigned int short numberOfImages, unsigned char label) +/* + * Hilfsfunktion, um testweise eine valide .info2-Datei zu erzeugen. + * Diese wird von mehreren Tests genutzt. + */ +static void prepareImageFile(const char *path, unsigned short int width, unsigned short int height, unsigned short numberOfImages, unsigned char label) { FILE *file = fopen(path, "wb"); @@ -17,7 +20,7 @@ static void prepareImageFile(const char *path, unsigned short int width, unsigne if(zeroBuffer != NULL) { - fwrite(fileTag, sizeof(fileTag[0]), strlen(fileTag), file); + fwrite(fileTag, 1, strlen(fileTag), file); fwrite(&numberOfImages, sizeof(numberOfImages), 1, file); fwrite(&width, sizeof(width), 1, file); fwrite(&height, sizeof(height), 1, file); @@ -36,15 +39,22 @@ static void prepareImageFile(const char *path, unsigned short int width, unsigne } +/**************************************************** + * Bestehende Tests * + ****************************************************/ + void test_readImagesReturnsCorrectNumberOfImages(void) { GrayScaleImageSeries *series = NULL; const unsigned short expectedNumberOfImages = 2; const char *path = "testFile.info2"; + prepareImageFile(path, 8, 8, expectedNumberOfImages, 1); series = readImages(path); + TEST_ASSERT_NOT_NULL(series); TEST_ASSERT_EQUAL_UINT16(expectedNumberOfImages, series->count); + clearSeries(series); remove(path); } @@ -54,13 +64,16 @@ void test_readImagesReturnsCorrectImageWidth(void) GrayScaleImageSeries *series = NULL; const unsigned short expectedWidth = 10; const char *path = "testFile.info2"; + prepareImageFile(path, expectedWidth, 8, 2, 1); series = readImages(path); + TEST_ASSERT_NOT_NULL(series); TEST_ASSERT_NOT_NULL(series->images); TEST_ASSERT_EQUAL_UINT16(2, series->count); TEST_ASSERT_EQUAL_UINT16(expectedWidth, series->images[0].width); TEST_ASSERT_EQUAL_UINT16(expectedWidth, series->images[1].width); + clearSeries(series); remove(path); } @@ -70,13 +83,16 @@ void test_readImagesReturnsCorrectImageHeight(void) GrayScaleImageSeries *series = NULL; const unsigned short expectedHeight = 10; const char *path = "testFile.info2"; + prepareImageFile(path, 8, expectedHeight, 2, 1); series = readImages(path); + TEST_ASSERT_NOT_NULL(series); TEST_ASSERT_NOT_NULL(series->images); TEST_ASSERT_EQUAL_UINT16(2, series->count); TEST_ASSERT_EQUAL_UINT16(expectedHeight, series->images[0].height); TEST_ASSERT_EQUAL_UINT16(expectedHeight, series->images[1].height); + clearSeries(series); remove(path); } @@ -84,17 +100,21 @@ void test_readImagesReturnsCorrectImageHeight(void) void test_readImagesReturnsCorrectLabels(void) { const unsigned char expectedLabel = 15; - GrayScaleImageSeries *series = NULL; const char *path = "testFile.info2"; + prepareImageFile(path, 8, 8, 2, expectedLabel); series = readImages(path); + TEST_ASSERT_NOT_NULL(series); TEST_ASSERT_NOT_NULL(series->labels); TEST_ASSERT_EQUAL_UINT16(2, series->count); - for (int i = 0; i < 2; i++) { + + for (int i = 0; i < 2; i++) + { TEST_ASSERT_EQUAL_UINT8(expectedLabel, series->labels[i]); } + clearSeries(series); remove(path); } @@ -110,28 +130,162 @@ void test_readImagesFailsOnWrongFileTag(void) { const char *path = "testFile.info2"; FILE *file = fopen(path, "w"); + if(file != NULL) { fprintf(file, "some_tag "); fclose(file); TEST_ASSERT_NULL(readImages(path)); } + remove(path); } -void setUp(void) { - // Falls notwendig, kann hier Vorbereitungsarbeit gemacht werden + + +/**************************************************** + * Neue Tests * + ****************************************************/ + +/* + * Dieser Test prüft, ob readImages() korrekt fehlschlägt, + * wenn die Datei zwar den Header-String enthält, aber + * NICHT die erforderlichen folgenden Meta-Informationen: + * + * - numberOfImages + * - width + * - height + * + * Der Header allein reicht NICHT aus – daher MUSS readImages() + * die Datei als ungültig erkennen und NULL zurückgeben. + */ +void test_readImagesFailsOnIncompleteHeader(void) +{ + const char *path = "test_incomplete_header.info2"; + + FILE *file = fopen(path, "wb"); + + /* + * Wir schreiben absichtlich NUR den Datei-Header FILE_HEADER_STRING. + * Danach müssten aber 3 Werte folgen: + * + * unsigned short count + * unsigned short width + * unsigned short height + * + * Da diese fehlen, wird readImages() beim Lesen feststellen, + * dass fread() nicht genug Daten bekommt → Fehler → NULL. + */ + fwrite(FILE_HEADER_STRING, 1, strlen(FILE_HEADER_STRING), file); + + fclose(file); + + TEST_ASSERT_NULL(readImages(path)); + + remove(path); } -void tearDown(void) { - // Hier kann Bereinigungsarbeit nach jedem Test durchgeführt werden + + +/* + * Dieser Test erzeugt eine Datei mit + * count = 1 + * width = 4 + * height = 4 + * + * Daraus folgt: + * 1 Bild → 16 Pixelbytes + 1 Labelbyte müssen folgen. + * + * WIR SCHREIBEN ABER NUR 5 Pixelbytes! + * + * Das bedeutet: + * - loadImageData() erhält weniger Daten als erwartet + * - fread() liefert eine zu kleine Anzahl gelesener Bytes + * - loadImageData() gibt 0 zurück + * - readImages() erkennt den Fehler und gibt NULL zurück + */ +void test_readImagesFailsOnTooFewPixels(void) +{ + const char *path = "test_incomplete_pixels.info2"; + FILE *file = fopen(path, "wb"); + + unsigned short count = 1, width = 4, height = 4; + + /* Header + reguläre Metadaten */ + fwrite(FILE_HEADER_STRING, 1, strlen(FILE_HEADER_STRING), file); + fwrite(&count, sizeof(count), 1, file); + fwrite(&width, sizeof(width), 1, file); + fwrite(&height, sizeof(height), 1, file); + + /* + * Erwartet wären 4 × 4 = 16 Pixelbytes. + * Wir schreiben ABSICHTLICH NUR 5. + */ + unsigned char pixels[5] = {0}; + fwrite(pixels, 1, 5, file); + + fclose(file); + + /* Erwartung: Fehler erkannt → NULL */ + TEST_ASSERT_NULL(readImages(path)); + + remove(path); } + + +/* + * Test prüft ungültige Meta-Daten: + * + * width = 0 → Ein Bild mit Breite 0 existiert nicht. + * + * Auch height = 0 wäre ungültig. + * + * readImages() muss solche Fälle erkennen, bevor Speicher + * allokiert wird. Sobald width oder height 0 ist, muss + * readImages() abbrechen → NULL zurückgeben. + */ +void test_readImagesFailsOnZeroWidthOrHeight(void) +{ + const char *path = "test_zero_dims.info2"; + FILE *file = fopen(path, "wb"); + + unsigned short count = 1, width = 0, height = 5; + + /* Header + fehlerhafte Metadaten */ + fwrite(FILE_HEADER_STRING, 1, strlen(FILE_HEADER_STRING), file); + fwrite(&count, sizeof(count), 1, file); + fwrite(&width, sizeof(width), 1, file); + fwrite(&height, sizeof(height), 1, file); + + fclose(file); + + TEST_ASSERT_NULL(readImages(path)); + + remove(path); +} + + + +/**************************************************** + * Unity Setup/Teardown * + ****************************************************/ + +void setUp(void) { /* nicht benötigt */ } +void tearDown(void) { /* nicht benötigt */ } + + + +/**************************************************** + * MAIN * + ****************************************************/ + int main() { UNITY_BEGIN(); - + printf("\n============================\nImage input tests\n============================\n"); + RUN_TEST(test_readImagesReturnsCorrectNumberOfImages); RUN_TEST(test_readImagesReturnsCorrectImageWidth); RUN_TEST(test_readImagesReturnsCorrectImageHeight); @@ -139,5 +293,10 @@ int main() RUN_TEST(test_readImagesReturnsNullOnNotExistingPath); RUN_TEST(test_readImagesFailsOnWrongFileTag); + /* Neue Tests */ + RUN_TEST(test_readImagesFailsOnIncompleteHeader); + RUN_TEST(test_readImagesFailsOnTooFewPixels); + RUN_TEST(test_readImagesFailsOnZeroWidthOrHeight); + return UNITY_END(); -} \ No newline at end of file +} diff --git a/runImageInputTests b/runImageInputTests new file mode 100755 index 0000000000000000000000000000000000000000..c0dbc06ddcf4492cd3ae6d301c80a1a1a281d6a1 GIT binary patch literal 40640 zcmeHw3wTt;+5g!j%f;IU+bXTLu8J0KB&Z0AsX;lgSOQU?UaH-MWCJO=U@j6{Q$s^E z%etCcRNBwh_|;b0+M3>k(h5P*pyjKv(iV!=*m^muR3lPNtu5d0_s-1j>?O9(_y0f7 z_y0c+hiA{3cizjq^UlmWGw+!bo__By{~YT$zI?}V^6;C0-+I5}bU8t!9Ot9>h42f9 z%V*7XuXZnA$lUbHmk#EHC}%ea!{Np5m5b9!gufy^&(Sbcam-$G7?;A8WF2eSuvy)kn*VxdUs&J-$9oH!RKEVdWML4a#Dm!@(hg%y~)izXzYa41B zk((*6H>~7csW}K|>Xa0Q1l!faFC3mdYw@h`B?}iUQmtE|SwA7zsy z9A4I#s^#eNdO#~zh2qzcL;JJunk(CG>H76lDE)$(f$#^}Exn$aiI0^T^|Vk-+VvzH z4liv^^)^#aV)UiujWaNwlwq#SvBrAV*Ecp8ylMvnInFpOk8NbG50b}vs_{O5-hxlN zv*)SSM90$gEY?yWmskH3^`u_5Zs&rdkSNfV0&$LpORsaBAsCwNJ`un5*E`OSfe+n* zF?)pL9FDwl{CF)zK7XG=x);x*B{%nN(^nkl$+NDL+H`G-F z=5-u?)Z-twod5V$)y2R6YHY{rpR50C+u6tq;)h~!K}udg($bz|KU;7*a;1KPcbv(n zALRt?Ou#I627bh;aWoh1%$L#y`YgJkxg}CR<>D#Ot9B^}ah-}EMFnA>Hat($Fzt2d z`oCv^C86lcq0W85(11HasWk)cJ9$nh?%#$9BouYMP^{hC%+dIBHs7pG>=4o4dGu98 zd9RNbx{*+4`-l@*!?`L!M-+;e#35qKbfmpk%8-i$Slp3VX<=YvfAop16gag%`smNu zL1t|_33ucfDwIZroLxGL%{=mkvcLEP>!{Y!Rp{kKBtem$@ zG42NAZZQ5A@}Tw*WbJ_bA@4tkkG1azMIQ~t$~?vN8Obd3Lh<(fTUfEpBI}}5_B&Sg z=(Yd+9f9~IqCop@sQgY+*TGcLd*Lq#q3E}y)DYU|31mV> zXTLA%?n?ad;K74XdAIjnp+&QGGts%d^xDU2cufhMu!hAN`=<4W!)Ul4kwN!|Er)?J zvr~AL|CB;JZ#UK)AkEb!z5pp(=7QUM_S3pcB>P3Eb4Er7nonwaWAEFBI(G+}2O8ah zW`3O3K;bbbRys~~G^#5d?a~z8hitlu8FVPk$b0>G%4;9-j)p5k!t-v&63}$W(e1UG zRK{K$KbxtAHHf^a|Iqf@fXRCldtC}CTdoG9_buoyruqPT9Z%}dlDgGU=e8FXNv3{> zOZ~LHj>xdXwJEwkW2Q*j_4o|B&!y;oA#||UpHN@1S9k#udH^Tw^@Mvc0G~4qM)s~n zq{-oJ0zjiTk9l94svZ6Xbi){%!x^3B1c=yD4|=Z+-673XAa5I&K|TzZw55UM^9(tv zH=OO98bPD`)(aow_hxIpe2=-hekgDgK<`zIL}~9>8I&k_fKusL zH*?+My+|yT*{l*H-nBWEnMAgYO7FA~LwX@A3V^pjKB`>gBiey?`&opd+%$QMJj7Z z_Or~UH6B!n5pN+TqU@$Q2BmCyg@P8&F@1wQX(QQWoaUMj;{GaXmujDh0KK{7!FWvB zLzWP)`HemP3IeOeibS<6drVAa+xGCKvTb|3h5;)TeM}`ryc+b0?24Ynvd04D)wp&= ze@!-3QR#n}1JmZeOc?8eUZOmMDn*Y|0L!=pz{0wCi%OVe=_rLSNXf&ll+&NKZ*IPRQ~YaCI2nvpThjG z%AZW{7@y`xgKR#P`Eyl%ugWiE{%OoFQuz}(@x-T{!2Hvhf2_(ccN#3hWd9l`^l#FKr8+XjcTIw~g0?tB;#+s9r81kmjnR1O$dv^H8%OCH1hbg)o3yA?;vL7(kO2uWvqQY zJV&qPVB&25&JkZaait>e$sn%CNsRq2C3j~KpOce#EQnE8SQGVsFzR-MV*W3}abnE| z{t;HNixrFkvwC|6QrAA_J%!F#lbSEE_($Wjg5!Zl(IehZL7{qT`grF4rY1UA6Md^D z`W|)**fEr0$KdYYIuWei17zdcLpBQOU6#Xu+XS?>7Y$+G;=U6d*iuNgQeoRhOel(l zreIhl?^GKT8YdL8w&l7&L0pccm$VHyy|%zIfn~x9o!>$(_W{C%744FjLfigS5b_O1 zLs+Yo9mtVSRk*cD+tYk?HtVRAwZ%YlBccqVUxer#vJN*x%JV*kIwgk`yKDkKYbmop zmNGN~mnJeOWUsb{WJ!NfGdtQZJ|o)dp$T3=6TE~b_|t&<9LZwtb5QveR+%FnRiFv} z#BCWyjEmh43V`Be&lx3SGeWT?+y$vA(0lR{s5#ReG<{gybz&ieDc-hmC?n(>AV+eS zw2n+x$5%{PshLVXC+oH664#)Tm;%_mG538n?gJ;lsLAz9sy|kMXuv&yJ802DWg|0Z z6$Uy#30UmIY8*&a!}|!70HKt0An~L!CrmlR`}@U)rEQ$|h5+d1FEe2ra$5Pcerj<% z6$MILq153H?yXocjFe&TRHX}+dHp_eB=(?GMXQ!W>HZA!A2-|7KClH|&$ zI2gE9`AFhtc*~(+;>$L{k%2A-*0x@Qn>P>WtxZf_M8d^3;bAsmkc6^CKZb-ndiW0tlM$`yy^eHv{fHL%O|dr`O)wHBE+%AP6=~*$D6qZ#EP+Hc|v>HaZ1pWuxOr zsBNSO(`@v9sj<<1q%0f#nFz7b9;8rDFO;+qyP{nM{ooms~->)RX?vS2g%NPk58aoh|QQjxA- zgKu^Ffv?~Z==urnTUkwS??oIf?d-F3UQD7X=)tL1bimsTf<%i(r8Pn?Fsc#mA`O-| z!k%XT8%ZO5w23q)fkySwDk8-GS0TmuN%ha~W094zz0z?yS;vb?7~dQzLZRof-1|X2 z9`$&~JQ(Nb-g*{p-m9OI+F^JP!)|Jb%ebeaN@~V_C(WKg_SP=8gG{U3U$*{571PVwkzzk+%aA+}^hXg}hC0?+IMdADDv2%_p*4 zY4x`*bQ}`gQxo`7|1@NG)C3y(g<7%$S3DV*vMtbcEKq^9;;`c-%hC0`jo64J&K!fi zj4$cTrhrP=DBymk?ni<52kz_-e0|%v9g}>4hx=vmTm`~JBW_dslg#I&n6K{N4*?tY zL%@a_NZ61qfmKMb3VYmp_O|!!t?zrm3w*slS;QKx>lXAk?{Mn+MSq&ErK#d3xZA1g z_Q2#LUj%tgVDC1-N8X7vE5EKk@E_ZPmiDVzb{scLdo15f)s^-;sQnIz{E`+4_{h&o zI+sjVCBac6^%>k-Ke*?`J^rIXzvsyp63_1rd^Njnub`KBMc61Nz7CH%;I0Qd9_$C) z3JhWIUx=jV%oN@HJ3y~Gz*mutD*7Kr4%=!Cfk%?)phiC+=&Rg&q(j8qo=)$usN0kH zwHa(+D+BVXG7-=r0=5NiHvD1D4=lA6{Ex#b0~(Z&7z$%w5+x6D`Nt)l*|i4Bl7;C8dXK3`}1I*7lX;=5SanA<(my*2Pnh-Kzl zxhKV*n=Y1<#xvlEKHB-HFS?{Vw7z@3f5_4hgS-3Awh-pc6G#;I$7H`Bni1;U<^y;m!Dwhk;u?jn zQw*h8%h5KVxLO!yAXP4@l|e5on3BWcYrVJkqv>RW6ZaPhL8w^E4ib!pibZ$u7ZM&Q zEd@6P`xJ=46>7`dRyK+EpO`|ec)4CL$cpF|l(qE&619U!R#w%B{i&?aGb`@@K9-B2 z81`*fCyC36$-TcSmi-mhBM1*+nNT(~pD{GNuB4RCHk#pRl!u%}Dube%h6QRU);jF%l^|xxy+qub zLU`VzL@-EJt5~196ru*^mcrLVMN|A@6puPGES9}Lj{EN<6SwZIBi?-yZY;SRz22LK zl9c(*Py(=Q%f-Kh{GDxusQqV^8Xau>cZQ)G!m&)hCTaf}Qc_!?_XheV*Udl0ZPp9(H%8-I+nJ)~uz=@urWAvcQ~*{x;ZWXkh0ha29}qvm5H@J=e>$9h6=sT{MX+UC5M^+ zH1qj#>0!lqEKAC2vir`aj%>2P2_~K~T77lK3aWVkU(_F zWa@p6(tCt@FMC_+a~$)Jv+A>u`K-??ig7MW%Bs&ZSd@=ipD4o4dU(x_mhBpF>8Uxc z{ysOeW(k#J)$I3@V`^55a?)!iK{EuZ^<3RG7NSvtj1ayhoQe3zZO0%}XbNOL&qWhY z(&S~*bhZzo2XCg%9LC>xUo7W^hOm3XUeU2mdI9!6bdeO2N4>4C~)(K!4-1{quV;S9gLO@Qqr9W4L-Ei zeJHs?yA(yl+?@w^AO;^T>+ST$25#8}KB(6liXVA4)v793jp+NqAyFAIL+twdkse0e zj_FNe;tEkzX0RC0ryQgZMYt&mZ9*f^=_LM36)_SDY&BF6C+ShdL7pW}K@14<=Q!$SZhcw0KtH}lMmRV zAI-T*9m^7nAX){FI19+m_MHWRPAn(TaBiRWx_z;-o!ef_XXJ4x)afzY-3KXs$r4ps z$`Y4)>AT`mFNLG>zUj$WJi{FXXS5&D!ZYdd;w7!{EnWw(VCm=Rs%DQwIEDGkRsJUC z&o@2w93^%g6wU5dpE!fs7b1{+l&a)NtZWBg#i(~G!%1j3(WwG#6^PCL9?4TNv)_&1 zJ^INsf35gg=jG^MhY|0>+H%PddLTN!%txN`=lbn-;yRWtM{BxH7e%n>xIirk&!IhT zdsS+@+lwGmzYj@VsF*yA*d&u*F@1teR~e>ai%Cs;?}HWNBKbn4RINW${EPc`bc%K~ zO>19t$%7m?SQf9xyp4VBgV@BN5^T3_X-~XHapOy79iEGWR1GmECwZ zev+){ZZq9J{krE~co<0Agv|^*%98b%OM1OqvG~cFOYY4n@-&E)Fs_(7aP!BZo#_yn zAzUF5{Sma$Gfj__^HI^l?FOg+S@bZ3;qaRv(HSM3{XZq0P?mINnxfwhTq(?`Ers&^ za0i}+-ZtpRBD-!fW;{XdJ5E5~@S6WjSNR}Cp%19cUb@XPW`4B-%Y2Qcu!S zIY5t+^r!=LCdBUPqLkDC{Rw(gjsaQ-(j0YSRq0>*Sf@Ue{!_40DyP=`4fTJzbQtw|!`D{Sckb3#aC+6DJ(iwP}LD z-71={aws5h_qL7~@qXe-o+DwPaG)!MY*@lc?9NZK2ZJ~;f!LB=Vln6l^BI_;9$8MS ziGt2fZ(4YKOOTkMYdM6V=JJH=lIJMi>m{(87VX(v-;?3J9tYZLMWeND#jbL#HJ>O) z9=Wx?5rVA7Gg@1X*Hxjl=960UIf~W{hnhC)*jwL`p>>Aouf;S$+p5B@N!ok{3*hUl zE=eW*AfYTzl_KWoO}RBfS;Wk=%yu!?}#-1-jl{m*P{R&R-HbbrosgG zK~&Iv5JT_JC#MGV-AHE)=yahEK}zBd+^oJ)o+eoh>`ffln;^YaOXt9@lyv&QP8Uy6 z3G7ErE!)jIv45U~Jo}wkI^RS~1(;G={BDH6*&=J@e(pheOBj^_9+NwEujLG7tpRiL zd`^(g?tR?K_#$=50W2%A6mA{Dx-bvxjr4Wlu*7L4SgpfpQvpV;HcOr9HzsZUz%0jd1_o1BiD^9gvv>mOdH!^YmY|-3a z)t{|$tl9`W)$-}^6Jf+-{$Nb| z+zVW0LA|uV-WU?SwMV0r=CU}7mk9sw3@R;flt->#00o`g_r28+E$!2-N=_islHESd z$Fr-bXtC*ktM?6x*8Ydl;;HirU36oi=p&p5L(!jcB8lF44S|^d!|3~1vJE0RK_#&z z^&h2@Lr5O3l3uJ!I1o||MP+6Sbw0ugjzJbZ`guf9I{?x?(dW(L>veR`Okb^zq3Ma}Zs?r&E^aw|wUVrS^?Lg1^^pD~B$}Py z&m^7UtJB2ey^oW)6t_Lne0$sb_ty7wF?Kmv(|xtgx8_)|pgzK+Pnx8=YH`%brb_VZ zzYnlY2W`^co!d4_yx0aY z=A>=6e z;MD$~gTvwbbyp6{%1B65Ak#AMWgs!FL#a1H8eu+RhKJF&O$You(xVu88mYUUfvnLM z3w8(WrjffLJ*1^`v2d=Wa~oNSZ=!g$SfI4M?Y(>JduilnJ~oPx6`xrYD-|YmwdgAH z3B$?5GF(61FI`A?7x~x9J)kr%Kj#&2 zUmGteg9z`+T}T_Rr8ceclDQD#eTtZva#gV#A0PD2Vn)2=M6#WTv}rT%CAewGrYrS4 zSw8sZVcp2r*ld0{u?sLzY$t|Eo=)s!QYAxLKg09}+M_aP$CGyTc6xEVxUT@wJbY`y zU*vuDYe%e+zwP=ro>o0U$Ll)xCEwrJ@2~lS4d%KJUN+qW->!13DY{*9jH?Ym0hyu^ zGVmmNe;YQBP#n-1`aPQ7^@XZ-pomYAJsK*N^OqnS1{oPg%;r#$9jnQ}afDK#6qCRz z5sfzt8v>di^_Z>3RIe-!z*s(g9Lwo>J{Fuz6RdyM&B$$U=X7b$_g zh>v7Xq^Ey`X3-yzWS+PFAbVa$acMK!MJmU#=UI|t?78*BnfAQ-gYEeSLNot{JqI)y z?D}Q03e9oW%S|DnH$xZ@wS`%UM>|!toFAvZLB_ zWz3yuy~1KI#Rmw8Chwk)S2j44i8oik%PXuM1MYTo36AtvPBXPKYv)}m$1?S!l4DH0 z7+Ofz#RsBTahF1lfani{-kX0E{WoE*^e!0`gY5P`rYiMCipi>!pOs36>LuFxM_Fqi znjga=SbYMq+xrNXY_guj0!$YeFPWTEcHYoprl- zoNli{xiNQ#eucGOUSUmu?}2*j@d|4p)iR47F{L_|J&BfN4fIC`~7ts#jVfQ<7vD zXNy!zT+ve{lN48y48NRm<#m|ik|epXRCE%YXIOHo;AFYP>sMfws@EunK6w>pd}AM+ z9^=y)PVXcPb$cvt0vQ=I$o`I4n~+897oh z`!(K<)N8yAYIbus;1yWLYrG9G*#^AE)35F%-N$YvW33bWPE3FM;QGAZ@078I*WiWT zFP@hC70lm?e2o1w+?^(7T}HPPFS!fD&bv=>;Wb{N*QL0k%#W)4KIYdmp9e7(tKxok z3Tl=$iZ4PWth0S$>h&I8=xtZ8_b`lIF9~^xWteZ_#a80{RL^Fl1DJ0&;`dAaWSYNf z{61*@g_TdEE@|_`u`0)MUVh0j&g*WxeN^5`9e(;6n@fFZe;bl|p9+ofdh)rzmLtZg z2${P#&;@gfZ(9L~;_vZT_--p*CIo)=>- z`pwCp%4*2#kE9s2`CUWN=Dbv)IUE7jt0th6R6oUbl_>3(3v{WOIO3Sr;NJ zaRey9IG(-h3^K+`PN0wzln~Y}CFC$AWZ3g1g}e&^M#y%!ckdN^MFu@_h|c<6cLZUR zVe9Y)%rb_xOzR>CP!MvgF7hYIFsd^5j**)icDyrARcF!??1ZCO3>^bkA zXi0$9>^XmCp6WS_mdjxOViBhN=yH4Bu?^=8dVzdcBstLC?;zN|71KXo^~kc zDaZEKYen@tM1HeHRzPHD`!0Mw%~gU3$B7&@N;s>R?F_{Vc$Q<6P{}JP zH6RS4AMMkRA*3DdCM1=^<&KOJ`(tJJ;wkBHHzo(qCPAbI&&IXx#>`=(n8o34!h$hl z*yKr_)Hc!{HiP&C0h`=}I9$3Psv!#w<7jsrfw^(yS(vhY zpD!S1>(IU5fD`d9#+M^F5`{B0yXmcPjs`2*P2Tr;I*qNEr?$dXQb^`l`pa0|DIh`g z+&L3}AK=UJf3mCRi2s*jjbU}!Xqkt#KMq;TK^Qnj`NDV@&mEYKqwaPL{MWcgPV1?= zRgTqDpO75WQ?E2ib+&KMSo`nx-sT1|Uh+$fUvKVqUB^$rGRVA%VzPSbc!PLxWt}V>K6ecs!^5t&)pg@*B1E`Yfw;Dyr4l?xDw^^*J^E5>CJ? zL@t`=40pR(u6Jvn5a%7APtYO3}QBDKF%XIsvQo*?Y zbUtuyOnt8kOik2(j6wwrs#r6HqW-@l+5xTue2@!K36U4|zo;;O&=?dlqSh1oU5vc@ zn&988$bN!H>U-hjV1wxUNRT#=_^AWlDp4&?~(cx8~4bXP(i(9EJ6M4m$P8%R@k_Wn*S}Y3mcL+fnhS5T?O~ zk$?9JOBVkx6c|LZkI7hQvi|($K82YK%w0?llwxIpXWV~_0&&;&G=^v(0tWC-gGO{K zGJw2=o3MmiGJ-BpW(dX^0@N7sR1k;^xp_DJiWcDNCA~iK?Q|LB`2Ca<9hdRGIE8;1 zp&I^;jJSU~MIixNn9npB-_#b_67Q>aB3`lz=ObY>fJBQwHD#wCjJE)idf zPfZS<@@0rVc*?DEzfJBva=%0F>*Riy+}F$f>vF$G?%$MquiXDr?)S_6J96jW(>r*| z_i%5CG`GyDt&2?IU;91V3A$}7BULSt>fnOLhO-tdnLj^8(SpCKY~hJp#FyfC0StMKoCBik0P4$&6;cyo3 z%G$O_U9;w;&fzaani|8^we==bq|9qr+1j!g=;kR^&S51Va2+;}r3P!s5TwB74<=U{ zHK7W^*nD}UrM0P{`I5$_CfI91YyHwl)502s`(Rq3xuUkZW%<8B7mCy_Ti)`)g!3zx z!ZxGOENHE(TiCFmvBhnxZEnF|oi4A;E_hC5ZC&%ihAWyH8FqFb@ku!K2qLzbms-mq?UOgx#+>iKRI2|4&MX^$m=G#t0&XR-@;Ej<+Bzo za^}pMH{Y2zcfrETUB#;JOB!lhZU`<~-q_T#yt1J>xTtmIN~D9cYnv;V)$-R24^*|fDb8)1Q$03FM$K7Y>L36v@C~(&J13$ytZn&=qAQu zNmHP9U8Ft&(>e1RYHHaATI7PrGFbNdNHCedpmKpT8y=;pzP15%NEI!qc@5WB*40)A zrA2~^n<{Ht926ZiWWmo=*0n~OsZQ{UTB;PB9jR-nGz8GPzOm_sU|DT5d{NbMsCMxU zEfIru&dPl`LGe35C&;1F+Jq9E;JjrGjZH9wGbQNEX>F)#VauZrH!W*bb%j!?_FBoV z!zPgi66Z_&tg03o-(XjvO$Db3xD>($L@xV@Y2R_sF-q~^kAIh*SE<}nH%vqL8`M7h zEon-UE157E_)F6rDzmUdq_&JYK-gTdor_-UIcj)I`@)V*&w?h^ zfkPHJWPw8#IAnoC7C2;q|A7U9;3>y%J$^VnlZq4|t@iy$;F1`;N~&}rq5%~;0}sX! zdYF1iPS|iEYFxFvvdIZIAy{-hIDi!f{MUYUl#gda z6(q32VJF7mN50cB54YaW;MR}I=gn$rs=UEDN(GOd4;45=-|{&HPTx0qANm^a{df8_ zS-Ye-?0e%J<)%`|CbE@{V2XCjQ@=8;@XyGXS@{UTrMFz=WD(+MO5YnA8oM7h!In2 zU0(Ik63&QE!9uT0{Xia6!=F7tE$2YX-XDs&f5iLX_au$GlgF-fe?9}ciyO;Znw;)}f4DtQV#N|Fc3v)!z_ar@$a{rwm|w#boOiDCLcwh3tpcS=w?7&1c5d?* zIJ-eq;5;w)LAgImHox1{!P!#) z^Zg3)x`%v+&uVUtG_^Pn=3N|FR@>mj^Dk*^sH$tNj*#5>YX0mQ_Wq)0Y}$*FJI7|fy7>B7l=)$bhId56%S)SA z#;UhGuLC)J43HfNZRX4CA7^;1erwY?PPK9J-BI^AsD<~{dHU6o69+}EcQ`*9=j7?P zGS0nY_4_F2VdPde&2C)P;M_bGugOwxteiiLbH>Wc1gCRMxPEy!(iW*|O}>|N-WXF= z7pZJo6ltoBG&}pp)K{XB-W_8Jcz+DM+>({f>ap;V!z!-ppjLgpp}ao%SKi~pzq}z| zVPQ{RZ{AQ|aYz1;ufta{=OLeS=5#`znTfrAXmlZ+>rn|5ykaH+=Yz zZwPS55rcVyc|+qn@_PaG`TG35{ytx@*Vpe`Imjp7>KsfhM6|EGqBak`W8 zCO}W>TgrJ4@H7o~z@ZbqhA@KZ_g|~vHVtpk@H!1YsA1Nd^nDtBRKvf}@Y5O|)bL&n z4{P{U4d)?l&hkezT&Us0(7=>mtl^Jqc$tQ$XqfSM^3T*Tfp|4PG?HT;@O%wdXt++p9UA7J8K%6iX?Q(hlxhAySn6EOo4&pee6<1aJOwXG zYu=!E z_-#D-dyi23Et=oJhQA!Lc@d`mHlF;$n*YmMe*+u-9^p>$+j#PK;Kdhd&(r({9*y6| zlfMwN3TZ#5`3-FN`S)#j@j?AW)$7auI&#@plXKQhMKN6@dT zg;U*50-S67730MuWq(wcZ(!z4!Y{}KE%*zT*7F@n>MtlfQxqTzrt<#*@EK z&u5(PWc+HF^yDwbkC)*$^n}T8=0nbpFh#Tc3jBBxX8AUr`kVCv*AL`3FzLxZh#xP)Q#V^BdUkXV%}wlYdzA^KYE8d;=T)Ug*J#F!i_b zUzKth;X^Fx; z3q1J^OnR2@z%IN9li$V*|0N3ddEkU!!-l_{30!;#zlA4%&uoQz25IsenDi_^li$XZ zf5=t*w`hI?8~&jJ2*E{|<=c4j_g|`T%YbM31|~hr?_dHKALO_336puzkv;ZFPU)}ejCsF4{QD!&2M1C-!I%Lej88zzRxIJ zv*tIj;a{1-Z{x`yyh8Dxq4^DL_y;riZM^8O`RBk-v;M;xHvGX1ej88z!YftzN9ghm zZ1{UK_-(w@U-Orm`fJ$m@5tcq(|G=!(4fZg@lpo7IRoC20pFhi-;n{|lmTCv0WZsd z89zI<7b5J_!;3s9iL+SjBv4r89yUz$Il4c z@iW49{EV<2KO=0%&j|Nv`HY_tw&Q1n2Q{AYGs43fX8eq>9X}&%$Il4c@iW49{EV<2 zKO=0%&j{P`Gs1TKjIbR)BW%ad2;1?qQ=zkopP{>^^*{F4YTookd;p8uaTvhN=K3~( zM8_lrbG<~^tcSRMBy84)^rwW4zvTQx*vvol*MyBf=KLY_dOqQLlCW7Xa(*Xl=5MYy z2%Gf;*Du1a*DqX85H{G_8atXgpL2AzaVV<0sS{&2HN!`(MsKgw6cJ{WxK> z-{$^`u-QLxzbgEC|H}O{VY5HxeokP$zvKQ?==J`S`(?srzs&t3VY5Hvew47I`RSht z8~;mx#LqA*bUdB@h;WC7>Awh2C=?tKt2GeT9&u~V@MB=IJjQPcoA@l_*@PYVbv_uMC2Zoa_W=e- zlw3c_fS<^Kf1LsUE(3l(1AZj~{!0e@b_V?S47dR6c3ZzAGT;wqz{h96r)0oqWx&%i zV1B@8m)8s6Kk>tv0_T4GzKtJ!0{?s>|7H+gVmo}@jThSv|D$=l+ID`3-$VHI;fL4a zviH0X&;L_7Y@nbMR&O8GL%j`_*Zp>ey!pp#arMGJ7e>Dm&qC?r5Lx;9c*H3Aqm-kV z_%1$+FZC)u4JYr>&4CJ=Nf6Dc^B37TeQv=<)X{S3zp~*h- zkx7{TL9m?i(C0w@4N7%T`Kc4dAx8zP(j_%?6P<^5Whx+u#+p{ZMD(&%iiJat<$%#jiE{`gX)NQR$5yZr{;n*e=lyqe04vop;~?IiQ$A# zWt(j+N2AH`K~lsNoH@hC@ymFaPK`+^M&a<)Y`7W6B9p4xxXQM49DRZQlK@&0a`0Jk z3Yd#ykzzX_=38k!C#8^>0@b;`Bzf}l-xQJl3OJR4uYOYiz6DN)@g;Cl8oXT!&|d*d zjny~6Njm6}qLWX5Q()R60u|zyzbWj+I1IHSf>WQSzPhWhdsr6Hx$G(Y4mgWkIZo42 zP|Bi}l~uM_<+rCUsI0dNSD9z0XR>dJ6(db^8gsN%I$rgyls;C^ysWjhYK8t%+bLRt zlX}fXH&iw>)UH@s*;>D>vZehy3MT=Tmt7}{9 z!xy{myrNKJ)$-=5<*jv*qDA~3IQzV!d1r^qn<`fnEr_(@&kdj# zHZO>@d?CCzQdvK($f@ODWk~xg4n-@aq)5^Al}$x8jdl1F63s<*^+n6;R!uEFx2k&j z=ci3?KCi8M>9m@f>)INsig7J#C|X>UA?mENBQvVcJ7-EG5AkNWkpCCzi$7TLzotgY iR4~u~nij46=)cI32d(ixZFmuI*7-B0pIcms`usO9XN*+< literal 0 HcmV?d00001 diff --git a/runImageInputTests.dSYM/Contents/Resources/DWARF/runImageInputTests b/runImageInputTests.dSYM/Contents/Resources/DWARF/runImageInputTests index 920bb894c03e6954ccc9ed53ddcd118c37fa9a46..b58fbb01f19b637ab7d156983f1e44f420b121f2 100644 GIT binary patch delta 16263 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 DQ~xiZ delta 15273 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 delta 29 lcmaEQmg(tPrU@DX)2=RKV7YE3)Fh&kCOpNpf1}0PWdOir3_t(? diff --git a/runNeuralNetworkTests b/runNeuralNetworkTests new file mode 100755 index 0000000000000000000000000000000000000000..c3a0ef4b6a32373a843dea83a5ee66b5096d73d7 GIT binary patch literal 50872 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

_ug%NF8%^@O@oGX}*(K!@E<%2a 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 delta 29 lcmX>&iTU6p<_Q`CTimV(7=E(1Z_>E;?`isFgN+uPCjrMc4aWcg -- 2.47.2