printf( "Starting the magic test...\n" );
check_magic = function( x ) {
local( ones; sum; i );
ones = (1:x.nr)*0+1;
sum = 0; for ( i in 1:x.nr ) { sum += scalar(x[i;i]); }
return( !test( diag(x)*ones != sum ) &
!test( x*ones != sum ) &
!test( ones*x != sum ) );
};
if ( check_magic( magic(12) ) &
check_magic( magic(13) ) &
check_magic( magic(14) ) ) {
printf( "...passed.\n" );
else
printf( "...failed.\a\n" );
exception();
}