mirror of
https://github.com/EnderIce2/Fennix.git
synced 2025-05-27 15:04:31 +00:00
test(userspace/apps/test): expand math function tests for accuracy
Signed-off-by: EnderIce2 <enderice2@protonmail.com>
This commit is contained in:
parent
0a52ef4f68
commit
90fb9c7952
@ -15,36 +15,84 @@
|
||||
along with Fennix Userspace. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef __fennix__
|
||||
#define _GNU_SOURCE
|
||||
#endif
|
||||
|
||||
#include <math.h>
|
||||
#include <stddef.h>
|
||||
#include <stdio.h>
|
||||
|
||||
int test_acos()
|
||||
{
|
||||
double result = acos(0.5);
|
||||
double expected_result = 1.0471975511965976;
|
||||
return fabs(result - expected_result) < 1e-6 ? 0 : 1;
|
||||
double result1 = acos(0.5);
|
||||
double expected_result1 = 1.0471975511965976;
|
||||
double result2 = acos(-0.5);
|
||||
double expected_result2 = 2.0943951023931957;
|
||||
double result3 = acos(1.0);
|
||||
double expected_result3 = 0.0;
|
||||
double result4 = acos(-1.0);
|
||||
double expected_result4 = M_PI;
|
||||
return (fabs(result1 - expected_result1) < 1e-6 &&
|
||||
fabs(result2 - expected_result2) < 1e-6 &&
|
||||
fabs(result3 - expected_result3) < 1e-6 &&
|
||||
fabs(result4 - expected_result4) < 1e-6)
|
||||
? 0
|
||||
: 1;
|
||||
}
|
||||
|
||||
int test_acosf()
|
||||
{
|
||||
float result = acosf(0.5f);
|
||||
float expected_result = 1.0471975f;
|
||||
return fabs(result - expected_result) < 1e-6f ? 0 : 1;
|
||||
float result1 = acosf(0.5f);
|
||||
float expected_result1 = 1.0471975f;
|
||||
float result2 = acosf(-0.5f);
|
||||
float expected_result2 = 2.0943951f;
|
||||
float result3 = acosf(1.0f);
|
||||
float expected_result3 = 0.0f;
|
||||
float result4 = acosf(-1.0f);
|
||||
float expected_result4 = (float)M_PI;
|
||||
return (fabs(result1 - expected_result1) < 1e-6f &&
|
||||
fabs(result2 - expected_result2) < 1e-6f &&
|
||||
fabs(result3 - expected_result3) < 1e-6f &&
|
||||
fabs(result4 - expected_result4) < 1e-6f)
|
||||
? 0
|
||||
: 1;
|
||||
}
|
||||
|
||||
int test_acosh()
|
||||
{
|
||||
double result = acosh(1.5);
|
||||
double expected_result = 0.9624236501192069;
|
||||
return fabs(result - expected_result) < 1e-6 ? 0 : 1;
|
||||
double result1 = acosh(1.5);
|
||||
double expected_result1 = 0.9624236501192069;
|
||||
double result2 = acosh(2.0);
|
||||
double expected_result2 = 1.3169578969248166;
|
||||
double result3 = acosh(3.0);
|
||||
double expected_result3 = 1.762747174039086;
|
||||
double result4 = acosh(10.0);
|
||||
double expected_result4 = 2.993222846126381;
|
||||
return (fabs(result1 - expected_result1) < 1e-6 &&
|
||||
fabs(result2 - expected_result2) < 1e-6 &&
|
||||
fabs(result3 - expected_result3) < 1e-6 &&
|
||||
fabs(result4 - expected_result4) < 1e-6)
|
||||
? 0
|
||||
: 1;
|
||||
}
|
||||
|
||||
int test_acoshf()
|
||||
{
|
||||
float result = acoshf(1.5f);
|
||||
float expected_result = 0.9624237f;
|
||||
return fabs(result - expected_result) < 1e-6f ? 0 : 1;
|
||||
float result1 = acoshf(1.5f);
|
||||
float expected_result1 = 0.9624237f;
|
||||
float result2 = acoshf(2.0f);
|
||||
float expected_result2 = 1.3169579f;
|
||||
float result3 = acoshf(3.0f);
|
||||
float expected_result3 = 1.7627472f;
|
||||
float result4 = acoshf(10.0f);
|
||||
float expected_result4 = 2.9932228f;
|
||||
return (fabs(result1 - expected_result1) < 1e-6f &&
|
||||
fabs(result2 - expected_result2) < 1e-6f &&
|
||||
fabs(result3 - expected_result3) < 1e-6f &&
|
||||
fabs(result4 - expected_result4) < 1e-6f)
|
||||
? 0
|
||||
: 1;
|
||||
}
|
||||
|
||||
int test_acoshl()
|
||||
@ -63,16 +111,38 @@ int test_acosl()
|
||||
|
||||
int test_asin()
|
||||
{
|
||||
double result = asin(0.5);
|
||||
double expected_result = 0.5235987755982989;
|
||||
return fabs(result - expected_result) < 1e-6 ? 0 : 1;
|
||||
double result1 = asin(0.5);
|
||||
double expected_result1 = 0.5235987755982989;
|
||||
double result2 = asin(-0.5);
|
||||
double expected_result2 = -0.5235987755982989;
|
||||
double result3 = asin(1.0);
|
||||
double expected_result3 = 1.5707963267948966;
|
||||
double result4 = asin(-1.0);
|
||||
double expected_result4 = -1.5707963267948966;
|
||||
return (fabs(result1 - expected_result1) < 1e-6 &&
|
||||
fabs(result2 - expected_result2) < 1e-6 &&
|
||||
fabs(result3 - expected_result3) < 1e-6 &&
|
||||
fabs(result4 - expected_result4) < 1e-6)
|
||||
? 0
|
||||
: 1;
|
||||
}
|
||||
|
||||
int test_asinf()
|
||||
{
|
||||
float result = asinf(0.5f);
|
||||
float expected_result = 0.5235988f;
|
||||
return fabs(result - expected_result) < 1e-6f ? 0 : 1;
|
||||
float result1 = asinf(0.5f);
|
||||
float expected_result1 = 0.5235988f;
|
||||
float result2 = asinf(-0.5f);
|
||||
float expected_result2 = -0.5235988f;
|
||||
float result3 = asinf(1.0f);
|
||||
float expected_result3 = 1.5707964f;
|
||||
float result4 = asinf(-1.0f);
|
||||
float expected_result4 = -1.5707964f;
|
||||
return (fabs(result1 - expected_result1) < 1e-6f &&
|
||||
fabs(result2 - expected_result2) < 1e-6f &&
|
||||
fabs(result3 - expected_result3) < 1e-6f &&
|
||||
fabs(result4 - expected_result4) < 1e-6f)
|
||||
? 0
|
||||
: 1;
|
||||
}
|
||||
|
||||
int test_asinh()
|
||||
@ -105,9 +175,20 @@ int test_asinl()
|
||||
|
||||
int test_atan()
|
||||
{
|
||||
double result = atan(1.0);
|
||||
double expected_result = 0.7853981633974483;
|
||||
return fabs(result - expected_result) < 1e-6 ? 0 : 1;
|
||||
double result1 = atan(1.0);
|
||||
double expected_result1 = 0.7853981633974483;
|
||||
double result2 = atan(0.0);
|
||||
double expected_result2 = 0.0;
|
||||
double result3 = atan(-1.0);
|
||||
double expected_result3 = -0.7853981633974483;
|
||||
double result4 = atan(10.0);
|
||||
double expected_result4 = 1.4711276743037347;
|
||||
return (fabs(result1 - expected_result1) < 1e-6 &&
|
||||
fabs(result2 - expected_result2) < 1e-6 &&
|
||||
fabs(result3 - expected_result3) < 1e-6 &&
|
||||
fabs(result4 - expected_result4) < 1e-6)
|
||||
? 0
|
||||
: 1;
|
||||
}
|
||||
|
||||
int test_atan2()
|
||||
@ -133,9 +214,20 @@ int test_atan2l()
|
||||
|
||||
int test_atanf()
|
||||
{
|
||||
float result = atanf(1.0f);
|
||||
float expected_result = 0.7853982f;
|
||||
return fabs(result - expected_result) < 1e-6f ? 0 : 1;
|
||||
float result1 = atanf(1.0f);
|
||||
float expected_result1 = 0.7853982f;
|
||||
float result2 = atanf(0.0f);
|
||||
float expected_result2 = 0.0f;
|
||||
float result3 = atanf(-1.0f);
|
||||
float expected_result3 = -0.7853982f;
|
||||
float result4 = atanf(10.0f);
|
||||
float expected_result4 = 1.4711277f;
|
||||
return (fabs(result1 - expected_result1) < 1e-6f &&
|
||||
fabs(result2 - expected_result2) < 1e-6f &&
|
||||
fabs(result3 - expected_result3) < 1e-6f &&
|
||||
fabs(result4 - expected_result4) < 1e-6f)
|
||||
? 0
|
||||
: 1;
|
||||
}
|
||||
|
||||
int test_atanh()
|
||||
@ -231,16 +323,38 @@ int test_copysignl()
|
||||
|
||||
int test_cos()
|
||||
{
|
||||
double result = cos(0.0);
|
||||
double expected_result = 1.0;
|
||||
return fabs(result - expected_result) < 1e-6 ? 0 : 1;
|
||||
double result1 = cos(0.0);
|
||||
double expected_result1 = 1.0;
|
||||
double result2 = cos(M_PI / 2);
|
||||
double expected_result2 = 0.0;
|
||||
double result3 = cos(M_PI);
|
||||
double expected_result3 = -1.0;
|
||||
double result4 = cos(3 * M_PI / 2);
|
||||
double expected_result4 = 0.0;
|
||||
return (fabs(result1 - expected_result1) < 1e-6 &&
|
||||
fabs(result2 - expected_result2) < 1e-6 &&
|
||||
fabs(result3 - expected_result3) < 1e-6 &&
|
||||
fabs(result4 - expected_result4) < 1e-6)
|
||||
? 0
|
||||
: 1;
|
||||
}
|
||||
|
||||
int test_cosf()
|
||||
{
|
||||
float result = cosf(0.0f);
|
||||
float expected_result = 1.0f;
|
||||
return fabs(result - expected_result) < 1e-6f ? 0 : 1;
|
||||
float result1 = cosf(0.0f);
|
||||
float expected_result1 = 1.0f;
|
||||
float result2 = cosf(M_PI / 2);
|
||||
float expected_result2 = 0.0f;
|
||||
float result3 = cosf(M_PI);
|
||||
float expected_result3 = -1.0f;
|
||||
float result4 = cosf(3 * M_PI / 2);
|
||||
float expected_result4 = 0.0f;
|
||||
return (fabs(result1 - expected_result1) < 1e-6f &&
|
||||
fabs(result2 - expected_result2) < 1e-6f &&
|
||||
fabs(result3 - expected_result3) < 1e-6f &&
|
||||
fabs(result4 - expected_result4) < 1e-6f)
|
||||
? 0
|
||||
: 1;
|
||||
}
|
||||
|
||||
int test_cosh()
|
||||
@ -315,9 +429,20 @@ int test_erfl()
|
||||
|
||||
int test_exp()
|
||||
{
|
||||
double result = exp(1.0);
|
||||
double expected_result = 2.718281828459045;
|
||||
return fabs(result - expected_result) < 1e-6 ? 0 : 1;
|
||||
double result1 = exp(1.0);
|
||||
double expected_result1 = 2.718281828459045;
|
||||
double result2 = exp(0.0);
|
||||
double expected_result2 = 1.0;
|
||||
double result3 = exp(-1.0);
|
||||
double expected_result3 = 0.36787944117144233;
|
||||
double result4 = exp(10.0);
|
||||
double expected_result4 = 22026.465794806718;
|
||||
return (fabs(result1 - expected_result1) < 1e-6 &&
|
||||
fabs(result2 - expected_result2) < 1e-6 &&
|
||||
fabs(result3 - expected_result3) < 1e-6 &&
|
||||
fabs(result4 - expected_result4) < 1e-6)
|
||||
? 0
|
||||
: 1;
|
||||
}
|
||||
|
||||
int test_exp2()
|
||||
@ -343,9 +468,20 @@ int test_exp2l()
|
||||
|
||||
int test_expf()
|
||||
{
|
||||
float result = expf(1.0f);
|
||||
float expected_result = 2.7182817f;
|
||||
return fabs(result - expected_result) < 1e-6f ? 0 : 1;
|
||||
float result1 = expf(1.0f);
|
||||
float expected_result1 = 2.7182817f;
|
||||
float result2 = expf(0.0f);
|
||||
float expected_result2 = 1.0f;
|
||||
float result3 = expf(-1.0f);
|
||||
float expected_result3 = 0.36787945f;
|
||||
float result4 = expf(10.0f);
|
||||
float expected_result4 = 22026.465f;
|
||||
return (fabs(result1 - expected_result1) < 1e-6f &&
|
||||
fabs(result2 - expected_result2) < 1e-6f &&
|
||||
fabs(result3 - expected_result3) < 1e-6f &&
|
||||
fabs(result4 - expected_result4) < 1e-6f)
|
||||
? 0
|
||||
: 1;
|
||||
}
|
||||
|
||||
int test_expl()
|
||||
@ -711,9 +847,20 @@ int test_llroundl()
|
||||
|
||||
int test_log()
|
||||
{
|
||||
double result = log(1.0);
|
||||
double expected_result = 0.0;
|
||||
return fabs(result - expected_result) < 1e-6 ? 0 : 1;
|
||||
double result1 = log(1.0);
|
||||
double expected_result1 = 0.0;
|
||||
double result2 = log(M_E);
|
||||
double expected_result2 = 1.0;
|
||||
double result3 = log(10.0);
|
||||
double expected_result3 = 2.302585092994046;
|
||||
double result4 = log(100.0);
|
||||
double expected_result4 = 4.605170185988092;
|
||||
return (fabs(result1 - expected_result1) < 1e-6 &&
|
||||
fabs(result2 - expected_result2) < 1e-6 &&
|
||||
fabs(result3 - expected_result3) < 1e-6 &&
|
||||
fabs(result4 - expected_result4) < 1e-6)
|
||||
? 0
|
||||
: 1;
|
||||
}
|
||||
|
||||
int test_log10()
|
||||
@ -802,9 +949,20 @@ int test_logbl()
|
||||
|
||||
int test_logf()
|
||||
{
|
||||
float result = logf(1.0f);
|
||||
float expected_result = 0.0f;
|
||||
return fabs(result - expected_result) < 1e-6f ? 0 : 1;
|
||||
float result1 = logf(1.0f);
|
||||
float expected_result1 = 0.0f;
|
||||
float result2 = logf(M_E);
|
||||
float expected_result2 = 1.0f;
|
||||
float result3 = logf(10.0f);
|
||||
float expected_result3 = 2.3025851f;
|
||||
float result4 = logf(100.0f);
|
||||
float expected_result4 = 4.6051702f;
|
||||
return (fabs(result1 - expected_result1) < 1e-6f &&
|
||||
fabs(result2 - expected_result2) < 1e-6f &&
|
||||
fabs(result3 - expected_result3) < 1e-6f &&
|
||||
fabs(result4 - expected_result4) < 1e-6f)
|
||||
? 0
|
||||
: 1;
|
||||
}
|
||||
|
||||
int test_logl()
|
||||
@ -1141,16 +1299,38 @@ int test_scalbnl()
|
||||
|
||||
int test_sin()
|
||||
{
|
||||
double result = sin(0.0);
|
||||
double expected_result = 0.0;
|
||||
return fabs(result - expected_result) < 1e-6 ? 0 : 1;
|
||||
double result1 = sin(0.0);
|
||||
double expected_result1 = 0.0;
|
||||
double result2 = sin(M_PI / 2);
|
||||
double expected_result2 = 1.0;
|
||||
double result3 = sin(M_PI);
|
||||
double expected_result3 = 0.0;
|
||||
double result4 = sin(3 * M_PI / 2);
|
||||
double expected_result4 = -1.0;
|
||||
return (fabs(result1 - expected_result1) < 1e-6 &&
|
||||
fabs(result2 - expected_result2) < 1e-6 &&
|
||||
fabs(result3 - expected_result3) < 1e-6 &&
|
||||
fabs(result4 - expected_result4) < 1e-6)
|
||||
? 0
|
||||
: 1;
|
||||
}
|
||||
|
||||
int test_sinf()
|
||||
{
|
||||
float result = sinf(0.0f);
|
||||
float expected_result = 0.0f;
|
||||
return fabs(result - expected_result) < 1e-6f ? 0 : 1;
|
||||
float result1 = sinf(0.0f);
|
||||
float expected_result1 = 0.0f;
|
||||
float result2 = sinf(M_PI / 2);
|
||||
float expected_result2 = 1.0f;
|
||||
float result3 = sinf(M_PI);
|
||||
float expected_result3 = 0.0f;
|
||||
float result4 = sinf(3 * M_PI / 2);
|
||||
float expected_result4 = -1.0f;
|
||||
return (fabs(result1 - expected_result1) < 1e-6f &&
|
||||
fabs(result2 - expected_result2) < 1e-6f &&
|
||||
fabs(result3 - expected_result3) < 1e-6f &&
|
||||
fabs(result4 - expected_result4) < 1e-6f)
|
||||
? 0
|
||||
: 1;
|
||||
}
|
||||
|
||||
int test_sinh()
|
||||
@ -1183,16 +1363,38 @@ int test_sinl()
|
||||
|
||||
int test_sqrt()
|
||||
{
|
||||
double result = sqrt(16.0);
|
||||
double expected_result = 4.0;
|
||||
return fabs(result - expected_result) < 1e-6 ? 0 : 1;
|
||||
double result1 = sqrt(16.0);
|
||||
double expected_result1 = 4.0;
|
||||
double result2 = sqrt(25.0);
|
||||
double expected_result2 = 5.0;
|
||||
double result3 = sqrt(0.0);
|
||||
double expected_result3 = 0.0;
|
||||
double result4 = sqrt(100.0);
|
||||
double expected_result4 = 10.0;
|
||||
return (fabs(result1 - expected_result1) < 1e-6 &&
|
||||
fabs(result2 - expected_result2) < 1e-6 &&
|
||||
fabs(result3 - expected_result3) < 1e-6 &&
|
||||
fabs(result4 - expected_result4) < 1e-6)
|
||||
? 0
|
||||
: 1;
|
||||
}
|
||||
|
||||
int test_sqrtf()
|
||||
{
|
||||
float result = sqrtf(16.0f);
|
||||
float expected_result = 4.0f;
|
||||
return fabs(result - expected_result) < 1e-6f ? 0 : 1;
|
||||
float result1 = sqrtf(16.0f);
|
||||
float expected_result1 = 4.0f;
|
||||
float result2 = sqrtf(25.0f);
|
||||
float expected_result2 = 5.0f;
|
||||
float result3 = sqrtf(0.0f);
|
||||
float expected_result3 = 0.0f;
|
||||
float result4 = sqrtf(100.0f);
|
||||
float expected_result4 = 10.0f;
|
||||
return (fabs(result1 - expected_result1) < 1e-6f &&
|
||||
fabs(result2 - expected_result2) < 1e-6f &&
|
||||
fabs(result3 - expected_result3) < 1e-6f &&
|
||||
fabs(result4 - expected_result4) < 1e-6f)
|
||||
? 0
|
||||
: 1;
|
||||
}
|
||||
|
||||
int test_sqrtl()
|
||||
|
Loading…
x
Reference in New Issue
Block a user