def METHOD_NAME(qtbot):
    """ Verify the functionality of the show/hide column feature """
    # Set up a plot with three data items. Two will be plotted as lines, and one as bars.
    base_plot = BasePlot()
    qtbot.addWidget(base_plot)
    line_item_1 = WaveformCurveItem()
    line_item_2 = WaveformCurveItem()
    bar_item = WaveformCurveItem(plot_style='Bar')
    plot_curves_model = BasePlotCurvesModel(plot=base_plot)
    table_view = QTableView()
    table_view.setModel(plot_curves_model)
    plot_style_column_delegate = PlotStyleColumnDelegate(parent=base_plot,
                                                         table_model=plot_curves_model,
                                                         table_view=table_view)
    base_plot.addCurve(line_item_1)
    plot_style_column_delegate.toggleColumnVisibility()
    # With only the line style curve displayed the four line columns should be shown
    for column in plot_style_column_delegate.line_columns_to_toggle:
        assert not table_view.isColumnHidden(plot_curves_model.getColumnIndex(column))
    # And the four bar columns should be hidden
    for column in plot_style_column_delegate.bar_columns_to_toggle:
        assert table_view.isColumnHidden(plot_curves_model.getColumnIndex(column))
    # Now add an additional line curve and a bar curve. All 8 columns should now be visible since it's a mixed plot
    base_plot.addCurve(line_item_2)
    base_plot.addCurve(bar_item)
    plot_style_column_delegate.toggleColumnVisibility()
    for column in plot_style_column_delegate.line_columns_to_toggle:
        assert not table_view.isColumnHidden(plot_curves_model.getColumnIndex(column))
    for column in plot_style_column_delegate.bar_columns_to_toggle:
        assert not table_view.isColumnHidden(plot_curves_model.getColumnIndex(column))
    # Finally remove both line curves to test the last option, nothing but bar style curves. All line options should
    # be hidden, while the bar options should still be shown
    base_plot.removeCurve(line_item_1)
    base_plot.removeCurve(line_item_2)
    plot_style_column_delegate.toggleColumnVisibility()
    for column in plot_style_column_delegate.line_columns_to_toggle:
        assert table_view.isColumnHidden(plot_curves_model.getColumnIndex(column))
    for column in plot_style_column_delegate.bar_columns_to_toggle:
        assert not table_view.isColumnHidden(plot_curves_model.getColumnIndex(column))