on success, close the pipes from the child. Fix from Tim.
[platform/upstream/glib.git] / tests / rand-test.c
1 #include <glib.h>
2
3 const gint32 first_numbers[] = 
4 {
5   0x7a7a7a7a,
6   0x20aea82a,
7   0xcab337ab,
8   0xdcf770ea,
9   0xdf552b2f,
10   0x32d1ef7f,
11   0x6bed6dd9,
12   0x7222df44,
13   0x6b842128,
14   0x07f8579a,
15   0x9dad1004,
16   0x2df264f2,
17   0x13b48989,
18   0xf2929475,
19   0x30f30c97,
20   0x3f9a1ea7,
21   0x3bf04710,
22   0xb85bd69e,
23   0x790a48b0,
24   0xfa06b85f,
25   0xa64cc9e3
26 };
27
28 const gint length = sizeof (first_numbers) / sizeof (first_numbers[0]);
29
30 int main()
31 {
32   guint n;
33
34   GRand* rand = g_rand_new_with_seed (first_numbers[0]);
35
36   for (n = 1; n < length; n++)
37     g_assert (first_numbers[n] == g_rand_int (rand));
38
39   for (n = 1; n < 100000; n++)
40     {
41       gint32 i;
42       gdouble d;
43       gboolean b;
44
45       i = g_rand_int_range (rand, 8,16);
46       g_assert (i >= 8 && i < 16);
47       
48       i = g_random_int_range (8,16);
49       g_assert (i >= 8 && i < 16);
50
51       d = g_rand_double (rand);
52       g_assert (d >= 0 && d < 1);
53
54       d = g_random_double ();
55       g_assert (d >= 0 && d < 1);
56
57       d = g_rand_double_range (rand, -8, 32);
58       g_assert (d >= -8 && d < 32);
59  
60       d = g_random_double_range (-8, 32);
61       g_assert (d >= -8 && d < 32);
62  
63       b = g_random_boolean ();
64       g_assert (b == TRUE || b  == FALSE);
65  
66       b = g_rand_boolean (rand);
67       g_assert (b == TRUE || b  == FALSE);     
68     }
69
70   g_rand_free (rand);
71
72   return 0;
73 }
74