print "tst_suite/tst-builtin.gre ...";
$eps = 1e-4;
$rad_per_degree = asin(1) / 90;
die " failed test 1\n" if (abs(2.718281 - exp(1)) > $eps);
die " failed test 2\n" if (abs(100 - exp10(2)) > $eps);
die " failed test 3\n" if (abs(0.5 - sin(30 * $rad_per_degree)) > $eps);
die " failed test 4\n" if (abs(0.5 - cos(60 * $rad_per_degree)) > $eps);
die " failed test 5\n" if (abs(45*$rad_per_degree - atan2(1,1)) > $eps);
die " failed test 6\n" if (abs(90*$rad_per_degree - asin(1)) > $eps);
die " failed test 7\n" if (abs(1.1752 - sinh(1)) > $eps);
die " failed test 8\n" if (abs(1.54308 - cosh(1)) > $eps);
die " failed test 9\n" if (abs(0.761594 - tanh(1)) > $eps);
die " failed test 10\n" if (abs(10 - asinh(sinh(10))) > $eps);
die " failed test 11\n" if (abs(10 - acosh(cosh(10))) > $eps);
die " failed test 12\n" if (abs(.2 - atanh(tanh(0.2))) > $eps);
die " failed test 13\n" if (abs(90*$rad_per_degree - acos(0)) > $eps);
die " failed test 14\n" if (abs(1 - tan(45*$rad_per_degree)) > $eps);
die " failed test 15\n" if (abs(45*$rad_per_degree - atan(1)) > $eps);
die " failed test 16\n" if (-2 - -2 != 0);
die " failed test 17\n" if (abs(26 - (2 *3 + 10 * 2)) > $eps);
die " failed test 18\n" if (abs(9 - (1+2**3)) > $eps);
die " failed test 19\n" if (abs(1 - 10 % 3) > $eps);
die " failed test 20\n" if (abs(0.1 - 10.1 % 1) > $eps);
die " failed test 21\n" if (abs(1 - max(1,0)) > $eps);
die " failed test 22\n" if (1 != max(1,0));
die " failed test 23\n" if (0 != min(1,0));
$a = "hello world";
die " failed test 24\n" if ("ello" ne substr($a, 1, 4));
die " failed test 25\n" if ("worl" ne substr($a, -5, 4));
die " failed test 26\n" if ("world" ne substr("hello world", -5));

print " passed\n";