-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgeninttests.py
executable file
·62 lines (51 loc) · 1.23 KB
/
geninttests.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#!/usr/bin/env python2
print """
#include <cstdlib>
#include "uhdf5.h"
void
write_file(const char *fname)
{
h5::File file;
h5::Dataset *dset;
h5::Attribute *attr;
h5::dimensions d;
file.create(fname);
"""
for signed in [True, False]:
for intsize in [8, 16, 32, 64]:
if signed:
typename = 'int'
else:
typename = 'uint'
typename += str(intsize)
typename += '_t'
if signed:
minval = - (1 << (intsize-1))
maxval = -minval - 1
else:
minval = 0
maxval = (1 << intsize) - 1
suffix = ''
if not signed:
suffix = 'U'
if intsize == 32:
suffix += 'L'
elif intsize == 64:
suffix += 'LL'
print '{'
print '// %s' % typename
print '%s v[2] = { %d%s, %d%s };' % (typename, minval, suffix, maxval, suffix)
print 'd.clear();'
print 'd.push_back(2);'
print 'dset = file.create_dataset<%s>("%s", d);' % (typename, typename)
print 'dset->write<%s>(v);' % typename
print 'delete dset;'
print '}'
print """
}
int
main(int argc, char *argv[])
{
write_file(argv[1]);
}
"""