diff --git a/src/trig_functions/.gitkeep b/src/trig_functions/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/src/trig_functions/trig_functions.c b/src/trig_functions/trig_functions.c new file mode 100644 index 0000000..186a4fe --- /dev/null +++ b/src/trig_functions/trig_functions.c @@ -0,0 +1,17 @@ +#include "trig_functions.h" +#include + +double calculate_sin(double angle) { + if (angle==0) return 0; + else return sin(angle); +} + +double calculate_cos(double angle) { + if (angle==0) return 1; + else return cos(angle); +} + +double calculate_tan(double angle) { + if (angle==0) return 0; + else return tan(angle); +} diff --git a/src/trig_functions/trig_functions.h b/src/trig_functions/trig_functions.h new file mode 100644 index 0000000..e15575b --- /dev/null +++ b/src/trig_functions/trig_functions.h @@ -0,0 +1,9 @@ +#ifndef trig_functions_H +#define trig_functions_H + +double calculate_sin(double angle); +double calculate_cos(double angle); +double calculate_tan(double angle); + +#endif + diff --git a/test/trig_functions/.gitkeep b/test/trig_functions/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/test/trig_functions/test_trig_functions.c b/test/trig_functions/test_trig_functions.c new file mode 100644 index 0000000..115d0c9 --- /dev/null +++ b/test/trig_functions/test_trig_functions.c @@ -0,0 +1,31 @@ +#include "unity.h" +#include "trig_functions.h" +#define PI 3.14159265 + +void setUp(void){} + +void tearDown(void){} + +void test_sin() { + TEST_ASSERT_EQUAL_DOUBLE(0.0, calculate_sin(0)); + TEST_ASSERT_EQUAL_DOUBLE(1.0, calculate_sin(PI/2)); + TEST_ASSERT_EQUAL_DOUBLE(0.0, calculate_sin(PI)); + TEST_ASSERT_EQUAL_DOUBLE(-1.0, calculate_sin(3*PI/2)); + TEST_ASSERT_EQUAL_DOUBLE(0.0, calculate_sin(2*PI)); +} + +void test_cos() { + TEST_ASSERT_EQUAL_DOUBLE(1.0, calculate_cos(0)); + TEST_ASSERT_EQUAL_DOUBLE(0.0, calculate_cos(PI/2)); + TEST_ASSERT_EQUAL_DOUBLE(-1.0, calculate_cos(PI)); + TEST_ASSERT_EQUAL_DOUBLE(0.0, calculate_cos(3*PI/2)); + TEST_ASSERT_EQUAL_DOUBLE(1.0, calculate_cos(2*PI)); +} + +void test_tan() { + TEST_ASSERT_EQUAL_DOUBLE(0.0, calculate_tan(0)); + TEST_ASSERT_EQUAL_DOUBLE(INFINITY, calculate_tan(PI/2)); // Tangens von 90 Grad ist unendlich + TEST_ASSERT_EQUAL_DOUBLE(0.0, calculate_tan(PI)); + TEST_ASSERT_EQUAL_DOUBLE(INFINITY, calculate_tan(3*PI/2)); // Tangens von 270 Grad ist unendlich + TEST_ASSERT_EQUAL_DOUBLE(0.0, calculate_tan(2*PI)); +}