|
|
#ifdef TEST
#include "unity.h"
#include "exponent.h"
void setUp(void) { }
void tearDown(void) { }
void test_DoubleBase_ForPositiveExponent(void){ int r1, r2, r3;
r1 = expI(2.0, -2.0); r2 = expI(3.0, -3.0); r3 = expI(4.0, 5.0);
TEST_ASSERT_EQUAL_INT(4.0, r1); TEST_ASSERT_EQUAL_INT(-27.0, r2); TEST_ASSERT_EQUAL_INT(625.0, r3); }
void test_DoubleBase_ForNegativeExponent(void){ float r1, r2, r3;
r1 = expIN(-1.0, 2.0); r2 = expIN(-3.0, -3.0); r3 = expIN(-2.0, -2.0);
TEST_ASSERT_EQUAL_FLOAT(0.5, r1); TEST_ASSERT_EQUAL_FLOAT(-0.0370370373, r2); TEST_ASSERT_EQUAL_FLOAT(0.25, r3); }
void test_DoubleBase_for_positive_decimal_exponent(void){ float r1, r2, r3;
r1 = expIN(0.45, 3.0); r2 = expIN(0.5, 9.0); r3 = expIN(0.5, 2.0);
TEST_ASSERT_DOUBLE_WITHIN(0.0001, 1.639474, r1); TEST_ASSERT_DOUBLE_WITHIN(0.0001, 3.0, r2); TEST_ASSERT_DOUBLE_WITHIN(0.0001, 1.414213, r3); }
void test_DoubleDecimalBase_for_positive_decimal_exponent(void){ float r1, r2, r3;
r1 = expIN(0.31, 0.413); r2 = expIN(0.5, 3.13432); r3 = expIN(0.124, 10.1231);
TEST_ASSERT_DOUBLE_WITHIN(0.0001, 0.760229, r1); TEST_ASSERT_DOUBLE_WITHIN(0.0001, 1.770401, r2); TEST_ASSERT_DOUBLE_WITHIN(0.0001, 1.332474, r3); }
void test_DoubleBase_for_negative_decimal_exponent(void){ float r1, r2, r3;
r1 = expIN(-0.125, 3.0); r2 = expIN(-0.5, 2.0); r3 = expIN(-0.12923, 10.0);
TEST_ASSERT_DOUBLE_WITHIN(0.0001, 0.871685, r1); TEST_ASSERT_DOUBLE_WITHIN(0.0001, 0.707106, r2); TEST_ASSERT_DOUBLE_WITHIN(0.0001, 0.742625, r3); }
void test_DoubleDecimalBase_for_negative_decimal_exponent(void){ float r1, r2, r3;
r1 = expIN(-0.5, 6.2315); r2 = expIN(-0.1937, 9.2309); r3 = expIN(-2.2145, 22.9983);
TEST_ASSERT_DOUBLE_WITHIN(0.0001, 0.400593, r1); TEST_ASSERT_DOUBLE_WITHIN(0.0001, 0.650177, r2); TEST_ASSERT_DOUBLE_WITHIN(0.0001, 0.000964, r3); }
void test_Exponent_with_positive_number(void){ double r1, r2, r3;
r1 = exponential(0.0); r2 = exponential(1.0); r3 = exponential(2.0);
TEST_ASSERT_EQUAL_DOUBLE(1.0, r1); TEST_ASSERT_DOUBLE_WITHIN(0.0001, 2.718282, r2); TEST_ASSERT_DOUBLE_WITHIN(0.0001, 7.389056, r3); }
void test_Exponent_with_negative_number(void){ double r1, r2, r3;
r1 = exponential(-1.0); r2 = exponential(-2.0);
TEST_ASSERT_DOUBLE_WITHIN(0.000001, 0.367879, r1); TEST_ASSERT_DOUBLE_WITHIN(0.000001, 0.135335, r2); }
void test_ln_with_positive_number(void){ double r1, r2, r3;
r1 = logN(1.0, 0.000001); r2 = logN(10.0, 0.000001); r3 = logN(2.5, 0.000001);
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, 0.000001); r2 = logN(-1.0, 0.000001); r3 = logN(-2.5, 0.000001);
TEST_ASSERT_EQUAL_DOUBLE(-1.0, r1); TEST_ASSERT_EQUAL_DOUBLE(-1.0, r2); TEST_ASSERT_EQUAL_DOUBLE(-1.0, r3); }
#endif // TEST
|