code: def test_wide_mode_external(px_fn, orientation, style):
      # here we test this feature "black box" style by calling actual PX functions and
      # inspecting the figure... this is important but clunky, and is mostly a smoke test
      # allowing us to do more "white box" testing below
  
      if px_fn != px.funnel:
          x, y = ("y", "x") if orientation == "h" else ("x", "y")
      else:
          x, y = ("y", "x") if orientation != "v" else ("x", "y")
      xaxis, yaxis = x + "axis", y + "axis"
  
      df = pd.DataFrame(
          dict(a=[1, 2, 3], b=[4, 5, 6], c=[7, 8, 9]),
          index=[11, 12, 13],
      )
      if style == "implicit":
          fig = px_fn(df, orientation=orientation)
  
      if px_fn in [
          px.scatter,
          px.line,
          px.area,
          px.bar,
          px.funnel,
          px.density_contour,
      ]:
          if style == "explicit":
              fig = px_fn(
                  **{"data_frame": df, y: list(df.columns), x: df.index}
              )
          assert len(fig.data) == 3
          assert list(fig.data[0][x]) == [11, 12, 13]
          assert list(fig.data[0][y]) == [1, 2, 3]
          assert list(fig.data[1][x]) == [11, 12, 13]
          assert list(fig.data[1][y]) == [4, 5, 6]
          assert fig.layout[xaxis].title.text == "index"
          assert fig.layout[yaxis].title.text == "value"
          assert fig.layout.legend.title.text == "variable"
      if px_fn in [px.density_heatmap]:
          if style == "explicit":
              fig = px_fn(
                  **{"data_frame": df, y: list(df.columns), x: df.index}
              )
          assert len(fig.data) == 1
          assert list(fig.data[0][x]) == [
              11,
              12,
              13,
              11,
              12,
              13,
              11,
              12,
              13,
          ]
          assert list(fig.data[0][y]) == [1, 2, 3, 4, 5, 6, 7, 8, 9]
          assert fig.layout[xaxis].title.text == "index"
          assert fig.layout[yaxis].title.text == "value"
      if px_fn in [px.violin, px.box, px.strip]:
          if style == "explicit":
              fig = px_fn(**{"data_frame": df, y: list(df.columns)})
          assert len(fig.data) == 1
          assert (
              list(fig.data[0][x]) == ["a"] * 3 + ["b"] * 3 + ["c"] * 3
          )
          assert list(fig.data[0][y]) == list(range(1, 10))
          assert fig.layout[yaxis].title.text == "value"
          assert fig.layout[xaxis].title.text == "variable"
      if px_fn in [px.histogram]:
          if style == "explicit":
              fig = px_fn(**{"data_frame": df, x: list(df.columns)})
          assert len(fig.data) == 3
          assert list(fig.data[1][x]) == [4, 5, 6]
          assert fig.layout.legend.title.text == "variable"
          assert fig.layout[xaxis].title.text == "value"
  
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 2 for calling a global function with example usage: test_wide_mode_external(px_fn, orientation, style) without return types