code: def test_toolbox_feature_options_remove_none():
      save_as_image = ToolBoxFeatureSaveAsImageOpts()
      restore = ToolBoxFeatureRestoreOpts()
      data_view = ToolBoxFeatureDataViewOpts()
      data_zoom = ToolBoxFeatureDataZoomOpts()
      magic_type = ToolBoxFeatureMagicTypeOpts()
      brush = ToolBoxFeatureBrushOpts()
  
      option = ToolBoxFeatureOpts(
          save_as_image=save_as_image,
          restore=restore,
          data_view=data_view,
          data_zoom=data_zoom,
          magic_type=magic_type,
          brush=brush,
      )
      expected = {
          "saveAsImage": save_as_image,
          "restore": restore,
          "dataView": data_view,
          "dataZoom": data_zoom,
          "magicType": magic_type,
          "brush": brush,
      }
      assert_equal(expected, remove_key_with_none_value(option.opts))
  
imports: from nose.tools import assert_equal
  from pyecharts.commons.utils import remove_key_with_none_value
  from pyecharts.options.global_options import AnimationOpts, AngleAxisItem, AngleAxisOpts, AriaLabelOpts, AriaDecalOpts, AxisTickOpts, CalendarYearLabelOpts, DatasetTransformOpts, InitOpts, ParallelAxisOpts, RadiusAxisItem, RadiusAxisOpts, ToolBoxFeatureBrushOpts, ToolBoxFeatureDataViewOpts, ToolBoxFeatureDataZoomOpts, ToolBoxFeatureMagicTypeOpts, ToolBoxFeatureOpts, ToolBoxFeatureRestoreOpts, ToolBoxFeatureSaveAsImageOpts, ToolboxOpts, BrushOpts, DataZoomOpts, LegendOpts, VisualMapOpts, TooltipOpts
label_desc: Use image node_id 5 for calling a global function with example usage: test_toolbox_feature_options_remove_none() without return types