code: def test_where_bug_mixed(self, any_signed_int_numpy_dtype):
      # see gh-2793
      df = DataFrame(
          {
              "a": np.array(
                  [1, 2, 3, 4], dtype=any_signed_int_numpy_dtype
              ),
              "b": np.array([4.0, 3.0, 2.0, 1.0], dtype="float64"),
          }
      )
  
      expected = DataFrame(
          {"a": [-1, -1, 3, 4], "b": [4.0, 3.0, -1, -1]},
      ).astype({"a": any_signed_int_numpy_dtype, "b": "float64"})
  
      result = df.where(df > 2, -1)
      tm.assert_frame_equal(result, expected)
  
      result = df.copy()
      return_value = result.where(result > 2, -1, inplace=True)
      assert return_value is None
      tm.assert_frame_equal(result, expected)
  
imports: from datetime import datetime
  from hypothesis import given
  import numpy
  import pytest
  from pandas.core.dtypes.common import is_scalar
  import pandas
  from pandas import DataFrame, DatetimeIndex, Index, Series, StringDtype, Timestamp, date_range, isna
  import pandas._testing
  from pandas._testing._hypothesis import OPTIONAL_ONE_OF_ALL
label_desc: Use image node_id 13 for calling the TestDataFrameIndexingWhere obj's underlying member method code with example usage: obj.test_where_bug_mixed(any_signed_int_numpy_dtype) without return types