@@ -125,6 +125,15 @@ def generate_sample_data(
125125 return sample_values
126126
127127
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+
128137@check_leak
129138def test_simple_nodes ():
130139 for typs , py_typ , bounds in SIMPLE_NODE_SAMPLES :
@@ -135,7 +144,7 @@ def test_simple_nodes():
135144 writer = EndianBinaryWriter (b"" , "<" )
136145 write_typetree (value , node , writer )
137146 raw = writer .bytes
138- re_value = read_typetree (node , EndianBinaryReader ( raw , "<" ) )
147+ re_value = _test_read_typetree (node , raw , as_dict = True )
139148 assert (
140149 abs (value - re_value ) < 1e-5
141150 ), f"Failed on { typ } : { value } != { re_value } "
@@ -158,7 +167,7 @@ def generate_list_node(item_node: TypeTreeNode):
158167 writer = EndianBinaryWriter (b"" , "<" )
159168 write_typetree (values , array_node , writer )
160169 raw = writer .bytes
161- re_values = read_typetree (array_node , EndianBinaryReader ( raw , "<" ) )
170+ re_values = _test_read_typetree (array_node , raw , as_dict = True )
162171 assert all (
163172 (abs (value - re_value ) < 1e-5 )
164173 for value , re_value in zip (values , re_values )
@@ -176,19 +185,15 @@ def test_class_node_dict():
176185 writer = EndianBinaryWriter (b"" , "<" )
177186 write_typetree (TEST_CLASS_NODE_DICT , TEST_CLASS_NODE , writer )
178187 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 )
182189 assert re_value == TEST_CLASS_NODE_DICT
183190
184191
185192def test_class_node_clz ():
186193 writer = EndianBinaryWriter (b"" , "<" )
187194 write_typetree (TEST_CLASS_NODE_OBJ , TEST_CLASS_NODE , writer )
188195 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 )
192197 assert re_value == TEST_CLASS_NODE_OBJ
193198
194199
0 commit comments