From 9f5c5288f3a491ac963ce7fa21db8a73d8e3e048 Mon Sep 17 00:00:00 2001 From: Ulriche Nguefack Date: Fri, 9 Feb 2024 14:50:38 +0100 Subject: [PATCH] Test log --- build/test/cache/test_log.c | 47 +++++++++++++ build/test/dependencies/test_log.d | 4 ++ build/test/dependencies/test_log_runner.d | 3 + build/test/out/c/calculator.o | Bin 12680 -> 12952 bytes build/test/out/c/test_log.o | Bin 0 -> 6040 bytes build/test/out/c/test_log_runner.o | Bin 0 -> 9048 bytes build/test/out/test_factorial.out | Bin 60992 -> 61096 bytes build/test/out/test_log.out | Bin 0 -> 61040 bytes build/test/out/test_mod.out | Bin 60920 -> 61024 bytes build/test/out/test_pow.out | Bin 61104 -> 61216 bytes build/test/preprocess/files/test_log.c | 47 +++++++++++++ build/test/preprocess/includes/test_log.c | 3 + build/test/results/test_factorial.pass | 2 +- build/test/results/test_log.pass | 18 +++++ build/test/results/test_mod.pass | 2 +- build/test/results/test_pow.pass | 2 +- build/test/runners/test_log_runner.c | 81 ++++++++++++++++++++++ nano.20128.save | 27 ++++++++ src/main/c/Calculator/calculator.c | 8 ++- src/main/c/Calculator/calculator.h | 1 + test/Calculator/test_log.c | 25 +++++++ 21 files changed, 265 insertions(+), 5 deletions(-) create mode 100644 build/test/cache/test_log.c create mode 100644 build/test/dependencies/test_log.d create mode 100644 build/test/dependencies/test_log_runner.d create mode 100644 build/test/out/c/test_log.o create mode 100644 build/test/out/c/test_log_runner.o create mode 100755 build/test/out/test_log.out create mode 100644 build/test/preprocess/files/test_log.c create mode 100644 build/test/preprocess/includes/test_log.c create mode 100644 build/test/results/test_log.pass create mode 100644 build/test/runners/test_log_runner.c create mode 100644 nano.20128.save create mode 100644 test/Calculator/test_log.c diff --git a/build/test/cache/test_log.c b/build/test/cache/test_log.c new file mode 100644 index 0000000..e09d97d --- /dev/null +++ b/build/test/cache/test_log.c @@ -0,0 +1,47 @@ +#include "src/main/c/Calculator/calculator.h" +#include "/var/lib/gems/3.0.0/gems/ceedling-0.31.1/vendor/unity/src/unity.h" + + + + + + +void setUp(void){ + + + +} + +void tearDown(void){ + +} + + + + + +void test_log(void){ + + + + double result; + + double a=4; + + + + + + result = log(a); + + + + + + UnityAssertEqualNumber((UNITY_INT)((4)), (UNITY_INT)((result)), ( + + ((void *)0) + + ), (UNITY_UINT)(22), UNITY_DISPLAY_STYLE_INT); + +} diff --git a/build/test/dependencies/test_log.d b/build/test/dependencies/test_log.d new file mode 100644 index 0000000..9c71ca1 --- /dev/null +++ b/build/test/dependencies/test_log.d @@ -0,0 +1,4 @@ +build/test/out/c/test_log.o: test/Calculator/test_log.c \ + /var/lib/gems/3.0.0/gems/ceedling-0.31.1/vendor/unity/src/unity.h \ + /var/lib/gems/3.0.0/gems/ceedling-0.31.1/vendor/unity/src/unity_internals.h \ + src/main/c/Calculator/calculator.h diff --git a/build/test/dependencies/test_log_runner.d b/build/test/dependencies/test_log_runner.d new file mode 100644 index 0000000..f6e9b8a --- /dev/null +++ b/build/test/dependencies/test_log_runner.d @@ -0,0 +1,3 @@ +build/test/out/c/test_log_runner.o: build/test/runners/test_log_runner.c \ + /var/lib/gems/3.0.0/gems/ceedling-0.31.1/vendor/unity/src/unity.h \ + /var/lib/gems/3.0.0/gems/ceedling-0.31.1/vendor/unity/src/unity_internals.h diff --git a/build/test/out/c/calculator.o b/build/test/out/c/calculator.o index dd0432c7de1b14b77c08ff6502b2499aa413d393..a125ff4db510cb9e086813db94decf1e73503a62 100644 GIT binary patch delta 1291 zcmZ9LO-vI(6vuZ4>vr3vrIfm@L8VxrE&W0xl>n_DsR898k%SmOKtUlwkl(Xh$Gn&{SD@@f3D|NtQokdi= z6jjy7@sKd=K_?(>2p}F7$$A?882m^NE@LD51zpBw?7@&UHlR^hGI|Io5*twlqGAwj z!=TuVPQs-4jM&?XpTc%=xm9mO7F5cU6Y98DE2+TFf!*|x6xHpMkW>C^vSCqY59-AE zqz)x9FPkh&Sk76`Ayf`A+rHfuhxmB$&WrK|+W~BOMeL;<;u2&N z+T1WAy;UxP2)W+=LqrL1Rs|arN(LQEMkjh511zwd*$u=-P2)^^Ayp+g4r?fJP+B|0 z3GLU=LhMZ?_JM|;Wg1|C#JRQv_Fi#K-M1>{ASe_g1F5JO#v64^1!7)L^#ht6{G`U z{M7@?fe5+>&R|psk-v|&4JGDI&?R`vREtls%m!V!qYUE0E*Q4$fGr|B%b+q85pFTR tVdxKq4KrRfN{`@ms9wn1RCxqeLSd-z>CqeYP<1XLQ>(H?#j;f^{s&4>)tmqT delta 1074 zcmZ8gO-NKx6u#%#ICJMc#~H`*IhfVZsBhHyc@s1f;!J^rLQqOjiwr9R3AD0B2!+^6 z(1mhZ7-(cdZXF(h+Cqacs1~}3S_(myi?YI)MbLTPJDYdl-h0mXo$sD=@4Ij2=J<^% zLm6)=G|#)O-)@%z3s~e4n7}&kaEE7>F~(V?XOLDu4OZ3<+GSc-X-L*Pc)Op$yvv45 zRxcfxb)#QRfEV*>Jq%;78V5H{sBN%>Z`F3?J7BqX3cB&M79--8)&^tvLQBFLe$?7Q z#p;Tugj*GJAr%5p<)*4G))l0#YN>=5FZd4QnC}hsdpE9wZe6VmDP-1Y;Im>~s_q3i zhA%@$tv{hw1+%q_*4Nr^8Vuo9Lz2&d=(31=4SF~zBYRP3_^6g`%@}Fa!&%9C39*Ti z_AC~Nz39-!rS=|f6Z_D?J}bBPW$ZBqn)L8<$IeFt$qIO;N$+~)&~{4gu0ypXRr`+o zU6&vlaGq+Nun$INC)sYf+^q+ zTpVr@M-my{d0a$ya3zs}`?#0L^9`TCQV2CcJeQ0r%LWc7b9`SCb-0quC_4uJO6DMd zW-8Cus)VL^pqWfX`7-?lwzVE0A5u}}OAx1d4f<;ip=L&vogk*o9QRa kh<-9$HBa(^kO&Pdni)Q&i)c|amX7kJW`TS%$zwpGuNM;IeS{yG$u)7C)lbaQO0f#tn!nbon+hCR`!?79e
  • p?$V=a#yVl68cVI1i?$s1pWRE^+?bITQ4p{Z8(PWMA6xC18^;O8Mm- zUqksP&}`h0d=NVQE1EV6%i(F?!rKAfZjK<^Ilq^;dw6?i1liB|Dc+vs?J3@tc>5f0 zpJ$t3FsA=VOI(LOi9@DS9bkJoenju_07_f~Ni?TX`~iwQa$mdKV2P%-1jsU~kYWAU zXnj0u$bK9fAnhC1!6w7mOfQ=1&o#3a)3PKy&bZG;v_MLW4jefi23*CNwx1>XcLAX9 zW$E;ZbOHuX7;JVBma~s{##XR6x<@~jo=79yW3qdP5YYhH(=$9Ypl#kTx&6`*RLy|) zk^aGSV)xG72xhl2mZGpwRU4DqiF6ub98DiHCej+j+QegX5ksdlFb8CMO^uJiHN!*q z454u!2UFk;GZ`M59TaeXXv<+So2R%(W)!E+?Pmw|?NHlu!sl_*I*V!{|;8^zdwZ!@&d z8C#AU+GS(Qy+-dZjsDjRBh@lAeRxn$KmU1r)D31;Ox}-^26uOpPebs&)qlo zu}9{Z(9O@zof{h^VXYx(iet>TJ->`47Z(dm4j*D?=H_$L#k+IGqB&}gRN6kza7T zzFqaZZr=035WR$=+P1u=RJXbgD5~{{96Qg_%%kJXv;Fx6Ht)3jr76#|U4Q1uz-rG0 zor>+odQF$69%A)&*Yac4m^v0XUaR5QwOqAn#Ycg$A&qg_0}W)ajjId8;ECupyRN?$ zigSnI$7AE-#Ku{z8$d>3|19@Z_oB0|CG0+*yK8$vJAS3O(6|}IqhJj&`LcL}ONv<^ z!XhY!4=p)EbN>%gyH4$53c{?53B@e{&0q_Jiti_udtusYSA(_%)mM<^Z&q2M+3nbc zdd+IxJw7o}IMuBN9ozA}!a^swScZcAl>LNXcA#!6P|#3Q|FwfMI4fMR+(NrmDKzYk zS2%2rm?MI%+IFqoavJ#&^Kj8D7B1LM4JI34Z5KQj<{Efzq2*NDLCr3}Pp>>Sng@qq zG2d{4LZ#(<;SU>D7Fi?@QHH&-UB_yBW|MU+zge}~oM&gIr;q0L&sPG+59s%vF9uvJ zK7HtrIWl?|!Qw2#Gb{^#cpbwrfyd?wVhQ*|!dC{8cIhFeEoQZyy&FMjbYOf}!G{U|se*r#;{Q&;4-@`-1;0V_e^bHlBKeOBewO67 z72Kluw-kJq;@?*AKM?*81%Hd;BuOv#rI*&bNyW)NtKfg7xLXx`f#h8Z{w&Gjt491T zF#oSneDQ^|iXR|*Q;9>vvLgz9AH}&}!3Rl}$+JE?GbA5S@Gp{# zpSDOc&ToXsqUQ<5|1;sosh9Tek$h6Y<&|+p!Ns>PWB7rLq^>K+QIShZF-Im9T;}<4 z1(*BCOmC?Jp8(MNuIQVRbM3Ze`u3vF%$ns}%&d4GGu^HbxVC0jf(E==>Rqtmyj7{V z_60CQXM$YIY1rtxiou)6mM$=!WDzcNx!UdEBafN*t~22Y1K%U?eL^xkrc8MFEx^ab z62-Nf<+^KiY+C65+2z0=a~{1@FytgQKntP^TeOW5-dk9olTi?P+K>|A_zpu~c?ZIG zFDI-|#Oc@(AhfT9+*(E*{~)L_=Kt!C_b0}T))t82_;S98A*u2Sz|=XR-BoOW-cyu{ z$ngCUm%kF_uSq|C%pdNN9AD<|qkyR~0b<{m3sRJd$R1nIpAtHP!6KykKMK0I`M<*d zBgB~W$NA&GfYkXv378raAod20e+h*MskUv<#f|?ajenDTaePdvIzFC<7*oy@SWb^n z-VZ5-CC8WjGhiL(zsw&MjNKs(DXtV{|J8N;U!sX(eMd?9$^KiQlzi0gb-BoF3tQFypBEXp`2YX_ literal 0 HcmV?d00001 diff --git a/build/test/out/c/test_log_runner.o b/build/test/out/c/test_log_runner.o new file mode 100644 index 0000000000000000000000000000000000000000..fd686d727831ebec5aa5ae389babf30c0715c6ea GIT binary patch literal 9048 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 diff --git a/build/test/out/test_log.out b/build/test/out/test_log.out new file mode 100755 index 0000000000000000000000000000000000000000..537fdff8bebbf0a568ce09e2ba26f7191ab0be55 GIT binary patch literal 61040 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 literal 0 HcmV?d00001 diff --git a/build/test/out/test_mod.out b/build/test/out/test_mod.out index 2e2b3f25dd79f5c259945418f88b36117d06b833..d5253126d886eb5efc1db496dd4ffee58ab8f82e 100755 GIT binary patch delta 2614 zcmZXW4Nz3q702&=%YNwwSnRs2d@L9p7j;XBG59flRhQk>G!@6putnpNI1xt?S50Fk z6M- z?EiPqIrp5q_q}`X?!-0St?Rl*my|OUo_oW5bTON3N6E_b&HK_+YoF}rUT)qbspcj+ zF5UdWGKb|k`IV=i!WO8J4IscU^)2ySrh;V{(u6YEs6r*dtd@weGUcmjCF!8aQu(R2OsW2KG+D> zf%kSJAAASw27?!o52pPI`3AK=~NT2J5oCpWw$sUTFV5*K`Ew4z{yJ~4lSZFXaQM& z>f{Tl06LqBq3slc_D~qwNfGEP6o!VJdOa;&sDu(7#2)dEN(7hCa_D~%97aDssgU9HeEg5_ZsPW}PqLFbbnx}UZ~&rp5vUOr5x(J!P+LAzNzW3dCD zqS2szZVoK55BFiaxzJ~xU#`ZEJp0E$tE%^CQ2^LMrn7MlRrd1hVG;a=wUhn zJw>OXJ#+~=LZf9)$zrDD$B-bqAA4Xb)mIeqI{941^Eyd3Qbd|QV?K&X?3XhcQ>SS! zQYY(^L|CTKnQZ=d@;ByknRYbpsWP`9K82;2D!|m`$&Bf?a!Uz}xAD=U#+{Yhm{iW6 zhO161IJqj=yyY%bszK&!)5HKNT%yaw9r7!SYLzo%Mden;Pv}L}9a?%8`e;eWFQVM= z54n-nhqHKuc7@&CL@nW^{4?qgFO%{lvNtW}ja1x}hrlyUOR?2EoAUX8>64~qd@aqU zR`}l|kM)0RRg0gOXS{faJ3@ZdoUQ^hn*1ra14}8pIRoclNpr@MdD@taZ^sz+Va)00 zU}tJE*prR77zeT1R^t;ehv!{?|Q@mY{9s9R|Znb7kGfm}I zo`%g})-(S!JneKQf7RM-<+*aW-6mP|>G^ug#Wp=}lZ^Cw$9m-6?Z~#t>D~Q$zFQu< zv_cXmH1-0oqjRy7yj0#Euax*adEi4Q=R9zY0 z;bIcesoF~jstaNbn!iX}sZI003cnQ@)f-etw&st}V6R<&USwfcO)I;m<$w1{{Y&Ia z4z|BqOVpsl{U*LgVvXw9toc(ke;0nuMa$wU9Td81ceu1@t55ZMRj^fb0?|?}n!j9i zU)G{qDUN8R7A?`1Kw7khc%NP0jOa|U670W%KD(n6wv{>9qH1;6Hz)Qol_C09t=9fr zHF`~}b(_M78gMs@wfVI_RI{{bDxK@I=Zc$LM61$O_fq^=ind7e)Yu4es$xjZ} z>L@BD$rB&n((!FHkjOXJ`PJcdWF0=l@#kzf-|7mezHj)DJTQzM^BZ!E6iUl~P8&v+ wo9{oNj@d}ZM+*5tijS<|&yaO=h1u7wMsg@HT4*lsSFN>le6)~vP<(XG*E>8YiU0rr delta 2617 zcmZXWdrTBp6vpqJ6?PYV0J^SQfnC%nJ}6pITqyz~vg<3-ptAKfsI7k>vA&Rvp@5_n zi$>sBmBfg~7*ijOIugMr_64=pEJlP?s+g)p6kB{WP;IB*?2Oj7H<|A@_k8!9xp(I7 zh1M2b*G*k%q)>ggY{V^Nww?J}HU;x&t7)QAxg@38R|xgCnj-03YGmj~#U z%yDeKhdDk}VnuC+H-dG3R}nN|vZeouo|W>PMgG)kh&(a-vVXqv0h}0=Q6tO6xNioJ zfo)(tm~mQ`KLV4^$Z{)~1u`9DIiL+J1QWpnpa@oh1)z9VmiL0Y!CLSj*b1HiSr5jZ zgSH+lpH-ei0R(P?BKYlj6ac*!PyjU5q5${}*a{|JL;*j>PJuS?$#=*HXVoDeECma| z!S%=o&w#a{_&xH$kW0w-XY3eg^Ur6jGZe!4OHMybJr~-O{YM_V63;mJ0q4UTx-^$mM9U4zA=ooTCXHo^Ug=(O2 zHby=u@hI=28tbfV|LR>V_thWufBQp$EtXoknh`NEOg= zR0DlRUg%8fhMp(OA}jAtcBq+L(Bb5UE}#nN2C9KxBQLaxx)%)$YsOAGth|_%-a(%V z$-S`YSSYR@xLHnP7F+pAN`sE3RnQSs2Hix*q2s6l`X_Zl2UD^QrypyU#>*NG%IT4j#KS`L^Q;)4>L#Q5mH6MQ1n|`{_RwBL`J<`+o%y8b5=44v= zC|U=dL7zicP!)6wHA0WjbLeFfIER3(Fqh(QCPdCfr_%Sk<#|!P8 z=9b%e8kLq0hjF?*ju+DJ<Hhp zdB=3#i>B|Kj!(aH=Xzc&_1X2p-xSD$c?iCx!H+rn;zbQWN&p2^hDvdj+k?4T@*Fb> zXw-RPHgYCQ;U;Nuz1NRBB>R;F0VUm@ZP?q!hJ$>pbi84uz;#l@H7mzXN@`5~-`b|& zXbE9KY%uL>97%T@`#FoWNTBxKMc*12+oZ+AwUwK+cqQV&s8R5q8VJ|oM=9yL8Na5q zMssG9miyl~^Hj+dEG)M`OVS`~xaIb5%awF8}P0hVeop1%5y~-M#+W%I{X{)rJ6wz#s7^1oP%7;gb!yiGV z#c1(j$<>@^ly2PFsFTEdtva4SNe`lpqEj6vlKa6Xo=&_yI@sn?W3M<$N@~XrSwV%5 zVg-38oqjaQ_;jy2W*YI1Smn^}NZ{{~yCcEK>Q%=;7dv8&hGw-lmH6XW9Q5|b!~O=V CbRzix diff --git a/build/test/out/test_pow.out b/build/test/out/test_pow.out index e0ea9908d31317ba875a8096a44449076b8fcb46..6dffc2825e4a2c3f1c2a3c900f7cd8c1cdea5801 100755 GIT binary patch delta 2710 zcmZ9O4Nz3q8HUff>$1DJ$}YGr%iopMRxqfWNfp+gs3RM8K_`%E>-x)5I<*~$5u=?= zn^9|QLeO!SFG06sgQR0(YknX%R+nlD#wt>q0V{!>jEW>StAZkiDP)@7zIX3UV?8tX zeeU_b^M3c9v*#XYzM?yPRTs?R{h{1zrn31g-pa_z=a^0(&t4vH5fl3xzdC>WYFOH_t~zv0N&*}AAdC5)0KFgJEjC{ z^;4<0=y72npUj?&nP>Bna=E)|65~~G?u7>>Rw*Uw+PI$J-c5RW7|$+{IF-=q=5qZz>~+#blsD}57Ve;2JfOw@7APs^Wu*h+iF3%f8|r7 zH?PQ{#OiEm3Ua&Fe{?@7>#J3s+8dZmf)d*uGd>VJuOFJrm=UiS{J&_glw5pH|9;RkPnL2ym?KbTQ8%4fw6E83V_Ld@PogP!VjijfgfCW6@KuUYw&~Z*Wm}* z=kVh<34qQWxH*KIQZRBumaD+Zf6DU9U^jRato}llJHVH~7&sv&%SIDpm%tpb^_DDq zKsG4Lo50>7_`$L}@Pntp4lwO5{9p}ePQ(g={yf|)8J6Yc;CiqM+ye%|Y4tW#=<5`Lwo(-8rE%y{a;y`Df1jfH>$13=eCtI1 z0}4R5Q5YJd2(+A{&>J)k{RKJJi+q$^&}Q;M%P9a&rZDsbMWBDDDD({)hx*B}L3yML z`Y8FJyD0#Dk;2dhia;+=6dI#(=u&cQ6nP=JHl}B~v9pdTYvi76`Hiq_5;h~tz%?B= zmuU;eWm5?HJ8FR*pl;}wbPxIlS<6NKb9xLKq%vp`ZGkpX2s%V9(3#X-{vE!7M$1M2 z+t`ZbsQkYt2|qF$u=SLu#juA5kfiB41A1 zpjGr5bT1u;zD+&Qi!=%yBwK|jm`yaVB8$UN0fV%yVla_vtMhrG)L#9HPLK@LB1}!o zLrsC*e?&d(@W~V@Pr|1lC~1kdOcMD3H3hS|L>~ofequU=WFkv4R)dzOCNrk1aSQ%g_RTmz?#Bgj|6(*SqkO{GmP$g+F)6hPZYF@p~`E1(IV0Wb!tHG%%@OlYn@M@=jjlNFH*}lzvki^(=B^RT2 z8`61{IvX;uN4{uq^0kzDpoEW5<$)5x=%JPa+j+H=b1>OJPc>$w7$6teL zOPI=}pEbT`<=K*>#U_~bsdMz^3ypf-C>Y2omBPDA5^dBb7^K4;eR_UU3Vgg+K>bM9 ze(Y**_gg}0u{6^CjKE`(|FX#O8oPRm(q=z2q2)NYl9`3!l?Hld&Qfk4{z;z45G!-A z)jQRRVjITWe#-vD?jWte!>e(O%8-r3y~(WfY1NaZc{?f8V|RR}d81x6jMa-bnOfkT zh!atHpCfKHx?aoL>G~)3x!K5CkzY}&hOu_>=G0tkwVK-gVqV0jVbiAYAJfuayF)pT z;}cg7MYI|fEI?b3eNoHWL^VuWwt<>@?fPTLJ`%5Wj=C}WBKpb-73@@peX~NJ5%04* z?rOE>;ww_xrz)6Ck0G0m^IUlkulDbna)K-EyX5b)XD`yS3ms~70shb`ZG{%Emco5| zOgel}Qsw~ZupcH!%{TgW!gLqa-<)kKELO)C(uJEZ@k%PYHOE@&Q)Az-N($XtEC{+8 zbZKxNPD<0zVpCI-I;NV+hVq5U$LW=!Cxj{IsB`EEQ(uRgDV2LJ#7 delta 2560 zcmZ9O4Nz3q8HUff%fc>V1kAcc!OONCg$&WE9brWjOt6VQYx!Acc)g0~90+0 z7}NfKjN;#3Kaj9>CM%6&y?@T^dhfJvXxc~nZr7uD#-Ek3KX=+YRcmdffW|5DWGW{t z^x~|4o|5Rr`~Do)x6O&s+Y<{pBaDo|LOBIrV9Ts$mz#yQBr~Dr;d~&cxX6gLxYiiR z9;kTp=B)XjKj3fvkh@xB#I{Er{}nuMcQNST=3D3Wo0OFC>qJV<7dLDEk?M^=+BkWFOa>$?65xt|P^ zFOyO7IO&KJBD0tNIME>5*zq&4@(mUse?c~pRcBd%+}g(iE7s$y=l&UWnH&(jVU-#Jz8`00UX?umCwlHjx)Eu>iSe zkOjzdmsx;3^DYY{2+?tc1<2GP`pF~L=qKl0r=MK;0sZ7-!}OD(2>qn^8~uDQb!1ip zI|tbDlczt__08nwk92(-IY@SrH6QDGAGw1ZA>*RDE}TMKCNs%1qq<&5ig8`9B;T8$ zpIkplKiNz6k#j$xpR6V05_y7T**DoKjOqG!$O^KWoFbdZ8=vwC$hH6A6Oe6Wl)OMX zW(YAvW|22ZKk2whKRKUlLZED+?7M2C1 zosb(<8H0zq21V3&5TuTyk$M7M)ZZXP?MH;V99n_a`ntB-5 zs9)kU>M^8MsPsl2u0tL5x9Fh$3#X||ajo(j@<+JE{z+s6-Ofxtv2kbri2{x| zFwX$>K~?79Ahi^|)Su!ybr)_?e~*kR+TT3wpk`^;NT2@tZX9o@6C`2=-InSCgNlEYhiD@n~`O0`FzA@?-bK^_Q9o~M3Qoi$4ku124 zrC0C5lUMHyv{<3=cg?AlCd3{q{{PQHNMqalSSG6b7%lFTrwf55n}c!D_djzdy;Hrx8YM}+n7xeX`*tQ8RmCrx*dgQ$eq@2c$FkxN-Jz3 zjP=Y8Ta~+3n&Ih>8oOg?WcCXy`yl^v8|?@DgKIQ5x|#Lx(`r0#qw%}KR%d0shzz-% z0W0g%CIh(>}E)$KDxz1OH%+W@K MCUd0?pG_|OH|h^A&;S4c diff --git a/build/test/preprocess/files/test_log.c b/build/test/preprocess/files/test_log.c new file mode 100644 index 0000000..e09d97d --- /dev/null +++ b/build/test/preprocess/files/test_log.c @@ -0,0 +1,47 @@ +#include "src/main/c/Calculator/calculator.h" +#include "/var/lib/gems/3.0.0/gems/ceedling-0.31.1/vendor/unity/src/unity.h" + + + + + + +void setUp(void){ + + + +} + +void tearDown(void){ + +} + + + + + +void test_log(void){ + + + + double result; + + double a=4; + + + + + + result = log(a); + + + + + + UnityAssertEqualNumber((UNITY_INT)((4)), (UNITY_INT)((result)), ( + + ((void *)0) + + ), (UNITY_UINT)(22), UNITY_DISPLAY_STYLE_INT); + +} diff --git a/build/test/preprocess/includes/test_log.c b/build/test/preprocess/includes/test_log.c new file mode 100644 index 0000000..f2efae7 --- /dev/null +++ b/build/test/preprocess/includes/test_log.c @@ -0,0 +1,3 @@ +--- +- "/var/lib/gems/3.0.0/gems/ceedling-0.31.1/vendor/unity/src/unity.h" +- src/main/c/Calculator/calculator.h diff --git a/build/test/results/test_factorial.pass b/build/test/results/test_factorial.pass index 6e5b8bf..05c31d3 100644 --- a/build/test/results/test_factorial.pass +++ b/build/test/results/test_factorial.pass @@ -15,4 +15,4 @@ :failed: 0 :ignored: 0 :stdout: [] -:time: 0.0007209489995148033 +:time: 0.004361564002465457 diff --git a/build/test/results/test_log.pass b/build/test/results/test_log.pass new file mode 100644 index 0000000..dbc8bdc --- /dev/null +++ b/build/test/results/test_log.pass @@ -0,0 +1,18 @@ +--- +:source: + :path: test/Calculator + :file: test_log.c +:successes: +- :test: test_log + :line: 13 + :message: '' + :unity_test_time: 0 +:failures: [] +:ignores: [] +:counts: + :total: 1 + :passed: 1 + :failed: 0 + :ignored: 0 +:stdout: [] +:time: 0.0030175010033417493 diff --git a/build/test/results/test_mod.pass b/build/test/results/test_mod.pass index 2ed760f..5a1e2e8 100644 --- a/build/test/results/test_mod.pass +++ b/build/test/results/test_mod.pass @@ -15,4 +15,4 @@ :failed: 0 :ignored: 0 :stdout: [] -:time: 0.0008472290064673871 +:time: 0.0026945919962599874 diff --git a/build/test/results/test_pow.pass b/build/test/results/test_pow.pass index 6277ae2..c0d42b3 100644 --- a/build/test/results/test_pow.pass +++ b/build/test/results/test_pow.pass @@ -19,4 +19,4 @@ :failed: 0 :ignored: 0 :stdout: [] -:time: 0.0008012789767235518 +:time: 0.0063727759988978505 diff --git a/build/test/runners/test_log_runner.c b/build/test/runners/test_log_runner.c new file mode 100644 index 0000000..19ae41c --- /dev/null +++ b/build/test/runners/test_log_runner.c @@ -0,0 +1,81 @@ +/* AUTOGENERATED FILE. DO NOT EDIT. */ + +/*=======Automagically Detected Files To Include=====*/ +#include "unity.h" + +int GlobalExpectCount; +int GlobalVerifyOrder; +char* GlobalOrderError; + +/*=======External Functions This Runner Calls=====*/ +extern void setUp(void); +extern void tearDown(void); +extern void test_log(void); + + +/*=======Mock Management=====*/ +static void CMock_Init(void) +{ + GlobalExpectCount = 0; + GlobalVerifyOrder = 0; + GlobalOrderError = NULL; +} +static void CMock_Verify(void) +{ +} +static void CMock_Destroy(void) +{ +} + +/*=======Test Reset Options=====*/ +void resetTest(void); +void resetTest(void) +{ + tearDown(); + CMock_Verify(); + CMock_Destroy(); + CMock_Init(); + setUp(); +} +void verifyTest(void); +void verifyTest(void) +{ + CMock_Verify(); +} + +/*=======Test Runner Used To Run Each Test=====*/ +static void run_test(UnityTestFunction func, const char* name, UNITY_LINE_TYPE line_num) +{ + Unity.CurrentTestName = name; + Unity.CurrentTestLineNumber = line_num; +#ifdef UNITY_USE_COMMAND_LINE_ARGS + if (!UnityTestMatches()) + return; +#endif + Unity.NumberOfTests++; + UNITY_CLR_DETAILS(); + UNITY_EXEC_TIME_START(); + CMock_Init(); + if (TEST_PROTECT()) + { + setUp(); + func(); + } + if (TEST_PROTECT()) + { + tearDown(); + CMock_Verify(); + } + CMock_Destroy(); + UNITY_EXEC_TIME_STOP(); + UnityConcludeTest(); +} + +/*=======MAIN=====*/ +int main(void) +{ + UnityBegin("test_log.c"); + run_test(test_log, "test_log", 13); + + return UnityEnd(); +} diff --git a/nano.20128.save b/nano.20128.save new file mode 100644 index 0000000..92c01a5 --- /dev/null +++ b/nano.20128.save @@ -0,0 +1,27 @@ +#ifdef TEST +#include "unity.h" +#include "game100.h" + + +void setUp(void){ + //Wenn Funktion Vorraussetzungen braucht +} +void tearDown(void){ +} + + +void test_log(void){ + /* arrange */ + int result; + double a = 4; + + /* act */ + result = log(4); + + /* assert */ + TEST_ASSERT_EQUAL_INT(4, result);//log(4)= 0.60205991 +} + + + +#endif // TEST diff --git a/src/main/c/Calculator/calculator.c b/src/main/c/Calculator/calculator.c index 2243f86..27984a6 100644 --- a/src/main/c/Calculator/calculator.c +++ b/src/main/c/Calculator/calculator.c @@ -13,7 +13,7 @@ double permutation(int n, int r); double combination(int n, int r); double pow(double num1, double num2); int mod(int num1,int num2); - +double log(num1); int calculator() { int choice; double num1, num2, result; @@ -89,7 +89,7 @@ int mod(int num1,int num2); case 6: return 0; fmod(num1, num2); case 7: - return 0;// log(num1); + return 0; log(num1); case 8: return pow(num1, num2); case 9: @@ -162,3 +162,7 @@ int mod(int num1, int num2){ int result = num1%num2; return result; } +double log(double num1){ + double result = num1; + return result; +} diff --git a/src/main/c/Calculator/calculator.h b/src/main/c/Calculator/calculator.h index 5ca9657..d86c05d 100644 --- a/src/main/c/Calculator/calculator.h +++ b/src/main/c/Calculator/calculator.h @@ -5,5 +5,6 @@ int calculator(); double pow(double num1, double num2); double factorial(double num); int mod(int num1, int num2); +double log(double num1); #endif diff --git a/test/Calculator/test_log.c b/test/Calculator/test_log.c new file mode 100644 index 0000000..4916f10 --- /dev/null +++ b/test/Calculator/test_log.c @@ -0,0 +1,25 @@ +#ifdef TEST +#include "unity.h" +#include "calculator.h" + + +void setUp(void){ + //Wenn Funktion Vorraussetzungen braucht +} +void tearDown(void){ +} + + +void test_log(void){ + /* arrange */ + double result; + double a=4; + + /* act */ + result = log(a); + + /* assert */ + TEST_ASSERT_EQUAL_INT(4, result);//log(4) =0.602059991 +} + +#endif // TEST