code: def test_build_df_with_hover_data_from_vaex_and_polars(
      test_lib, hover_data
  ):
      if test_lib == "vaex":
          import vaex as lib
      else:
          import polars as lib
  
      # take out the 'species' columns since the vaex implementation does not cover strings yet
      iris_pandas = px.data.iris()[
          ["petal_width", "sepal_length", "sepal_width"]
      ]
      iris_vaex = lib.from_pandas(iris_pandas)
      args = dict(
          data_frame=iris_vaex,
          x="petal_width",
          y="sepal_length",
          hover_data=hover_data,
      )
      out = build_dataframe(args, go.Scatter)
      assert_frame_equal(
          iris_pandas.reset_index()[out["data_frame"].columns],
          out["data_frame"],
      )
  
imports: import plotly.express
  import plotly.graph_objects
  import numpy
  import pandas
  import pytest
  from packaging import version
  import unittest.mock
  from plotly.express._core import build_dataframe
  from pandas.testing import assert_frame_equal
label_desc: Use image node_id 20 for calling a global function with example usage: test_build_df_with_hover_data_from_vaex_and_polars(test_lib, hover_data) without return types