Exemplo n.º 1
0
int
main (void)
{
  gsl_ieee_env_setup ();

  gsl_rng_env_setup() ;
  r_global = gsl_rng_alloc (gsl_rng_default);

#define FUNC(x)  test_ ## x,                     "test gsl_ran_" #x
#define FUNC2(x) test_ ## x, test_ ## x ## _pdf, "test gsl_ran_" #x

  test_shuffle() ;
  test_choose() ;

  testMoments (FUNC (ugaussian), 0.0, 100.0, 0.5);
  testMoments (FUNC (ugaussian), -1.0, 1.0, 0.6826895);
  testMoments (FUNC (ugaussian), 3.0, 3.5, 0.0011172689);
  testMoments (FUNC (ugaussian_tail), 3.0, 3.5, 0.0011172689/0.0013498981);
  testMoments (FUNC (exponential), 0.0, 1.0, 1- exp(-0.5));
  testMoments (FUNC (cauchy), 0.0, 10000.0, 0.5);

  testMoments (FUNC (discrete1), -0.5, 0.5, 0.59 );
  testMoments (FUNC (discrete1), 0.5, 1.5, 0.40 );
  testMoments (FUNC (discrete1), 1.5, 3.5, 0.01 );

  testPDF (FUNC2(beta));
  testPDF (FUNC2(cauchy));
  testPDF (FUNC2(chisq));
  testPDF (FUNC2(erlang));
  testPDF (FUNC2(exponential));

  testPDF (FUNC2(exppow0));
  testPDF (FUNC2(exppow1));
  testPDF (FUNC2(exppow1a));
  testPDF (FUNC2(exppow2));
  testPDF (FUNC2(exppow2a));

  testPDF (FUNC2(fdist));
  testPDF (FUNC2(flat));
  testPDF (FUNC2(gamma));
  testPDF (FUNC2(gamma1));
  testPDF (FUNC2(gamma_int));
  testPDF (FUNC2(gamma_large));
  testPDF (FUNC2(gaussian));
  testPDF (FUNC2(gaussian_ratio_method));
  testPDF (FUNC2(ugaussian));
  testPDF (FUNC2(ugaussian_ratio_method));
  testPDF (FUNC2(gaussian_tail));
  testPDF (FUNC2(gaussian_tail1));
  testPDF (FUNC2(gaussian_tail2));
  testPDF (FUNC2(ugaussian_tail));
  
  testPDF (FUNC2(bivariate_gaussian1));
  testPDF (FUNC2(bivariate_gaussian2));
  testPDF (FUNC2(bivariate_gaussian3));
  testPDF (FUNC2(bivariate_gaussian4));

  testPDF (FUNC2(gumbel1));
  testPDF (FUNC2(gumbel2));
  testPDF (FUNC2(landau));
  testPDF (FUNC2(levy1));
  testPDF (FUNC2(levy2));
  testPDF (FUNC2(levy1a));
  testPDF (FUNC2(levy2a));
  testPDF (FUNC2(levy_skew1));
  testPDF (FUNC2(levy_skew2));
  testPDF (FUNC2(levy_skew1a));
  testPDF (FUNC2(levy_skew2a));
  testPDF (FUNC2(levy_skew1b));
  testPDF (FUNC2(levy_skew2b));
  testPDF (FUNC2(logistic));
  testPDF (FUNC2(lognormal));
  testPDF (FUNC2(pareto));
  testPDF (FUNC2(rayleigh));
  testPDF (FUNC2(rayleigh_tail));
  testPDF (FUNC2(tdist1));
  testPDF (FUNC2(tdist2));
  testPDF (FUNC2(laplace));
  testPDF (FUNC2(weibull));
  testPDF (FUNC2(weibull1));

  testPDF (FUNC2(dir2d));
  testPDF (FUNC2(dir2d_trig_method));
  testPDF (FUNC2(dir3dxy));
  testPDF (FUNC2(dir3dyz));
  testPDF (FUNC2(dir3dzx));

  testDiscretePDF (FUNC2(discrete1));
  testDiscretePDF (FUNC2(discrete2));
  testDiscretePDF (FUNC2(poisson));
  testDiscretePDF (FUNC2(poisson_large));
  testDiscretePDF (FUNC2(bernoulli));
  testDiscretePDF (FUNC2(binomial));
  testDiscretePDF (FUNC2(binomial_large));
  testDiscretePDF (FUNC2(geometric));
  testDiscretePDF (FUNC2(geometric1));
  testDiscretePDF (FUNC2(hypergeometric1));
  testDiscretePDF (FUNC2(hypergeometric2));
  testDiscretePDF (FUNC2(hypergeometric3));
  testDiscretePDF (FUNC2(hypergeometric4));
  testDiscretePDF (FUNC2(hypergeometric5));
  testDiscretePDF (FUNC2(hypergeometric6));
  testDiscretePDF (FUNC2(logarithmic));
  testDiscretePDF (FUNC2(negative_binomial));
  testDiscretePDF (FUNC2(pascal));

  exit (gsl_test_summary());
}
void
selftest(void)
{
	// for handling "errout"

	if (setjmp(jbuf))
		return;

#if SELFTEST

	test_low_level();

	test_multiply();
	test_scan();
	test_power();
	test_factor_number();
	test_test();
	test_tensor();

	test_bake();

	test(__FILE__, s, sizeof (s) / sizeof (char *)); // "s" is in selftest.h

	test_abs();
	test_adj();
	test_arg();
	test_besselj();
	test_bessely();
	test_ceiling();
	test_choose();
	test_circexp();
	test_clock();
	test_cofactor();
	test_condense();
	test_contract();
	test_defint();
	test_denominator();
	test_derivative();
	test_dirac();
	test_erf();
	test_erfc();
	test_expand();
	test_expcos();
	test_expsin();
	test_factorpoly();
	test_float();
	test_floor();
	test_gamma();
	test_gcd();
	test_imag();
	test_inner();
	test_lcm();
	test_log();
	test_mag();
	test_mod();
	test_nroots();
	test_numerator();
	test_outer();
	test_polar();
	test_quotient();
	test_rationalize();
	test_real();
	test_rect();
	test_sgn();
	test_taylor();
	test_transpose();
	test_zero();

	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_index();
	test_isprime();
	test_integral();
	test_simplify();
	test_roots();
	test_eigen();

#endif

	mini_test();

	logout("OK, all tests passed.\n");
}