def test_load_dynamic_cols_manual_height(): """Every column can have a different height. The linked MTEXT entities do NOT have the "defined_height" stored in the XDATA section ACAD. The only source for the column height is the MTextColumns.heights list. The linked MTEXT entities do not have an ACAD section at all. """ xdata = get_xdata(DYNAMIC_MANUAL_HEIGHT) cols = load_columns_from_xdata(MText().dxf, xdata) assert cols.count == 3 assert cols.column_type == ColumnType.DYNAMIC assert cols.auto_height is False assert cols.reversed_column_flow is False assert cols.defined_height == 0.0, "not defined if auto_height is False" assert cols.width == 50.0 assert cols.gutter_width == 12.5 assert cols.total_width == 175.0 # 3 * 50 + 2 * 12.5 # total_height = max(heights) even if the last column is the tallest assert cols.total_height == 164.8 # max height assert len(cols.linked_handles) == 2 assert len(cols.heights) == 3 # not stored the main MTEXT entity assert cols.heights[-1] == 0.0, "last column height has to be 0.0" assert cols.heights == [164.8, 154.3, 0.0]
def test_load_static_cols(): """All columns have the same column height. Each linked MTEXT has the "defined_height" stored in the XDATA section ACAD. """ xdata = get_xdata(STATIC) cols = load_columns_from_xdata(MText().dxf, xdata) assert cols.count == 3 assert cols.column_type == ColumnType.STATIC assert cols.auto_height is False assert cols.reversed_column_flow is False assert cols.defined_height == 150.0, "required for static columns" assert cols.width == 50.0 assert cols.gutter_width == 12.5 assert cols.total_width == 175.0 # 3 * 50 + 2 * 12.5 assert cols.total_height == 150.0 assert len(cols.linked_handles) == 2 assert len(cols.heights) == 0
def test_load_dynamic_cols_with_auto_height(): """All columns have the same column height. Each linked MTEXT has the "defined_height" stored in the XDATA section ACAD. """ xdata = get_xdata(DYNAMIC_AUTO_HEIGHT) cols = load_columns_from_xdata(MText().dxf, xdata) # Count is a calculated value, group code 72 (column height count) is 0! assert cols.count == 3 assert cols.column_type == ColumnType.DYNAMIC assert cols.auto_height is True assert cols.reversed_column_flow is False assert cols.defined_height == 158.1, "required if auto_height is True" assert cols.width == 50.0 assert cols.gutter_width == 12.5 assert cols.total_width == 175.0 # 3 * 50 + 2 * 12.5 assert cols.total_height == 158.1 assert len(cols.linked_handles) == 2 assert len(cols.heights) == 0
def make_mtext(txt: str) -> MText: mtext = MText() xdata = get_xdata(txt) mtext._columns = load_columns_from_xdata(mtext.dxf, xdata) return mtext
def test_mtext_without_column_info(): xdata = get_xdata(NO_COLUMN_INFO) cols = load_columns_from_xdata(MText().dxf, xdata) assert cols is None