code: def test_legend_options_remove_none():
      option = LegendOpts()
      expected = {
          "show": True,
          "padding": 5,
          "itemGap": 10,
          "itemWidth": 25,
          "itemHeight": 14,
          "backgroundColor": "transparent",
          "borderColor": "#ccc",
          "borderWidth": 1,
          "borderRadius": 0,
          "pageButtonItemGap": 5,
          "pageButtonPosition": "end",
          "pageFormatter": "{current}/{total}",
          "pageIconColor": "#2f4554",
          "pageIconInactiveColor": "#aaa",
          "pageIconSize": 15,
          "animationDurationUpdate": 800,
          "selector": False,
          "selectorPosition": "auto",
          "selectorItemGap": 7,
          "selectorButtonGap": 10,
      }
      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 9 for calling a global function with example usage: test_legend_options_remove_none() without return types