1 #!/usr/local/bin/rune -x
3 # Test the File.format() method, generally used for output on stdout or
9 alias stdio.File *stdout = stdio.stdout;
13 main(int ac, char **av)
18 stdout->format("Format %d\n", 23.4, 44);
20 stdout->format("Format %+d %04d %4d\n", 23, -23, -23);
22 stdout->format("Format %d %o 0x%x %#x %#X\n", 63, 63, 63, 63, 63);
25 stdout->format("Format %6.2f\n", 33);
28 stdout->format("Format 33.00 33 33.\n");
29 stdout->format("Format %6.2f %.0f %#.0f\n", 33.0, 33.0, 33.0);
32 stdout->format("Format %6.2f\n", 333333333.334);
33 stdout->format("Format %6.2f\n", 333333333.335);
34 stdout->format("Format %6.2f\n", 333333333.336);
36 stdout->format("Format 0: %6.0f\n", 0.0);
37 stdout->format("Format 0.00: %6.2f\n", 0.0);
39 stdout->show ("Format 33 33.11 33.1 33.100");
40 stdout->format("Format %7.3g %7.3g %7.3g %#7.3g\n",
41 33.00, 33.11, 33.1, 33.1);
43 stdout->format("Format %6.2f %6.9f\n", 1.234567891234, 1.234567891234);
45 stdout->format("Format %6.*f %*.*f %6.*f\n",
50 stdout->format("Format string %s ok\n", "charlie");
52 stdout->format("Format %+8.3f\n", 1.234567890123456789F);
53 stdout->format("Format %+8.6f\n", 1.234567890123456789F);
54 stdout->format("Format %+8.9f\n", 1.234567890123456789F);
56 stdout->format("Format %+8.3f\n", 1.234567890123456789);
57 stdout->format("Format %+8.6f\n", 1.234567890123456789);
58 stdout->format("Format %+8.9f\n", 1.234567890123456789);
61 stdout->format("Format %+8.3f\n", 1.234567890123456789X);
62 stdout->format("Format %+8.6f\n", 1.234567890123456789X);
63 stdout->format("Format %+8.9f\n", 1.234567890123456789X);
65 stdout->format("Format %+10.3r\n", 1.234567890123456789e-3F);
66 stdout->format("Format %+10.3r\n", 1.234567890123456789e+1);
67 stdout->format("Format %+10.3r\n", 1.234567890123456789e+3X);
69 stdout->format("Format %.30r\n", 1.234567890123456789012345F);
70 stdout->format("Format %.30r\n", 1.234567890123456789012345);
71 stdout->format("Format %.30r\n", 1.234567890123456789012345X);
73 stdout->format("Format %.30r\n", 1.0F);
74 stdout->format("Format %.30r\n", 1.0);
75 stdout->format("Format %.30r\n", 1.0X);
77 # Test large negative and positive exponents
79 stdout->format("float.epsilon %12.6e test\n", float.epsilon);
80 stdout->format("double.epsilon %12.6e test\n", double.epsilon);
81 stdout->format("ldouble.epsilon %12.6e test\n", ldouble.epsilon);
83 stdout->format("float.epsilon %12.6E invt\n",
84 1.0F / float.epsilon);
85 stdout->format("double.epsilon %12.6E invt\n",
86 1.0 / double.epsilon);
87 stdout->format("ldouble.epsilon %12.6E invt\n",
88 1.0X / ldouble.epsilon);
90 stdout->format("string %15s string\n", "abcd");
91 stdout->format("string %-15s string\n", "abcd");
92 stdout->format("string %015s string\n", "abcd");
93 stdout->format("string %.15s string\n", "");
95 stdout->format("pointer %p\n", (const void *)"");
99 stdout->format("missing-argument %p\n");