#!/usr/local/bin/rune -x # # Test the File.format() method, generally used for output on stdout or # stderr. import "sys"; import ; alias stdio.File @stdout = stdio.stdout; public int main(int ac, string_p *av) { int w3 = 3; int w9 = 9; stdout->format("Format %d\n", 23.4, 44); stdout->format("Format %+d %04d %4d\n", 23, -23, -23); stdout->format("Format %d %o 0x%x %#x %#X\n", 63, 63, 63, 63, 63); # badflt stdout->format("Format %6.2f\n", 33); # 33.00 33 33. stdout->format("Format 33.00 33 33.\n"); stdout->format("Format %6.2f %.0f %#.0f\n", 33.0, 33.0, 33.0); # Rounding stdout->format("Format %6.2f\n", 333333333.334); stdout->format("Format %6.2f\n", 333333333.335); stdout->format("Format %6.2f\n", 333333333.336); stdout->format("Format 0: %6.0f\n", 0.0); stdout->format("Format 0.00: %6.2f\n", 0.0); stdout->show ("Format 33 33.11 33.1 33.100"); stdout->format("Format %7.3g %7.3g %7.3g %#7.3g\n", 33.00, 33.11, 33.1, 33.1); stdout->format("Format %6.2f %6.9f\n", 1.234567891234, 1.234567891234); stdout->format("Format %6.*f %*.*f %6.*f\n", w9, 3.3, w9, w3, 3.3, w9, 3.3); stdout->format("Format string %s ok\n", "charlie"); stdout->format("Format %+8.3f\n", 1.234567890123456789F); stdout->format("Format %+8.6f\n", 1.234567890123456789F); stdout->format("Format %+8.9f\n", 1.234567890123456789F); stdout->format("Format %+8.3f\n", 1.234567890123456789); stdout->format("Format %+8.6f\n", 1.234567890123456789); stdout->format("Format %+8.9f\n", 1.234567890123456789); w3 = 95755; stdout->format("Format %+8.3f\n", 1.234567890123456789X); stdout->format("Format %+8.6f\n", 1.234567890123456789X); stdout->format("Format %+8.9f\n", 1.234567890123456789X); stdout->format("Format %+10.3r\n", 1.234567890123456789e-3F); stdout->format("Format %+10.3r\n", 1.234567890123456789e+1); stdout->format("Format %+10.3r\n", 1.234567890123456789e+3X); stdout->format("Format %.30r\n", 1.234567890123456789012345F); stdout->format("Format %.30r\n", 1.234567890123456789012345); stdout->format("Format %.30r\n", 1.234567890123456789012345X); stdout->format("Format %.30r\n", 1.0F); stdout->format("Format %.30r\n", 1.0); stdout->format("Format %.30r\n", 1.0X); # Test large negative and positive exponents # stdout->format("float.epsilon %12.6e test\n", float.epsilon); stdout->format("double.epsilon %12.6e test\n", double.epsilon); stdout->format("ldouble.epsilon %12.6e test\n", ldouble.epsilon); stdout->format("float.epsilon %12.6E invt\n", 1.0F / float.epsilon); stdout->format("double.epsilon %12.6E invt\n", 1.0 / double.epsilon); stdout->format("ldouble.epsilon %12.6E invt\n", 1.0X / ldouble.epsilon); stdout->format("string %15s string\n", "abcd"); stdout->format("string %-15s string\n", "abcd"); stdout->format("string %015s string\n", "abcd"); stdout->format("string %.15s string\n", ""); stdout->format("pointer %p\n", (const void *)""); # generates "(noarg)" # stdout->format("missing-argument (noarg) = %p\n"); return(0); }