Package vsql_core :: Package utils :: Package factored_parser :: Module test_tuple_reader
[hide private]
[frames] | no frames]

Source Code for Module vsql_core.utils.factored_parser.test_tuple_reader

 1  from tuple_processor import * 
 2  import cStringIO 
 3  import struct 
 4  import random 
 5   
 6   
 7  # global struct parsers 
 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  #write int 
16  b.write(struct_int32.pack(4)) 
17  b.write(struct_int32.pack(142)) 
18  #write double 
19  b.write(struct_int32.pack(8)) 
20  b.write(struct_double.pack(213.12)) 
21  #write int 
22  b.write(struct_int32.pack(4)) 
23  b.write(struct_int32.pack(27)) 
24  #write double 
25  b.write(struct_int32.pack(8)) 
26  b.write(struct_double.pack(91.125)) 
27  #write double 
28  b.write(struct_int32.pack(8)) 
29  b.write(struct_double.pack(121.4511)) 
30   
31  #write double array 
32  b.write(struct_int32.pack(4 * 5 + 10 * (4 + 8))) 
33  b.write(struct_int32.pack(1)) #ndims 
34  b.write(struct_int32.pack(0)) #has null 
35  b.write(struct_int32.pack(700)) #element type 
36  b.write(struct_int32.pack(10)) #length 
37  b.write(struct_int32.pack(1)) #bound 
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