print "tst_suite/tst-nested-cmd.gre ...";
$eps = 1e-4;
# Test nested 'cmd's
cmd cousin (;@) {
die "cousin #_ wrong. Expecting 1\n" if ($#_ != 1);
die "cousin _[0] wrong\n" if (abs($_[0] - 3.14159) > $eps);
die "cousin _[1] wrong\n" if (abs($_[1] - 2*3.14159) > $eps);
}
cmd grandchild (;@) {
die "grandchild #_ wrong. Expecting 1\n" if ($#_ != 1);
die "grandchild _[0] wrong\n" if (abs($_[0] - 3.14159) > $eps);
die "grandchild _[1] wrong\n" if (abs($_[1] - 2*3.14159) > $eps);
my $x;
$x = $_[0];
$y = $_[1];
cousin $x $y;
}
cmd child (;@) {
die "child #_ wrong. Expecting 2\n" if ($#_ != 2);
die "child _[0] wrong\n" if (abs($_[0] - 3.14159) > $eps);
die "child _[1] wrong value. was $_[1] not 2pi\n" if (abs($_[1] - 2*3.14159) > $eps);
grandchild $_[0] $_[1];
}
cmd parent (;@) {
child $_[0] $_[1] $_[2];
}
parent 3.14159 2*3.14159 3*3.14159;
print " passed\n";