From b5b3104450d808dce3ec74eff41f12e1f9e408c3 Mon Sep 17 00:00:00 2001 From: Thomas Papendieck Date: Mon, 12 Dec 2022 21:22:26 +0100 Subject: [PATCH] Beispiel-Code --- README.md | 20 ++++++++++++++++++-- project.yml | 4 ++-- src/main/c/berechnung.c | 25 +++++++++++++++++++++++++ src/main/c/berechnung.h | 9 +++++++++ src/test/c/test_berechnung.c | 27 +++++++++++++++++++++++++++ 5 files changed, 81 insertions(+), 4 deletions(-) create mode 100644 src/main/c/berechnung.c create mode 100644 src/main/c/berechnung.h create mode 100644 src/test/c/test_berechnung.c diff --git a/README.md b/README.md index e6fa315..52ba73f 100644 --- a/README.md +++ b/README.md @@ -27,5 +27,21 @@ clonen sie folgende Projekte von Github in einem Ordner parallel zu Ihren C-Proj ### Übungsprojekt - dieses Projekt in ein Verzeichnis parallel zu *Unity* und *CMock* clonen -- in einer *git-bash* diesem Verzeichnis dieses Kommando ausführen: - `sh create_folders.sh` +- Offnen Sie die Datei `src/test/c/test_berechnung.c` in einem Editor +- Verwenden Sie das `TEST_ASSERT_EQUAL_STRING` Macro aus dem *Unity* Framework für folgende Testfälle für die Methode `convert()`: + + 1. 2 -> "2" + 1. 3 -> "Fizz" + 1. 5 -> "Buzz" + 1. 11 -> "11" + 1. 15 -> "FizzBuzz" + 1. 12 -> "12" (schlägt fehl) + + +- Verwenden Sie das `TEST_ASSERT_EQUAL_INT` Macro aus dem *Unity* Framework für folgende Testfälle für die Methode `gcd()`: + + 1. 15, 20 -> 5 + 1. 183, 99 -> 3 + 1. 91, 1008 -> 7 + +- Ergänzen Sie die *asserts* um eine Bechreibung mit dem Macro `TEST_ASSERT_EQUAL_INT_MESSAGE` bzw. `TEST_ASSERT_EQUAL_STRING_MESSAGE` \ No newline at end of file diff --git a/project.yml b/project.yml index 6022c8e..dac0d93 100644 --- a/project.yml +++ b/project.yml @@ -9,7 +9,7 @@ :use_exceptions: FALSE :use_test_preprocessor: TRUE :use_auxiliary_dependencies: TRUE - :build_root: build + :build_root: target # :release_build: TRUE :test_file_prefix: test_ :which_ceedling: gem @@ -37,7 +37,7 @@ - src/main/c/** :support: - src/test/c/support - :libraries: [/usr/include/] + :libraries: [] :defines: # in order to add common defines: diff --git a/src/main/c/berechnung.c b/src/main/c/berechnung.c new file mode 100644 index 0000000..307f18d --- /dev/null +++ b/src/main/c/berechnung.c @@ -0,0 +1,25 @@ +#include +#include +#include + +#include "berechnung.h" + + +char* convert(int input){ + char* result = malloc(5*sizeof(char*)); + + sprintf(result,"%d\n", input); + if (input % 15 == 0) + strcpy(result,"fizzbuzz\n"); + else if (input % 5 == 0) + strcpy(result,"buzz\n"); + else if (input % 3 == 0) + strcpy(result,"fizz\n"); + + return result; +} + +int gcd(int a, int b) { + if (b == 0) return a; + return gcd(b, a % b); +} \ No newline at end of file diff --git a/src/main/c/berechnung.h b/src/main/c/berechnung.h new file mode 100644 index 0000000..357f87f --- /dev/null +++ b/src/main/c/berechnung.h @@ -0,0 +1,9 @@ +#ifndef BERECHNUNG_H +#define BERECHNUNG_H + + +char* convert(int input); + +int gcd(int a, int b); + +#endif // BERECHNUNG_H diff --git a/src/test/c/test_berechnung.c b/src/test/c/test_berechnung.c new file mode 100644 index 0000000..81db07d --- /dev/null +++ b/src/test/c/test_berechnung.c @@ -0,0 +1,27 @@ +#ifdef TEST + +#include "unity.h" + +#include "berechnung.h" + +void setUp(void) +{ +} + +void tearDown(void) +{ +} + +void test_berechnung_2_convertsToDigit(void) +{ + /* arrange */ + char* result; + char expected[] = "2\n"; + + /* act */ + result = convert(2); + + /* assert */ +} + +#endif // TEST