### Question:
ExpressionEditorColumn extends DMNGridColumn<BaseGrid<? extends Expression>, Optional<BaseExpressionGrid<? extends Expression, ? extends GridData, ? extends BaseUIModelMapper>>> implements HasDOMElementResources { @Override public void setWidthInternal(final double width) { super.setWidth(width); updateWidthOfChildren(); } ExpressionEditorColumn(final GridWidgetRegistry registry,
                                  final HeaderMetaData headerMetaData,
                                  final double width,
                                  final BaseGrid<? extends Expression> gridWidget);  ExpressionEditorColumn(final GridWidgetRegistry registry,
                                  final List<HeaderMetaData> headerMetaData,
                                  final double width,
                                  final BaseGrid<? extends Expression> gridWidget); protected  ExpressionEditorColumn(final List<HeaderMetaData> headerMetaData,
                                     final BaseGridColumnRenderer<Optional<BaseExpressionGrid<? extends Expression, ? extends GridData, ? extends BaseUIModelMapper>>> renderer,
                                     final double width,
                                     final BaseGrid<? extends Expression> gridWidget); @Override Double getMinimumWidth(); @Override void setWidth(final double width); @Override void setWidthInternal(final double width); @Override void edit(final GridCell<Optional<BaseExpressionGrid<? extends Expression, ? extends GridData, ? extends BaseUIModelMapper>>> cell,
                     final GridBodyCellEditContext context,
                     final Consumer<GridCellValue<Optional<BaseExpressionGrid<? extends Expression, ? extends GridData, ? extends BaseUIModelMapper>>>> callback); static final double DEFAULT_WIDTH; }### Answer:
@Test public void testUpdateInternalWidth() { gridData.appendColumn(column); gridData.appendRow(new BaseGridRow()); gridData.appendRow(new BaseGridRow()); gridData.appendRow(new BaseGridRow()); mockCells(0, 0, 100); mockCells(1, 0, 110); mockCells(2, 0, 50, 60); column.setWidthInternal(200D); assertThat(getColumnWidth(0, 0, 0)).isEqualTo(200D); assertThat(getColumnWidth(1, 0, 0)).isEqualTo(200D); assertThat(getColumnWidth(2, 0, 0)).isEqualTo(50D); assertThat(getColumnWidth(2, 0, 1)).isEqualTo(150D); }
@Test public void testUpdateInternalWidthNoCellsInMiddle() { gridData.appendColumn(column); gridData.appendRow(new BaseGridRow()); gridData.appendRow(new BaseGridRow()); gridData.appendRow(new BaseGridRow()); mockCells(0, 0, 100); mockCells(1, 0); mockCells(2, 0, 50, 60); column.setWidthInternal(200D); assertThat(getColumnWidth(0, 0, 0)).isEqualTo(200D); assertThat(getColumnWidth(2, 0, 0)).isEqualTo(50D); assertThat(getColumnWidth(2, 0, 1)).isEqualTo(150D); }
@Test public void testUpdateInternalWidthResizedToSmaller() { gridData.appendColumn(column); gridData.appendRow(new BaseGridRow()); gridData.appendRow(new BaseGridRow()); gridData.appendRow(new BaseGridRow()); mockCells(0, 0, 100); mockCells(1, 0, 30, 30, 30); mockCells(2, 0, 50, 60); column.setWidthInternal(80D); assertThat(getColumnWidth(0, 0, 0)).isEqualTo(80D); assertThat(getColumnWidth(1, 0, 0)).isEqualTo(30D); assertThat(getColumnWidth(1, 0, 1)).isEqualTo(30D); assertThat(getColumnWidth(1, 0, 2)).isEqualTo(20D); assertThat(getColumnWidth(2, 0, 0)).isEqualTo(50D); assertThat(getColumnWidth(2, 0, 1)).isEqualTo(30D); }