1 from tuple_processor import *
2 import cStringIO
3 import struct
4 import random
5
6
7
8 struct_int32 = struct.Struct('>i')
9 struct_int64 = struct.Struct('>q')
10 struct_int16 = struct.Struct('>h')
11 struct_double = struct.Struct('>d')
12
13 b = cStringIO.StringIO()
14 b.write(struct_int16.pack(6))
15
16 b.write(struct_int32.pack(4))
17 b.write(struct_int32.pack(142))
18
19 b.write(struct_int32.pack(8))
20 b.write(struct_double.pack(213.12))
21
22 b.write(struct_int32.pack(4))
23 b.write(struct_int32.pack(27))
24
25 b.write(struct_int32.pack(8))
26 b.write(struct_double.pack(91.125))
27
28 b.write(struct_int32.pack(8))
29 b.write(struct_double.pack(121.4511))
30
31
32 b.write(struct_int32.pack(4 * 5 + 10 * (4 + 8)))
33 b.write(struct_int32.pack(1))
34 b.write(struct_int32.pack(0))
35 b.write(struct_int32.pack(700))
36 b.write(struct_int32.pack(10))
37 b.write(struct_int32.pack(1))
38 array = []
39
40 for j in range(10):
41 val = random.random()
42 array.append(val)
43 b.write(struct_int32.pack(8))
44 b.write(struct_double.pack(val))
45
46
47 ts = TupleSchema([23, 701, 23, 701, 701, 1022])
48 tr = TupleReader(b.getvalue(), ts)
49 print array
50 print tr.read_tuple()
51