1+ from copy import deepcopy
12from compas .data import json_dumps
23from compas .data import json_loads
34from compas .geometry import Frame
@@ -255,7 +256,6 @@ def test_error_deepcopy_fastener():
255256
256257
257258def test_error_deepcopy_joint ():
258- from copy import deepcopy
259259 from compas_timber .errors import BeamJoiningError
260260
261261 error = BeamJoiningError ("mama" , "papa" , "dog" , "cucumber" )
@@ -266,3 +266,29 @@ def test_error_deepcopy_joint():
266266 assert error .joint == "papa"
267267 assert error .debug_info == "dog"
268268 assert error .debug_geometries == "cucumber"
269+
270+
271+ def test_beam_graph_node_available_after_serialization ():
272+ model = TimberModel ()
273+ frame = Frame (Point (0 , 0 , 0 ), Vector (1 , 0 , 0 ), Vector (0 , 1 , 0 ))
274+ beam = Beam (frame , length = 1.0 , width = 0.1 , height = 0.1 )
275+ model .add_element (beam )
276+
277+ graph_node = beam .graph_node
278+ deserialized_model = json_loads (json_dumps (model ))
279+
280+ assert graph_node is not None
281+ assert list (deserialized_model .beams )[0 ].graph_node == graph_node
282+
283+
284+ def test_beam_graph_node_available_after_deepcopying ():
285+ model = TimberModel ()
286+ frame = Frame (Point (0 , 0 , 0 ), Vector (1 , 0 , 0 ), Vector (0 , 1 , 0 ))
287+ beam = Beam (frame , length = 1.0 , width = 0.1 , height = 0.1 )
288+ model .add_element (beam )
289+
290+ grap_node = beam .graph_node
291+ deserialized_model = deepcopy (model )
292+
293+ assert grap_node is not None
294+ assert list (deserialized_model .beams )[0 ].graph_node == grap_node
0 commit comments