code: def test_categorical_global_ordering_broadcast_rhs(
      op: Callable[[pl.Series, pl.Series], pl.Series],
      expected_phys: pl.Series,
      expected_lexical: pl.Series,
  ) -> None:
      s = pl.Series(["c", "a", "b"], dtype=pl.Categorical)
      s2 = pl.Series("b_cat", ["a"], dtype=pl.Categorical)
      assert_series_equal(op(s, s2), expected_phys)
  
      s = s.cast(pl.Categorical("lexical"))
      s2 = s2.cast(pl.Categorical("lexical"))
      assert_series_equal(op(s, s2), expected_lexical)
      assert_series_equal(op(s, s2.cast(pl.String)), expected_lexical)
  
imports: from __future__ import annotations
  import contextlib
  import io
  import operator
  from typing import TYPE_CHECKING, Any, Callable, Literal
  import pytest
  import polars
  from polars import StringCache
  from polars.exceptions import CategoricalRemappingWarning, StringCacheMismatchError
  from polars.testing import assert_frame_equal, assert_series_equal
label_desc: Use image node_id 9 for calling a global function with example usage: test_categorical_global_ordering_broadcast_rhs(op, expected_phys, expected_lexical) without return types