From abe0a3ae619bb23815e9fe25034b36765c64b2ce Mon Sep 17 00:00:00 2001 From: Ulriche Nguefack Date: Fri, 9 Feb 2024 12:19:09 +0100 Subject: [PATCH] Test mod --- build/test/cache/test_mod.c | 47 +++++++++++++ build/test/dependencies/test_mod.d | 4 ++ build/test/dependencies/test_mod_runner.d | 3 + build/test/out/c/calculator.o | Bin 12240 -> 12680 bytes build/test/out/c/test_mod.o | Bin 0 -> 5848 bytes build/test/out/c/test_mod_runner.o | Bin 0 -> 9048 bytes build/test/out/test_factorial.out | Bin 60848 -> 60992 bytes build/test/out/test_mod.out | Bin 0 -> 60920 bytes build/test/out/test_pow.out | Bin 60976 -> 61104 bytes build/test/preprocess/files/test_mod.c | 47 +++++++++++++ build/test/preprocess/includes/test_mod.c | 3 + build/test/results/test_factorial.pass | 2 +- build/test/results/test_mod.pass | 18 +++++ build/test/results/test_pow.pass | 2 +- build/test/runners/test_mod_runner.c | 81 ++++++++++++++++++++++ src/main/c/Calculator/calculator.c | 8 ++- src/main/c/Calculator/calculator.h | 1 + test/Calculator/test_mod.c | 26 +++++++ 18 files changed, 239 insertions(+), 3 deletions(-) create mode 100644 build/test/cache/test_mod.c create mode 100644 build/test/dependencies/test_mod.d create mode 100644 build/test/dependencies/test_mod_runner.d create mode 100644 build/test/out/c/test_mod.o create mode 100644 build/test/out/c/test_mod_runner.o create mode 100755 build/test/out/test_mod.out create mode 100644 build/test/preprocess/files/test_mod.c create mode 100644 build/test/preprocess/includes/test_mod.c create mode 100644 build/test/results/test_mod.pass create mode 100644 build/test/runners/test_mod_runner.c create mode 100644 test/Calculator/test_mod.c diff --git a/build/test/cache/test_mod.c b/build/test/cache/test_mod.c new file mode 100644 index 0000000..a31e4eb --- /dev/null +++ b/build/test/cache/test_mod.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_mod(void){ + + + + int result; + + + + + + + + result = mod(10, 5); + + + + + + UnityAssertEqualNumber((UNITY_INT)((0)), (UNITY_INT)((result)), ( + + ((void *)0) + + ), (UNITY_UINT)(22), UNITY_DISPLAY_STYLE_INT); + +} diff --git a/build/test/dependencies/test_mod.d b/build/test/dependencies/test_mod.d new file mode 100644 index 0000000..66da587 --- /dev/null +++ b/build/test/dependencies/test_mod.d @@ -0,0 +1,4 @@ +build/test/out/c/test_mod.o: test/Calculator/test_mod.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_mod_runner.d b/build/test/dependencies/test_mod_runner.d new file mode 100644 index 0000000..2281947 --- /dev/null +++ b/build/test/dependencies/test_mod_runner.d @@ -0,0 +1,3 @@ +build/test/out/c/test_mod_runner.o: build/test/runners/test_mod_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 b3aa4540c33f3f1e3422c3fa689af422a9358637..dd0432c7de1b14b77c08ff6502b2499aa413d393 100644 GIT binary patch delta 2585 zcmZ8jTWl0%6h8lKr`_pZy1P?4trWN0ZR@hz3k}$<7`6mKsgXztBt$W^P-{!JTW*z$ zkfjDKO-Z009u$`l;DLk(=w@RiY6N4#1H3>qp)Wp=h-rXCR}&11iT~wHDf1^Y=l{NQ zKmY8^-rjm_`^lJgERl~NEvx&h;>CY9t(~|(arn{1=GXcy?mb)5$eY-}?~& z3YW_?EqcKPpaXMr0zBfjNZjVHN&LxpIqNOahcbJ)p)Pccl?ve-5c`r6v1e{6{9^C= zig|_H%+~Q_Hg?pIG0KdT1&%8qW4ZlcRK0MM7?3^xWd)dXXY_5y}Xo5fI6BgRk z7KJQ@HuF9J&KnA)p?v4aKG2S{1A?a2OOoYw+rdto!a$qaEQ6h{Q)s;m_N7;$!7_lX za$Q0ZN{1jvW%L8c#__qrGjpk??Nqo(Oo6A8!B0`8{mT1$^FimLVvzuyO8->phj(9^M2u9-n7BZrjSF$L4jU3T#&bctaC@71nO($a5v7$&ls7 zWR}rkI8sCNQ7s(IKId?7&fyw&kmEfVoj-w(sF+^mzD`1Ng1fwLu~^Q-E0^BuBC5W$ zLQ7QgUWHb0a5Ia%Ecc9 zwN{cW%|K*B@hVz9#540sMHyS6yCF!Fd4#c*j?TCH?_zvJ88S zs&_3u1|8fW3S*4@>-PyE8s-<@gyl2J;oQ<#SgVk%9E-fkS-SKpFyv0yx¬{a2V@ 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 literal 0 HcmV?d00001 diff --git a/build/test/out/c/test_mod_runner.o b/build/test/out/c/test_mod_runner.o new file mode 100644 index 0000000000000000000000000000000000000000..1aec833209c0b90237193e79650e793d46a3545e GIT binary patch literal 9048 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 literal 0 HcmV?d00001 diff --git a/build/test/out/test_factorial.out b/build/test/out/test_factorial.out index 839f3167a5ce7de40384cf9d1e2440a86c80946c..4d75a66dba32e5703791508ecdfbbc6911415dc2 100755 GIT binary patch delta 4691 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 diff --git a/build/test/out/test_mod.out b/build/test/out/test_mod.out new file mode 100755 index 0000000000000000000000000000000000000000..2e2b3f25dd79f5c259945418f88b36117d06b833 GIT binary patch literal 60920 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 literal 0 HcmV?d00001 diff --git a/build/test/out/test_pow.out b/build/test/out/test_pow.out index 5b79e454288550a6dc9a85ba02b2bbe807741068..e0ea9908d31317ba875a8096a44449076b8fcb46 100755 GIT binary patch delta 4468 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 F{2$F^7|Q?v delta 4290 zcmZ8k3v^V)8J@YjH`#?eb`!$QB_W&e3|53xAuJCGg~%=sNj#{D5=bakJVGQvlvp95 z96-b%%TIxDI3lK?=MEP9J=>o~)5NiZCvP3Xm~TbG#{&8_`n=hf--xUg@@rYX z75XaSUR>|+EzfR8bCGCPCiFn(KHlg%Vs!)cE5g4b`?7E@*I%U5V;|>zsk5*9BTm71 zvl~l0)r#ON@4+C$2CpS(u>{anCcHz>_|o|o^m|{olrfTRmu#DF@q%_XZ!bFd$yXWO zmx8|jJeSV<;`v3o?dz*0WKxR1G-mT)tE=|8E~FbyANcz}GgY`&Buo>~ud(3Z&#@{0 zdDgf5BBnB4_!eJw{K9!e|23QrjBwQh-sJmU7EB&@L8mrH^3I&=5#?f`{fHk@7YeDg&uep$RZf~>=^VB<%~`I3JKsyKaK>zc3=hY*a;*6 zzTbodz{AZ*0Niy72_hM*`W6X*aV^jTt6QN5CY^;IIQ)C)fyL*b2kt))J&;|19*?LD zm|Bj?MpUwZbr(aSDZm*&hC=g!O~CcQ*_T40THrEZ3($T!6lw=H0~4JX(A7|A2#{S5 zh4O%>Z$J;sy$L;VFR&Ka?H|wsOM(9bwgGdKJKz}-OBnX&JHslaQ%EFk|GdK#7A*R1~{6zYQ!u`!V@0ln~h0>4ja5m*M+atjKj z3x2QT*G~KM4eq7Zd=DQ@9k7p)`GSX=ueKMy;^<)B#&d<`fT)A}?%T%7^_emBB8dD%f_agPlXI zu(zoLb{Uxk9!)?e&x(v1lRly#iI@q(+3cHg!U`xoHD!TN-4x@ZnqB7Vu zR0X@0>R?-`6}Fu^U~|cw=HZjcJ1wdEv)D*~7VDE8<65eXj>g_&$@uj`y&`mnpxa6ALJxn7GGITXT-fKS1h$3(uy?5jb|^I! z_RKEEZY+Kv(@R#SRQMXOjrV{re1L!6;)P4}b{#S8lwXvjN1^|@REFB4sEwd1)Fz;| zlMeRCj)s&A~6!vaauxz@kGj6eTT0T3I zv*7;O@7lEDNUG7gc6$`vYpk$`ya{o#$BIGWU}%C4Qc1L@=Oo-kI^&KKEJ~+0L3TgH z8S9P8u8|@Z=avqx8Z@=DU4Nzcbp+}war7!9H!Bh7V#ZMPZthMCf-F5jMtL2G4TG4mwIq52|9St<=*)7yQ2^UL5p!O}I?xOT-))7EzN ze&d(kt`acohy&n<1U&3 zdysaldy}UJ)7Ni{h<}3FVuq&iVV%95{qb5N)>NlUAIzls4Jna*m_HsTi2|DvDYPNc z>5m_7a(G-cX;X6W=%z_-r-rAX<9(S)X*G!%HgQ5PVeLK#YTTp6+Wv+Xx6B^YG`%Zx zYT;G3#RTWpe8x2`k_HBIFrr04PeO20L#xhbQrU?cH27p3Z=}FUW6)LXNH;TCP6aZf z;JUF&2>v+cV&l{jbx{w_(D4z2`y`%Ep<5>n^KrD@h|J27I@~W-d6Lo^4SgcmI4gQ8 z_^1a^+ zU&j@@!I19H6nl}}O@{x!igopr?ncGN;bM%_+>DJ=4h4zAk1^Q9`y3@rt;YZ=X)?@l zirwB%vbPoc5^ZiW_(BoG1Js1bEh_Ti9k`o#vtfP>Ry>XL3YjOoK0i2R^F{%{lnb`T(#ElzXQU=YX%C2TnrD=DjbFNPds^iV z)j(^*r?gnThhLp|;@=sAOt9iUnW*j)JP50#D^*vOQ%#ADf?w{o7irXK!lI+-K5x+wE485SA*?gosoUigy=(PixnDDA;ZEebcT3~VO~NR_C z$Hg`qKSzNp1Dy9RCOUd$89teFuMTi$(7QML{2xg~2Gjrm diff --git a/build/test/preprocess/files/test_mod.c b/build/test/preprocess/files/test_mod.c new file mode 100644 index 0000000..a31e4eb --- /dev/null +++ b/build/test/preprocess/files/test_mod.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_mod(void){ + + + + int result; + + + + + + + + result = mod(10, 5); + + + + + + UnityAssertEqualNumber((UNITY_INT)((0)), (UNITY_INT)((result)), ( + + ((void *)0) + + ), (UNITY_UINT)(22), UNITY_DISPLAY_STYLE_INT); + +} diff --git a/build/test/preprocess/includes/test_mod.c b/build/test/preprocess/includes/test_mod.c new file mode 100644 index 0000000..f2efae7 --- /dev/null +++ b/build/test/preprocess/includes/test_mod.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 4f128ef..6e380e2 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.00677925901254639 +:time: 0.006395165983121842 diff --git a/build/test/results/test_mod.pass b/build/test/results/test_mod.pass new file mode 100644 index 0000000..26827d7 --- /dev/null +++ b/build/test/results/test_mod.pass @@ -0,0 +1,18 @@ +--- +:source: + :path: test/Calculator + :file: test_mod.c +:successes: +- :test: test_mod + :line: 13 + :message: '' + :unity_test_time: 0 +:failures: [] +:ignores: [] +:counts: + :total: 1 + :passed: 1 + :failed: 0 + :ignored: 0 +:stdout: [] +:time: 0.006040317006409168 diff --git a/build/test/results/test_pow.pass b/build/test/results/test_pow.pass index 5767cde..23e7f73 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.006241032999241725 +:time: 0.005650753009831533 diff --git a/build/test/runners/test_mod_runner.c b/build/test/runners/test_mod_runner.c new file mode 100644 index 0000000..198a7ca --- /dev/null +++ b/build/test/runners/test_mod_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_mod(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_mod.c"); + run_test(test_mod, "test_mod", 13); + + return UnityEnd(); +} diff --git a/src/main/c/Calculator/calculator.c b/src/main/c/Calculator/calculator.c index 95d3980..2243f86 100644 --- a/src/main/c/Calculator/calculator.c +++ b/src/main/c/Calculator/calculator.c @@ -1,4 +1,5 @@ #include +#include #define M_PI 3.14159265358979323 @@ -11,6 +12,7 @@ double factorial(double num); double permutation(int n, int r); double combination(int n, int r); double pow(double num1, double num2); +int mod(int num1,int num2); int calculator() { int choice; @@ -85,7 +87,7 @@ double pow(double num1, double num2); case 5: return pow(num1, num2); case 6: - return 0;// fmod(num1, num2); + return 0; fmod(num1, num2); case 7: return 0;// log(num1); case 8: @@ -156,3 +158,7 @@ double pow(double num1, double num2){ } return product; } +int mod(int num1, int num2){ + int result = num1%num2; + return result; +} diff --git a/src/main/c/Calculator/calculator.h b/src/main/c/Calculator/calculator.h index 8d0213a..5ca9657 100644 --- a/src/main/c/Calculator/calculator.h +++ b/src/main/c/Calculator/calculator.h @@ -4,5 +4,6 @@ int calculator(); double pow(double num1, double num2); double factorial(double num); +int mod(int num1, int num2); #endif diff --git a/test/Calculator/test_mod.c b/test/Calculator/test_mod.c new file mode 100644 index 0000000..fde7554 --- /dev/null +++ b/test/Calculator/test_mod.c @@ -0,0 +1,26 @@ +#ifdef TEST +#include "unity.h" +#include "calculator.h" +#include "math.h" + +void setUp(void){ + //Wenn Funktion Vorraussetzungen braucht +} +void tearDown(void){ +} + + +void test_mod(void){ + /* arrange */ + int result; + + + /* act */ + result = mod(10, 5); + + /* assert */ + TEST_ASSERT_EQUAL_INT(0, result);//10%5 +} + + +#endif // TEST