# This file tests Algae's self handling.
printf( "Starting the self test...\n" );
assert = function( t ) {
if ( !test(t) ) {
printf( "...failed.\a\n" );
exception();
}
};
fact = function (n)
{
if ( n <= 1 )
{
return 1.0;
else
return n * self (n-1);
}
};
f = fact;
fact = "";
assert (f(4) == 24);
f = function () { return self.x; };
f.x = "foo";
assert (f() == "foo");
f = function () { while (0) { self(); } };
printf( "...passed.\n" );