def test_linesegment3_to_from_dict(): """Test the to/from dict of LineSegment3D objects.""" pt = Point3D(2, 0, 2) vec = Vector3D(0, 2, 0) seg = LineSegment3D(pt, vec) seg_dict = seg.to_dict() new_seg = LineSegment3D.from_dict(seg_dict) assert isinstance(new_seg, LineSegment3D) assert new_seg.to_dict() == seg_dict
def from_dict(cls, _dict): new_obj = cls() new_obj.quantity = _dict.get('quantity') new_obj._tolerance = _dict.get('_tolerance') new_obj.aperture = Aperture.from_dict( _dict.get('aperture') ) new_obj._shading_factor_winter =_dict.get('_shading_factor_winter') new_obj._shading_factor_summer =_dict.get('_shading_factor_summer') new_obj._glazing_edge_lengths = _dict.get('_glazing_edge_lengths') new_obj.variant_type = _dict.get('variant_type') new_obj.install_depth = _dict.get('install_depth') #---- _edges = _dict.get('_window_edges', {}) _left = _edges.get('Left') _left = LineSegment3D.from_dict( _left ) _right = _edges.get('Right') _right = LineSegment3D.from_dict( _right ) _bottom = _edges.get('Bottom') _bottom = LineSegment3D.from_dict( _bottom ) _top = _edges.get('Top') _top = LineSegment3D.from_dict( _top ) new_obj._window_edges = cls.Output(_left, _right, _bottom, _top) #---- _glazing_surface = _dict.get('_glazing_surface') _glazing_surface = Face3D.from_dict(_glazing_surface) _glazing_surface = from_face3d(_glazing_surface) new_obj._glazing_surface = _glazing_surface new_obj.frame = LBT2PH.windows.PHPP_Frame.from_dict( _dict.get('_frame') ) new_obj.glazing = LBT2PH.windows.PHPP_Glazing.from_dict( _dict.get('_glazing') ) new_obj.installs = LBT2PH.windows.PHPP_Installs.from_dict( _dict.get('_installs') ) new_obj.shading_dimensions = LBT2PH.shading.PHPP_Shading_Dims.from_dict( _dict.get('shading_dimensions') ) return new_obj