eigenmath/selftest.cpp

174 lines
3.3 KiB
C++

#include "stdafx.h"
#include "defs.h"
extern void test_abs(void);
extern void test_arccos(void);
extern void test_arccosh(void);
extern void test_arcsin(void);
extern void test_arcsinh(void);
extern void test_arctan(void);
extern void test_arctanh(void);
extern void test_ceiling(void);
extern void test_charpoly(void);
extern void test_coeff(void);
extern void test_condense(void);
extern void test_cos(void);
extern void test_cosh(void);
extern void test_derivative(void);
extern void test_display(void);
extern void test_divisors(void);
extern void test_eigen(void);
extern void test_factor_number(void);
extern void test_factorpoly(void);
extern void test_for(void);
extern void test_floor(void);
extern void test_index(void);
extern void test_inner(void);
extern void test_integral(void);
extern void test_isprime(void);
extern void test_lcm(void);
extern void test_madd(void);
extern void test_mdiv(void);
extern void test_mgcd(void);
extern void test_mmod(void);
extern void test_mmul(void);
extern void test_mod(void);
extern void test_mpow(void);
extern void test_mprime(void);
extern void test_mroot(void);
extern void test_msub(void);
extern void test_multiply(void);
extern void test_outer(void);
extern void test_power(void);
extern void test_product(void);
extern void test_prog(void);
extern void test_rationalize(void);
extern void test_roots(void);
extern void test_scan(void);
extern void test_simplify(void);
extern void test_sin(void);
extern void test_sinh(void);
extern void test_sum(void);
extern void test_tan(void);
extern void test_tanh(void);
extern void test_taylor(void);
extern void test_tensor(void);
extern void test_test(void);
extern void test_trace(void);
extern void test_user_func(void);
extern void test_wedge(void);
char logbuf[1000];
static FILE *logfile;
static jmp_buf jbuf;
void
selftest(void)
{
#if 0 // don't use log file
#ifdef MAC
static char buf[144];
strcpy(buf, getenv("HOME"));
strcat(buf, "/Desktop/Eigenmath.out");
logfile = fopen(buf, "w");
#else
logfile = fopen("selftest.txt", "w");
#endif
#endif
if (setjmp(jbuf))
return;
// test bignum arithmetic
test_madd();
test_msub();
test_mmul();
test_mdiv();
test_mmod();
test_mprime();
test_quickfactor();
test_mgcd();
test_mpow();
test_mroot();
test_multiply();
test_scan();
//test_display();
test_power();
test_factor_number();
test_test();
test_all();
test_user_func();
test_tensor();
test_abs();
test_ceiling();
test_charpoly();
test_condense();
test_derivative();
test_gcd();
test_factorpoly();
test_floor();
test_for();
test_inner();
test_lcm();
test_mod();
test_outer();
test_product();
test_prog();
test_rationalize();
test_sum();
test_taylor();
test_trace();
test_hermite();
test_laguerre();
test_legendre();
test_binomial();
test_divisors();
test_coeff();
test_sin();
test_cos();
test_tan();
test_sinh();
test_cosh();
test_tanh();
test_arcsin();
test_arcsinh();
test_arccos();
test_arccosh();
test_arctan();
test_arctanh();
test_wedge();
test_index();
test_isprime();
test_integral();
test_simplify();
test_roots();
test_eigen();
logout("OK, all tests passed.\n");
if (logfile)
fclose(logfile);
}
void
logout(char *s)
{
printstr(s);
// if (logfile)
// fprintf(logfile, "%s", s);
}
void
errout(void)
{
logout("\n");
// if (logfile)
// fclose(logfile);
longjmp(jbuf, 1);
}