@@ 59-87 (lines=29) @@ | ||
56 | packed = TestStruct.pack(test_data_no_data) |
|
57 | assert packed == struct.pack('H', 0) + (struct.pack('B', 0) + struct.pack('H', 0)) * num_repeats |
|
58 | ||
59 | def test_some_data(self): |
|
60 | num_repeats = 3 |
|
61 | ||
62 | TestStruct = Message('TestStruct', [ |
|
63 | ('length', 'H', 'vardata'), |
|
64 | ('vardata', self.VarTest, 'length'), |
|
65 | ('repeated_data', self.Repeated, num_repeats), |
|
66 | ]) |
|
67 | ||
68 | test_data = { |
|
69 | 'length': 2, |
|
70 | 'vardata': [ |
|
71 | {'x': 1, 'y': 2}, |
|
72 | {'x': 3, 'y': 4}, |
|
73 | ], |
|
74 | 'repeated_data': [ |
|
75 | {'x': 7, 'z': 13}, |
|
76 | {'x': 2, 'z': 27}, |
|
77 | {'x': 6, 'z': 11}, |
|
78 | ], |
|
79 | } |
|
80 | ||
81 | made = TestStruct.make(test_data) |
|
82 | assert made.length == 2 |
|
83 | assert len(made.vardata) == 2 |
|
84 | assert len(made.repeated_data) == 3 |
|
85 | ||
86 | packed = TestStruct.pack(test_data) |
|
87 | assert packed == struct.pack('H', 2) + \ |
|
88 | struct.pack('BB', 1, 2) + \ |
|
89 | struct.pack('BB', 3, 4) + \ |
|
90 | (struct.pack('B', 7) + struct.pack('H', 13)) + \ |
|
@@ 94-121 (lines=28) @@ | ||
91 | (struct.pack('B', 2) + struct.pack('H', 27)) + \ |
|
92 | (struct.pack('B', 6) + struct.pack('H', 11)) |
|
93 | ||
94 | def test_not_all_fixed_data(self): |
|
95 | num_repeats = 5 |
|
96 | ||
97 | TestStruct = Message('TestStruct', [ |
|
98 | ('length', 'H', 'vardata'), |
|
99 | ('vardata', self.VarTest, 'length'), |
|
100 | ('repeated_data', self.Repeated, num_repeats), |
|
101 | ]) |
|
102 | ||
103 | test_data = { |
|
104 | 'length': 1, |
|
105 | 'vardata': [ |
|
106 | {'x': 255, 'y': 127}, |
|
107 | ], |
|
108 | 'repeated_data': [ |
|
109 | {'x': 6, 'z': 12}, |
|
110 | {'x': 1, 'z': 26}, |
|
111 | {'x': 5, 'z': 10}, |
|
112 | ], |
|
113 | } |
|
114 | ||
115 | made = TestStruct.make(test_data) |
|
116 | assert made.length == 1 |
|
117 | assert len(made.vardata) == 1 |
|
118 | assert len(made.repeated_data) == 3 |
|
119 | ||
120 | packed = TestStruct.pack(test_data) |
|
121 | assert packed == struct.pack('H', 1) + \ |
|
122 | struct.pack('BB', 255, 127) + \ |
|
123 | (struct.pack('B', 6) + struct.pack('H', 12)) + \ |
|
124 | (struct.pack('B', 1) + struct.pack('H', 26)) + \ |