code: def test_wide_mode_internal(trace_type, x, y, color, orientation):
      df_in = pd.DataFrame(
          dict(a=[1, 2, 3], b=[4, 5, 6]), index=[11, 12, 13]
      )
      args_in = dict(
          data_frame=df_in, color=None, orientation=orientation
      )
      args_out = build_dataframe(args_in, trace_type)
      df_out = args_out.pop("data_frame")
      expected = dict(
          variable=["a", "a", "a", "b", "b", "b"],
          value=[1, 2, 3, 4, 5, 6],
      )
      if x == "index":
          expected["index"] = [11, 12, 13, 11, 12, 13]
      assert_frame_equal(
          df_out.sort_index(axis=1),
          pd.DataFrame(expected).sort_index(axis=1),
      )
      if trace_type in [go.Histogram2dContour, go.Histogram2d]:
          if orientation is None or orientation == "v":
              assert args_out == dict(x=x, y=y, color=color)
          else:
              assert args_out == dict(x=y, y=x, color=color)
      else:
          if (
              orientation is None and trace_type != go.Funnel
          ) or orientation == "v":
              assert args_out == dict(
                  x=x, y=y, color=color, orientation="v"
              )
          else:
              assert args_out == dict(
                  x=y, y=x, color=color, orientation="h"
              )
  
imports: import plotly.express
  import plotly.graph_objects
  import pandas
  import numpy
  from plotly.express._core import build_dataframe, _is_col_list
  from pandas.testing import assert_frame_equal
  import pytest
  import warnings
label_desc: Use image node_id 4 for calling a global function with example usage: test_wide_mode_internal(trace_type, x, y, color, orientation) without return types