Alien-LibJIT

 view release on metacpan or  search on metacpan

libjit/tests/math.pas  view on Meta::CPAN

	l1 := 1;
	l2 := 6;
	runl("math_l_min_1_6", Min(l1, l2), 1, 0);
	l1 := -1;
	runl("math_l_min_m1_6", Min(l1, l2), -1, 0);
	l1 := 1;
	l2 := -6;
	runl("math_l_min_1_m6", Min(l1, l2), -6, 0);
	l1 := -1;
	runl("math_l_min_m1_m6", Min(l1, l2), -6, 0);
	l1 := -6;
	runi("math_l_sign_m6", Sign(l1), -1, 0);
	l1 := 6;
	runi("math_l_sign_6", Sign(l1), 1, 0);
	l1 := 0;
	runi("math_l_sign_0", Sign(l1), 0, 0);

	{ Unsigned integer versions }
	ui1 := 1;
	ui2 := 6;
	runui("math_ui_max_1_6", Max(ui1, ui2), 6, 0);
	ui1 := 0ffffffffh;
	ui2 := 0fffffff1h;
	runui("math_ui_max_ffffffff_fffffff1", Max(ui1, ui2), 0ffffffffh, 0);
	ui1 := 1;
	ui2 := 6;
	runui("math_ui_min_1_6", Min(ui1, ui2), 1, 0);
	ui1 := 0ffffffffh;
	ui2 := 0fffffff1h;
	runui("math_ui_min_ffffffff_fffffff1", Min(ui1, ui2), 0fffffff1h, 0);

	{ Unsigned long versions }
	ul1 := 1;
	ul2 := 6;
	runul("math_ul_max_1_6", Max(ul1, ul2), 6, 0);
	ul1 := 0ffffffffffffffffh;
	ul2 := 0fffffffffffffff1h;
	runul("math_ui_max_ffffffffffffffff_fffffffffffffff1", Max(ul1, ul2), 0ffffffffffffffffh, 0);
	ul1 := 1;
	ul2 := 6;
	runul("math_ul_min_1_6", Min(ul1, ul2), 1, 0);
	ul1 := 0ffffffffffffffffh;
	ul2 := 0fffffffffffffff1h;
	runui("math_ul_min_ffffffffffffffff_fffffffffffffff1", Min(ul1, ul2), 0fffffffffffffff1h, 0);

	{ short real versions }
	runf("math_f_abs_1.5", Abs(ShortReal(1.5)), ShortReal(1.5), 0.00001);
	runf("math_f_abs_m1.5", Abs(ShortReal(-1.5)), ShortReal(1.5), 0.00001);
	runf("math_f_neg_1.5", fneg(1.5), ShortReal(-1.5), 0.00001);
	runf("math_f_neg_m1.5", fneg(-1.5), ShortReal(1.5), 0.00001);
	runf("math_f_max_1_6", Max(ShortReal(1.0), ShortReal(6.0)), ShortReal(6.0), 0.00001);
	runf("math_f_min_1_6", Min(ShortReal(1.0), ShortReal(6.0)), ShortReal(1.0), 0.00001);
	runf("math_f_sin_0", Sin(ShortReal(0.0)), ShortReal(0.0), 0.00001);
	runf("math_f_sin_pi_2", Sin(ShortReal(pi / 2)), ShortReal(1.0), 0.00001);
	f := ShortReal(pi);
	runf("math_f_sin_pi", Sin(f), ShortReal(0.0), 0.00001);
	runf("math_f_cos_0", Cos(ShortReal(0.0)), ShortReal(1.0), 0.00001);
	runf("math_f_sqrt_1", Sqrt(ShortReal(1.0)), ShortReal(1.0), 0.00001);
	runf("math_f_sqrt_2", Sqrt(ShortReal(2.0)), ShortReal(1.4142), 0.0001);
	f := Sqrt(ShortReal(-1.0));
	run("math_f_sqrt_m1", IsNaN(f));
	runf("math_f_ceil_1.5", Ceil(ShortReal(1.5)), ShortReal(2.0), 0.00001);
	runf("math_f_ceil_m1.5", Ceil(ShortReal(-1.5)), ShortReal(-1.0), 0.00001);
	runf("math_f_floor_1.5", Floor(ShortReal(1.5)), ShortReal(1.0), 0.00001);
	runf("math_f_floor_m1.5", Floor(ShortReal(-1.5)), ShortReal(-2.0), 0.00001);
	runf("math_f_rint_1.5", Rint(ShortReal(1.5)), ShortReal(2.0), 0.00001);
	runf("math_f_rint_2.5", Rint(ShortReal(2.5)), ShortReal(2.0), 0.00001);
	runf("math_f_round_1.5", Round(ShortReal(1.5)), ShortReal(2.0), 0.00001);
	runf("math_f_round_2.5", Round(ShortReal(2.5)), ShortReal(3.0), 0.00001);
	runf("math_f_trunc_1.5", Trunc(ShortReal(1.5)), ShortReal(1.0), 0.00001);
	runf("math_f_trunc_2.5", Trunc(ShortReal(2.5)), ShortReal(2.0), 0.00001);
	runf("math_f_trunc_m1.5", Trunc(ShortReal(-1.5)), ShortReal(-1.0), 0.00001);

	{ real versions }
	rund("math_d_abs_1.5", Abs(Real(1.5)), Real(1.5), 0.00001);
	rund("math_d_abs_m1.5", Abs(Real(-1.5)), Real(1.5), 0.00001);
	rund("math_d_neg_1.5", dneg(1.5), Real(-1.5), 0.00001);
	rund("math_d_neg_m1.5", dneg(-1.5), Real(1.5), 0.00001);
	rund("math_d_max_1_6", Max(Real(1.0), Real(6.0)), Real(6.0), 0.00001);
	rund("math_d_min_1_6", Min(Real(1.0), Real(6.0)), Real(1.0), 0.00001);
	rund("math_d_sin_0", Sin(Real(0.0)), Real(0.0), 0.00001);
	rund("math_d_sin_pi_2", Sin(Real(pi / 2)), Real(1.0), 0.00001);
	d := Real(pi);
	rund("math_d_sin_pi", Sin(d), Real(0.0), 0.00001);
	rund("math_d_cos_0", Cos(Real(0.0)), Real(1.0), 0.00001);
	rund("math_d_sqrt_1", Sqrt(Real(1.0)), Real(1.0), 0.00001);
	rund("math_d_sqrt_2", Sqrt(Real(2.0)), Real(1.4142), 0.0001);
	d := Sqrt(Real(-1.0));
	run("math_d_sqrt_m1", IsNaN(d));
	rund("math_d_ceil_1.5", Ceil(Real(1.5)), Real(2.0), 0.00001);
	rund("math_d_ceil_m1.5", Ceil(Real(-1.5)), Real(-1.0), 0.00001);
	rund("math_d_floor_1.5", Floor(Real(1.5)), Real(1.0), 0.00001);
	rund("math_d_floor_m1.5", Floor(Real(-1.5)), Real(-2.0), 0.00001);
	rund("math_d_rint_1.5", Rint(Real(1.5)), Real(2.0), 0.00001);
	rund("math_d_rint_2.5", Rint(Real(2.5)), Real(2.0), 0.00001);
	rund("math_d_round_1.5", Round(Real(1.5)), Real(2.0), 0.00001);
	rund("math_d_round_2.5", Round(Real(2.5)), Real(3.0), 0.00001);
	rund("math_d_trunc_1.5", Trunc(Real(1.5)), Real(1.0), 0.00001);
	rund("math_d_trunc_2.5", Trunc(Real(2.5)), Real(2.0), 0.00001);
	rund("math_d_trunc_m1.5", Trunc(Real(-1.5)), Real(-1.0), 0.00001);

	{ long real versions }
	runn("math_n_abs_1.5", Abs(LongReal(1.5)), LongReal(1.5), 0.00001);
	runn("math_n_abs_m1.5", Abs(LongReal(-1.5)), LongReal(1.5), 0.00001);
	runn("math_n_neg_1.5", nfneg(1.5), LongReal(-1.5), 0.00001);
	runn("math_n_neg_m1.5", nfneg(-1.5), LongReal(1.5), 0.00001);
	runn("math_n_max_1_6", Max(LongReal(1.0), LongReal(6.0)), LongReal(6.0), 0.00001);
	runn("math_n_min_1_6", Min(LongReal(1.0), LongReal(6.0)), LongReal(1.0), 0.00001);
	runn("math_n_sin_0", Sin(LongReal(0.0)), LongReal(0.0), 0.00001);
	runn("math_n_sin_pi_2", Sin(LongReal(pi / 2)), LongReal(1.0), 0.00001);
	n := LongReal(pi);
	runn("math_n_sin_pi", Sin(n), LongReal(0.0), 0.00001);
	runn("math_n_cos_0", Cos(LongReal(0.0)), LongReal(1.0), 0.00001);
	runn("math_n_sqrt_1", Sqrt(LongReal(1.0)), LongReal(1.0), 0.00001);
	runn("math_n_sqrt_2", Sqrt(LongReal(2.0)), LongReal(1.4142), 0.0001);
	n := Sqrt(LongReal(-1.0));
	run("math_n_sqrt_m1", IsNaN(n));
	runn("math_n_ceil 1.5", Ceil(LongReal(1.5)), LongReal(2.0), 0.00001);
	runn("math_n_ceil -1.5", Ceil(LongReal(-1.5)), LongReal(-1.0), 0.00001);
	runn("math_n_floor 1.5", Floor(LongReal(1.5)), LongReal(1.0), 0.00001);
	runn("math_n_floor -1.5", Floor(LongReal(-1.5)), LongReal(-2.0), 0.00001);
	runn("math_n_rint 1.5", Rint(LongReal(1.5)), LongReal(2.0), 0.00001);
	runn("math_n_rint 2.5", Rint(LongReal(2.5)), LongReal(2.0), 0.00001);
	runn("math_n_round 1.5", Round(LongReal(1.5)), LongReal(2.0), 0.00001);
	runn("math_n_round 2.5", Round(LongReal(2.5)), LongReal(3.0), 0.00001);
	runn("math_n_trunc 1.5", Trunc(LongReal(1.5)), LongReal(1.0), 0.00001);
	runn("math_n_trunc 2.5", Trunc(LongReal(2.5)), LongReal(2.0), 0.00001);
	runn("math_n_trunc -1.5", Trunc(LongReal(-1.5)), LongReal(-1.0), 0.00001);

	run_conversion_tests;
end;

begin
	failed := False;
	run_tests;
	if failed then begin
		Terminate(1);
	end;
end.



( run in 1.816 second using v1.01-cache-2.11-cpan-97f6503c9c8 )