|
|
#ifdef TEST
#include "unity.h"
#include "logarithmus.h"
#include "exponent.h"
#include "reihen.h"
#include "util.h"
void setUp(void) { }
void tearDown(void) { }
void test_ln_with_positive_number(void){ double r1, r2, r3;
r1 = logN(1.0); r2 = logN(10.0); r3 = logN(2.5);
TEST_ASSERT_DOUBLE_WITHIN(0.000001, 0, r1); TEST_ASSERT_DOUBLE_WITHIN(0.000001, 2.302585, r2); TEST_ASSERT_DOUBLE_WITHIN(0.000001, 0.916290, r3); }
void test_ln_with_zero_and_negative_numbers(void){ double r1, r2, r3;
r1 = logN(0.0); r2 = logN(-1.0); r3 = logN(-2.5);
TEST_ASSERT_EQUAL_DOUBLE(-1.0, r1); TEST_ASSERT_EQUAL_DOUBLE(-1.0, r2); TEST_ASSERT_EQUAL_DOUBLE(-1.0, r3); }
void test_logarithmic_function_with_edge_cases(void){ double r1, r2, r3, r4;
r1 = logX(0, 10.0); r2 = logX(-1.0, 9.0); r3 = logX(1.0, 18.0); r4 = logX(3.0, 0.0);
TEST_ASSERT_EQUAL_DOUBLE(-1.0, r1); TEST_ASSERT_EQUAL_DOUBLE(-1.0, r2); TEST_ASSERT_EQUAL_DOUBLE(-1.0, r3); TEST_ASSERT_EQUAL_DOUBLE(-1.0, r4); }
void test_logarithmic_function_with_integers(void){ double r1, r2, r3, r4;
r1 = logX(0.5, 48.0); r2 = logX(2.0, 8.0); r3 = logX(3.2, 18.0); r4 = logX(6.0, 36.0);
TEST_ASSERT_DOUBLE_WITHIN(0.000001, -5.584962, r1); TEST_ASSERT_DOUBLE_WITHIN(0.000001, 3.0, r2); TEST_ASSERT_DOUBLE_WITHIN(0.000001, 2.484950, r3); TEST_ASSERT_DOUBLE_WITHIN(0.000001, 2.0, r4); }
void test_logarithmic_function_with_decimals(void){ double r1, r2, r3, r4;
r1 = logX(0.1289, 26.5); r2 = logX(7.64, 8.314); r3 = logX(3.0, 2.4587); r4 = logX(9.0, 94.6584);
TEST_ASSERT_DOUBLE_WITHIN(0.000001, -1.599607, r1); TEST_ASSERT_DOUBLE_WITHIN(0.000001, 1.041577, r2); TEST_ASSERT_DOUBLE_WITHIN(0.000001, 0.818881, r3); TEST_ASSERT_DOUBLE_WITHIN(0.000001, 2.070919, r4); }
void test_logarithmic_function_to_base_10(void){ double r1, r2, r3, r4, r5, r6;
r1 = log10(100.0); r2 = log10(100.6479); r3 = log10(10.587); r4 = log10(4.341); r5 = log10(0.34979); r6 = log10(1.0);
TEST_ASSERT_DOUBLE_WITHIN(0.000001, 2.0, r1); TEST_ASSERT_DOUBLE_WITHIN(0.000001, 2.002804, r2); TEST_ASSERT_DOUBLE_WITHIN(0.000001, 1.024772, r3); TEST_ASSERT_DOUBLE_WITHIN(0.000001, 0.637589, r4); TEST_ASSERT_DOUBLE_WITHIN(0.000001, -0.456192, r5); TEST_ASSERT_DOUBLE_WITHIN(0.000001, 0.0, r6); }
void test_logarithmic_function_to_base_2(void){ double r1, r2, r3, r4, r5, r6;
r1 = log2(1024.0); r2 = log2(1024.8742); r3 = log2(900.587); r4 = log2(78.341); r5 = log2(0.34979); r6 = log2(1.0);
TEST_ASSERT_DOUBLE_WITHIN(0.000001, 10.0, r1); TEST_ASSERT_DOUBLE_WITHIN(0.000001, 10.001231, r2); TEST_ASSERT_DOUBLE_WITHIN(0.000001, 9.814721, r3); TEST_ASSERT_DOUBLE_WITHIN(0.000001, 6.291695, r4); TEST_ASSERT_DOUBLE_WITHIN(0.000001, -1.515439, r5); TEST_ASSERT_DOUBLE_WITHIN(0.000001, 0.0, r6); }
#endif // TEST
|