3 class Maman
.Foo
: Object
{
4 const float[] FLOAT_TESTS
= {
5 float.EPSILON
, 0.0F
, 1.0F
,
11 const double[] DOUBLE_TESTS
= {
12 double.EPSILON
, 0.0, 1.0,
18 static void main (string[] args
) {
20 "float: range=%s...%s\n" +
21 " digits=%s(%s), exp=%s..%s(%s..%s)\n" +
22 " epsilon=%s, infinity=%s/%s, nan=%s\n",
24 float.MIN
.to_string (),
25 float.MAX
.to_string (),
27 float.MANT_DIG
.to_string (),
28 float.DIG
.to_string (),
29 float.MIN_EXP
.to_string (),
30 float.MAX_EXP
.to_string (),
31 float.MIN_10_EXP
.to_string (),
32 float.MAX_10_EXP
.to_string (),
34 float.EPSILON
.to_string (),
35 float.INFINITY
.to_string (),
36 (-float.INFINITY
).to_string (),
37 float.NAN
.to_string ());
39 for (int i
= 0; i
< 6; i
++) { // XXX use foreach
40 float value
= FLOAT_TESTS
[i
];
41 int infinity
= value
.is_infinity ();
44 "float(%g): nan=%s, finite=%s, normal=%s, infinity=%s\n",
47 value
.is_nan () ?
"true" : "false",
48 value
.is_finite () ?
"true" : "false",
49 value
.is_normal () ?
"true" : "false",
51 infinity
> 0 ?
"positive" :
52 infinity
< 0 ?
"negative" : "none");
56 "double: range=%s...%s\n" +
57 " digits=%s(%s), exp=%s..%s(%s..%s)\n" +
58 " epsilon=%s, infinity=%s/%s, nan=%s\n",
60 double.MIN
.to_string (),
61 double.MAX
.to_string (),
63 double.MANT_DIG
.to_string (),
64 double.DIG
.to_string (),
65 double.MIN_EXP
.to_string (),
66 double.MAX_EXP
.to_string (),
67 double.MIN_10_EXP
.to_string (),
68 double.MAX_10_EXP
.to_string (),
70 double.EPSILON
.to_string (),
71 double.INFINITY
.to_string (),
72 (-double.INFINITY
).to_string (),
73 double.NAN
.to_string ());
75 for (int i
= 0; i
< 6; i
++) { // XXX use foreach
76 double value
= DOUBLE_TESTS
[i
];
77 int infinity
= value
.is_infinity ();
80 "double(%g): nan=%s, finite=%s, normal=%s, infinity=%s\n",
83 value
.is_nan () ?
"true" : "false",
84 value
.is_finite () ?
"true" : "false",
85 value
.is_normal () ?
"true" : "false",
87 infinity
> 0 ?
"positive" :
88 infinity
< 0 ?
"negative" : "none");