@@ -125,6 +125,15 @@ def generate_sample_data(
125
125
return sample_values
126
126
127
127
128
+ def _test_read_typetree (node : TypeTreeNode , data : bytes , as_dict : bool ):
129
+ reader = EndianBinaryReader (data , "<" )
130
+ py_values = read_typetree (node , reader , as_dict = as_dict , check_read = False )
131
+ reader .Position = 0
132
+ cpp_values = read_typetree (node , reader , as_dict = as_dict , byte_size = len (data ))
133
+ assert py_values == cpp_values
134
+ return py_values
135
+
136
+
128
137
@check_leak
129
138
def test_simple_nodes ():
130
139
for typs , py_typ , bounds in SIMPLE_NODE_SAMPLES :
@@ -135,7 +144,7 @@ def test_simple_nodes():
135
144
writer = EndianBinaryWriter (b"" , "<" )
136
145
write_typetree (value , node , writer )
137
146
raw = writer .bytes
138
- re_value = read_typetree (node , EndianBinaryReader ( raw , "<" ) )
147
+ re_value = _test_read_typetree (node , raw , as_dict = True )
139
148
assert (
140
149
abs (value - re_value ) < 1e-5
141
150
), f"Failed on { typ } : { value } != { re_value } "
@@ -158,7 +167,7 @@ def generate_list_node(item_node: TypeTreeNode):
158
167
writer = EndianBinaryWriter (b"" , "<" )
159
168
write_typetree (values , array_node , writer )
160
169
raw = writer .bytes
161
- re_values = read_typetree (array_node , EndianBinaryReader ( raw , "<" ) )
170
+ re_values = _test_read_typetree (array_node , raw , as_dict = True )
162
171
assert all (
163
172
(abs (value - re_value ) < 1e-5 )
164
173
for value , re_value in zip (values , re_values )
@@ -176,19 +185,15 @@ def test_class_node_dict():
176
185
writer = EndianBinaryWriter (b"" , "<" )
177
186
write_typetree (TEST_CLASS_NODE_DICT , TEST_CLASS_NODE , writer )
178
187
raw = writer .bytes
179
- re_value = read_typetree (
180
- TEST_CLASS_NODE , EndianBinaryReader (raw , "<" ), as_dict = True
181
- )
188
+ re_value = _test_read_typetree (TEST_CLASS_NODE , raw , as_dict = True )
182
189
assert re_value == TEST_CLASS_NODE_DICT
183
190
184
191
185
192
def test_class_node_clz ():
186
193
writer = EndianBinaryWriter (b"" , "<" )
187
194
write_typetree (TEST_CLASS_NODE_OBJ , TEST_CLASS_NODE , writer )
188
195
raw = writer .bytes
189
- re_value = read_typetree (
190
- TEST_CLASS_NODE , EndianBinaryReader (raw , "<" ), as_dict = False
191
- )
196
+ re_value = _test_read_typetree (TEST_CLASS_NODE , raw , as_dict = False )
192
197
assert re_value == TEST_CLASS_NODE_OBJ
193
198
194
199
0 commit comments