# This is a collection of code that, at some time in the past, would # choke Algae. printf( "Starting the old bugs test...\n" ); assert = strip( function( t ) { if ( !test(t) ) { message( "...failed.\a" ); exception(); } }); # File names were referenced after being deleted. fn = tmp_file(); fprintf (fn; "%s\n"; "jnk = function () { s = file(); };"); close (fn); src (fn); jnk (); assert (s == fn); # Labels were being dropped in array division. assert (((1,2)/label(1,2;1,2)).eid != NULL); # Surely this one hasn't been there for very long! assert (function(x){return x.a=1;}(sin)); # Diag didn't check for missing data. assert (diag (zero (1,6)) == 0); # Comment on last line caused trouble. assert (exec ("x=123;\n# OK") == 0); # Binary write of sparse arrays was hosed. fn = tmp_file (); z = zero (1000); z[12,222] = 3; fwrite (fn; z; {int}); close (fn); zz = fread (fn; ; {int}); assert (equal (z; zz)); # Sort labels were temporarily hosed. v = label (9, 1, 3, 2, 5; 1:5); assert (equal (sort(v).eid; 2,4,3,5,1)); # NULL members in tables caused trouble. putmat ({a=NULL}; "/dev/null"); # atanh was fouled up assert (abs (atanh(.5) - 0.549306144334054891) < 1e-8); printf( "...passed.\n" );