Added script front-end for primer-design code
[htsworkflow.git] / htswanalysis / MACS / lib / gsl / gsl-1.11 / block / test_complex_source.c
1 /* block/test_complex_source.c
2  * 
3  * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2007 Gerard Jungman, Brian Gough
4  * 
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 3 of the License, or (at
8  * your option) any later version.
9  * 
10  * This program is distributed in the hope that it will be useful, but
11  * WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  * General Public License for more details.
14  * 
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18  */
19
20 void FUNCTION (test, func) (void);
21 void FUNCTION (test, binary) (void);
22 void FUNCTION (test, trap) (void);
23
24 void
25 FUNCTION (test, func) (void)
26 {
27   TYPE (gsl_block) * b;
28   ATOMIC * data;
29   size_t i, size;
30
31   b = FUNCTION (gsl_block, alloc) (N);
32
33   gsl_test (b->data == 0, NAME (gsl_block) "_alloc returns valid pointer");
34   gsl_test (b->size != N, NAME (gsl_block) "_alloc returns valid size");
35
36   data = FUNCTION(gsl_block, data) (b);
37   size = FUNCTION(gsl_block, size) (b);
38
39   gsl_test (data == 0, NAME (gsl_block) "_data returns valid pointer");
40   gsl_test (size != N, NAME (gsl_block) "_size returns valid size");
41   
42   FUNCTION (gsl_block, free) (b);       /* free whatever is in v */
43
44   b = FUNCTION (gsl_block, calloc) (N);
45
46   gsl_test (b->data == 0, NAME (gsl_block) "_calloc returns valid pointer");
47   gsl_test (b->size != N, NAME (gsl_block) "_calloc returns valid size");
48
49   data = FUNCTION(gsl_block, data) (b);
50   size = FUNCTION(gsl_block, size) (b);
51
52   gsl_test (data == 0, NAME (gsl_block) "_data returns valid pointer from calloc");
53   gsl_test (size != N, NAME (gsl_block) "_size returns valid size from calloc");
54
55   status = 0;
56   
57   for (i = 0; i < N; i++)
58     {
59       if (b->data[2 * i] != 0.0 || b->data[2 * i + 1] != 0.0)
60         status = 1;
61     };
62
63   gsl_test (status, NAME (gsl_block) "_calloc initializes array to zero");
64
65   FUNCTION (gsl_block, free) (b);
66 }
67
68 void
69 FUNCTION (test, binary) (void)
70 {
71   size_t i;
72
73   {
74     TYPE (gsl_block) * v = FUNCTION (gsl_block, calloc) (N);
75
76     FILE *f = fopen ("test.dat", "wb");
77
78     for (i = 0; i < N; i++)
79       {
80         v->data[2*i] = (ATOMIC)(N - i);
81         v->data[2*i + 1] = (ATOMIC)(10*(N-i) + 1);
82       };
83
84     FUNCTION (gsl_block, fwrite) (f, v);
85
86     fclose (f);
87     
88     FUNCTION (gsl_block, free) (v);
89   }
90
91   {
92     TYPE (gsl_block) * w = FUNCTION (gsl_block, calloc) (N);
93
94     FILE *f = fopen ("test.dat", "rb");
95
96     FUNCTION (gsl_block, fread) (f, w);
97
98     status = 0;
99     for (i = 0; i < N; i++)
100       {
101         if (w->data[2 * i] != (ATOMIC) (N - i) || w->data[2 * i + 1] != (ATOMIC) (10*(N - i) + 1))
102           status = 1;
103       };
104     fclose (f);
105
106     FUNCTION (gsl_block, free) (w);
107   }
108
109   gsl_test (status, NAME (gsl_block) "_write and read");
110
111 }
112
113
114 void
115 FUNCTION (test, trap) (void)
116 {
117   TYPE (gsl_block) * b = FUNCTION (gsl_block, alloc) (0);
118
119   gsl_test (b != 0, NAME (gsl_block) "_alloc traps zero length");
120 }
121
122
123
124