update for 0.4.0 release
[vala-lang.git] / tests / test-031.vala
blob21a3d00045cfdef785241dad7dc290eb42b12a7d
1 using GLib;
3 class Maman.Foo : Object {
4 const float[] FLOAT_TESTS = {
5 float.EPSILON, 0.0F, 1.0F,
6 -float.INFINITY,
7 float.INFINITY,
8 float.NAN
9 };
11 const double[] DOUBLE_TESTS = {
12 double.EPSILON, 0.0, 1.0,
13 -double.INFINITY,
14 double.INFINITY,
15 double.NAN
18 static void main (string[] args) {
19 stdout.printf (
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 ();
43 stdout.printf (
44 "float(%g): nan=%s, finite=%s, normal=%s, infinity=%s\n",
46 value,
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");
55 stdout.printf (
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 ();
79 stdout.printf(
80 "double(%g): nan=%s, finite=%s, normal=%s, infinity=%s\n",
82 value,
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");