From 92f74b3f37c05fdb80e84084fb85736c8e79e567 Mon Sep 17 00:00:00 2001 From: fdai7514 Date: Thu, 9 Feb 2023 00:12:49 +0100 Subject: [PATCH 1/4] implement function calculatorSubtract() --- project.yml | 101 ++++++++++++++++++++++++++++++++ src/calculatorSubtract.c | 5 ++ src/calculatorSubtract.h | 11 ++++ src/main.c | 22 ++++++- tests/support/.gitkeep | 0 tests/test_calculatorSubtract.c | 20 +++++++ 6 files changed, 156 insertions(+), 3 deletions(-) create mode 100644 project.yml create mode 100644 src/calculatorSubtract.c create mode 100644 src/calculatorSubtract.h create mode 100644 tests/support/.gitkeep create mode 100644 tests/test_calculatorSubtract.c diff --git a/project.yml b/project.yml new file mode 100644 index 0000000..640cb8f --- /dev/null +++ b/project.yml @@ -0,0 +1,101 @@ +--- + +# Notes: +# Sample project C code is not presently written to produce a release artifact. +# As such, release build options are disabled. +# This sample, therefore, only demonstrates running a collection of unit tests. + +:project: + :use_exceptions: FALSE + :use_test_preprocessor: TRUE + :use_auxiliary_dependencies: TRUE + :build_root: build +# :release_build: TRUE + :test_file_prefix: test_ + :which_ceedling: gem + :ceedling_version: 0.31.1 + :default_tasks: + - test:all + +#:test_build: +# :use_assembly: TRUE + +#:release_build: +# :output: MyApp.out +# :use_assembly: FALSE + +:environment: + +:extension: + :executable: .out + +:paths: + :test: + - +:tests/** + - -:tests/support + :source: + - src/** + :support: + - tests/support + :libraries: [] + +:defines: + # in order to add common defines: + # 1) remove the trailing [] from the :common: section + # 2) add entries to the :common: section (e.g. :test: has TEST defined) + :common: &common_defines [] + :test: + - *common_defines + - TEST + :test_preprocess: + - *common_defines + - TEST + +:cmock: + :mock_prefix: mock_ + :when_no_prototypes: :warn + :enforce_strict_ordering: TRUE + :plugins: + - :ignore + - :callback + :treat_as: + uint8: HEX8 + uint16: HEX16 + uint32: UINT32 + int8: INT8 + bool: UINT8 + +# Add -gcov to the plugins list to make sure of the gcov plugin +# You will need to have gcov and gcovr both installed to make it work. +# For more information on these options, see docs in plugins/gcov +:gcov: + :reports: + - HtmlDetailed + :gcovr: + :html_medium_threshold: 75 + :html_high_threshold: 90 + +#:tools: +# Ceedling defaults to using gcc for compiling, linking, etc. +# As [:tools] is blank, gcc will be used (so long as it's in your system path) +# See documentation to configure a given toolchain for use + +# LIBRARIES +# These libraries are automatically injected into the build process. Those specified as +# common will be used in all types of builds. Otherwise, libraries can be injected in just +# tests or releases. These options are MERGED with the options in supplemental yaml files. +:libraries: + :placement: :end + :flag: "-l${1}" + :path_flag: "-L ${1}" + :system: [] # for example, you might list 'm' to grab the math library + :test: [] + :release: [] + +:plugins: + :load_paths: + - "#{Ceedling.load_path}" + :enabled: + - stdout_pretty_tests_report + - module_generator +... diff --git a/src/calculatorSubtract.c b/src/calculatorSubtract.c new file mode 100644 index 0000000..a2a54f6 --- /dev/null +++ b/src/calculatorSubtract.c @@ -0,0 +1,5 @@ +#include "calculatorSubtract.h" + +float calculatorSubtract(float x, float y){return x-y;} + + diff --git a/src/calculatorSubtract.h b/src/calculatorSubtract.h new file mode 100644 index 0000000..120b8b2 --- /dev/null +++ b/src/calculatorSubtract.h @@ -0,0 +1,11 @@ +#ifndef CALCULATORSUBTRACT_H +#define CALCULATORSUBTRACT_H + +#include +#include + +float calculatorSubtract(float x, float y); + + + +#endif // CALCULATORSUBTRACT_H diff --git a/src/main.c b/src/main.c index a3a8e04..f6b4482 100644 --- a/src/main.c +++ b/src/main.c @@ -1,4 +1,20 @@ -#include -int main(){ -return 0; +#include "calculatorSubtract.c" + + +int main() +{ + float num1, num2, difference; + + printf("number1: "); + scanf("%f", &num1); + + printf("number2: "); + scanf("%f", &num2); + + difference = calculatorSubtract(num1, num2); + + printf("answer: %f", difference); + return 0; } + + diff --git a/tests/support/.gitkeep b/tests/support/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/tests/test_calculatorSubtract.c b/tests/test_calculatorSubtract.c new file mode 100644 index 0000000..498d037 --- /dev/null +++ b/tests/test_calculatorSubtract.c @@ -0,0 +1,20 @@ +#ifdef TEST + +#include "unity.h" + +#include "calculatorSubtract.h" + +void setUp(void) +{ +} + +void tearDown(void) +{ +} + +void test_calculatorSubtract_NeedToImplement(void) +{ + TEST_IGNORE_MESSAGE("Need to Implement calculatorSubtract"); +} + +#endif // TEST From c19f56958b4b737cd0164a425ce1d39299c45b30 Mon Sep 17 00:00:00 2001 From: fdai7514 Date: Thu, 9 Feb 2023 00:16:29 +0100 Subject: [PATCH 2/4] implement unittest for calculatorSubtract.c --- build-project.sh | 1 + tests/test_calculatorSubtract.c | 100 +++++++++++++++++++++++++++++++- 2 files changed, 99 insertions(+), 2 deletions(-) diff --git a/build-project.sh b/build-project.sh index 43a0588..51cf723 100755 --- a/build-project.sh +++ b/build-project.sh @@ -1,4 +1,5 @@ clear +ceedling test:all cd src/ gcc main.c -o main ./main diff --git a/tests/test_calculatorSubtract.c b/tests/test_calculatorSubtract.c index 498d037..abf9859 100644 --- a/tests/test_calculatorSubtract.c +++ b/tests/test_calculatorSubtract.c @@ -12,9 +12,105 @@ void tearDown(void) { } -void test_calculatorSubtract_NeedToImplement(void) + +void test1_calculatorSubtract(void) +{ + float p, q, a, e; + p = 123.211; + q = 112.21; + e = p - q; + a = calculatorSubtract(p, q); + TEST_ASSERT_EQUAL_FLOAT(e, a); +} + +void test2_calculatorSubtract(void) +{ + float p, q, a, e; + p = 13.21; + q = 112.21; + e = p - q; + a = calculatorSubtract(p, q); + TEST_ASSERT_EQUAL_FLOAT(e, a); +} + +void test3_calculatorSubtract(void) +{ + float p, q, a, e; + p = 12231.211; + q = 1122.21; + e = p - q; + a = calculatorSubtract(p, q); + TEST_ASSERT_EQUAL_FLOAT(e, a); +} + +void test4_calculatorSubtract(void) +{ + float p, q, a, e; + p = 113453.211; + q = 11254.21; + e = p - q; + a = calculatorSubtract(p, q); + TEST_ASSERT_EQUAL_FLOAT(e, a); +} + +void test5_calculatorSubtract(void) +{ + float p, q, a, e; + p = 12133.211; + q = 112.231; + e = p - q; + a = calculatorSubtract(p, q); + TEST_ASSERT_EQUAL_FLOAT(e, a); +} + +void test6_calculatorSubtract(void) +{ + float p, q, a, e; + p = 1133.201; + q = 11221.21; + e = p - q; + a = calculatorSubtract(p, q); + TEST_ASSERT_EQUAL_FLOAT(e, a); +} + +void test7_calculatorSubtract(void) +{ + float p, q, a, e; + p = 12213.2211; + q = 111.21; + e = p - q; + a = calculatorSubtract(p, q); + TEST_ASSERT_EQUAL_FLOAT(e, a); +} + +void test8_calculatorSubtract(void) +{ + float p, q, a, e; + p = 16213.711; + q = 1214.2251; + e = p - q; + a = calculatorSubtract(p, q); + TEST_ASSERT_EQUAL_FLOAT(e, a); +} + +void test9_calculatorSubtract(void) +{ + float p, q, a, e; + p = 1933.611; + q = 1432.21; + e = p - q; + a = calculatorSubtract(p, q); + TEST_ASSERT_EQUAL_FLOAT(e, a); +} + +void test10_calculatorSubtract(void) { - TEST_IGNORE_MESSAGE("Need to Implement calculatorSubtract"); + float p, q, a, e; + p = 1233.811; + q = 1121.131; + e = p - q; + a = calculatorSubtract(p, q); + TEST_ASSERT_EQUAL_FLOAT(e, a); } #endif // TEST From 9e0d1cece91a28d2a780381d9b472c1283a04264 Mon Sep 17 00:00:00 2001 From: fdai7514 Date: Sun, 5 Feb 2023 23:23:02 +0100 Subject: [PATCH 3/4] refactoring: change variable names and format code in calculatorSubtract.c and calculatorSubtract.h --- src/calculatorSubtract.c | 9 ++++++++- src/calculatorSubtract.h | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/calculatorSubtract.c b/src/calculatorSubtract.c index a2a54f6..d460458 100644 --- a/src/calculatorSubtract.c +++ b/src/calculatorSubtract.c @@ -1,5 +1,12 @@ #include "calculatorSubtract.h" -float calculatorSubtract(float x, float y){return x-y;} +// Note: +/* This Function may or may not be implemented in actual program, even if it is merged to the main branch. + If it is temporarily not included in the main Program, then this has a role in future Development of the Project */ + +float calculatorSubtract (float num1, float num2) +{ + return num1 - num2; +} diff --git a/src/calculatorSubtract.h b/src/calculatorSubtract.h index 120b8b2..156eaa9 100644 --- a/src/calculatorSubtract.h +++ b/src/calculatorSubtract.h @@ -4,7 +4,7 @@ #include #include -float calculatorSubtract(float x, float y); +float calculatorSubtract(float num1, float num2); From 6be626e2352b07d9d8068508772c0ce18c47e026 Mon Sep 17 00:00:00 2001 From: fdai7514 Date: Sun, 5 Feb 2023 23:40:03 +0100 Subject: [PATCH 4/4] refactoring: change variable names in test_calculatorSubtract.c --- tests/test_calculatorSubtract.c | 125 +++++++++++++++++--------------- 1 file changed, 65 insertions(+), 60 deletions(-) diff --git a/tests/test_calculatorSubtract.c b/tests/test_calculatorSubtract.c index abf9859..e898b7b 100644 --- a/tests/test_calculatorSubtract.c +++ b/tests/test_calculatorSubtract.c @@ -4,6 +4,11 @@ #include "calculatorSubtract.h" +// Note: +/* This Function may or may not be implemented in actual program, even if it is merged to the main branch. + If it is temporarily not included in the main Program, then this has a role in future Development of the Project */ + + void setUp(void) { } @@ -15,102 +20,102 @@ void tearDown(void) void test1_calculatorSubtract(void) { - float p, q, a, e; - p = 123.211; - q = 112.21; - e = p - q; - a = calculatorSubtract(p, q); - TEST_ASSERT_EQUAL_FLOAT(e, a); + float num1, num2, actual, expected; //Arrange + num1 = 123.211; + num2 = 112.21; + expected = num1 - num2; + actual = calculatorSubtract(num1, num2); //Act + TEST_ASSERT_EQUAL_FLOAT(expected, actual); //Assert } void test2_calculatorSubtract(void) { - float p, q, a, e; - p = 13.21; - q = 112.21; - e = p - q; - a = calculatorSubtract(p, q); - TEST_ASSERT_EQUAL_FLOAT(e, a); + float num1, num2, actual, expected; //Arrange + num1 = 13.21; + num2 = 112.21; + expected = num1 - num2; + actual = calculatorSubtract(num1, num2); //Act + TEST_ASSERT_EQUAL_FLOAT(expected, actual); //Assert } void test3_calculatorSubtract(void) { - float p, q, a, e; - p = 12231.211; - q = 1122.21; - e = p - q; - a = calculatorSubtract(p, q); - TEST_ASSERT_EQUAL_FLOAT(e, a); + float num1, num2, actual, expected; //Arrange + num1 = 12231.211; + num2 = 1122.21; + expected = num1 - num2; + actual = calculatorSubtract(num1, num2); //Act + TEST_ASSERT_EQUAL_FLOAT(expected, actual); //Assert } void test4_calculatorSubtract(void) { - float p, q, a, e; - p = 113453.211; - q = 11254.21; - e = p - q; - a = calculatorSubtract(p, q); - TEST_ASSERT_EQUAL_FLOAT(e, a); + float num1, num2, actual, expected; //Arrange + num1 = 113453.211; + num2 = 11254.21; + expected = num1 - num2; + actual = calculatorSubtract(num1, num2); //Act + TEST_ASSERT_EQUAL_FLOAT(expected, actual); //Assert } void test5_calculatorSubtract(void) { - float p, q, a, e; - p = 12133.211; - q = 112.231; - e = p - q; - a = calculatorSubtract(p, q); - TEST_ASSERT_EQUAL_FLOAT(e, a); + float num1, num2, actual, expected; //Arrange + num1 = 12133.211; + num2 = 112.231; + expected = num1 - num2; + actual = calculatorSubtract(num1, num2); //Act + TEST_ASSERT_EQUAL_FLOAT(expected, actual); //Assert } void test6_calculatorSubtract(void) { - float p, q, a, e; - p = 1133.201; - q = 11221.21; - e = p - q; - a = calculatorSubtract(p, q); - TEST_ASSERT_EQUAL_FLOAT(e, a); + float num1, num2, actual, expected; //Arrange + num1 = 1133.201; + num2 = 11221.21; + expected = num1 - num2; + actual = calculatorSubtract(num1, num2); //Act + TEST_ASSERT_EQUAL_FLOAT(expected, actual); //Assert } void test7_calculatorSubtract(void) { - float p, q, a, e; - p = 12213.2211; - q = 111.21; - e = p - q; - a = calculatorSubtract(p, q); - TEST_ASSERT_EQUAL_FLOAT(e, a); + float num1, num2, actual, expected; //Arrange + num1 = 12213.2211; + num2 = 111.21; + expected = num1 - num2; + actual = calculatorSubtract(num1, num2); //Act + TEST_ASSERT_EQUAL_FLOAT(expected, actual); //Assert } void test8_calculatorSubtract(void) { - float p, q, a, e; - p = 16213.711; - q = 1214.2251; - e = p - q; - a = calculatorSubtract(p, q); - TEST_ASSERT_EQUAL_FLOAT(e, a); + float num1, num2, actual, expected; //Arrange + num1 = 16213.711; + num2 = 1214.2251; + expected = num1 - num2; + actual = calculatorSubtract(num1, num2); //Act + TEST_ASSERT_EQUAL_FLOAT(expected, actual); //Assert } void test9_calculatorSubtract(void) { - float p, q, a, e; - p = 1933.611; - q = 1432.21; - e = p - q; - a = calculatorSubtract(p, q); - TEST_ASSERT_EQUAL_FLOAT(e, a); + float num1, num2, actual, expected; //Arrange + num1 = 1933.611; + num2 = 1432.21; + expected = num1 - num2; + actual = calculatorSubtract(num1, num2); //Act + TEST_ASSERT_EQUAL_FLOAT(expected, actual); //Assert } void test10_calculatorSubtract(void) { - float p, q, a, e; - p = 1233.811; - q = 1121.131; - e = p - q; - a = calculatorSubtract(p, q); - TEST_ASSERT_EQUAL_FLOAT(e, a); + float num1, num2, actual, expected; //Arrange + num1 = 1233.811; + num2 = 1121.131; + expected = num1 - num2; + actual = calculatorSubtract(num1, num2); //Act + TEST_ASSERT_EQUAL_FLOAT(expected, actual); //Assert } #endif // TEST