@pytest.mark.parametrize('fill_val,exp_dtype', [(1, np.complex128), (1.1, np.complex128), ((1 + 1j), np.complex128), (True, object)])
def test_where_series_complex128(self, fill_val, exp_dtype):
    klass = pd.Series
    obj = klass([(1 + 1j), (2 + 2j), (3 + 3j), (4 + 4j)])
    assert (obj.dtype == np.complex128)
    cond = klass([True, False, True, False])
    exp = klass([(1 + 1j), fill_val, (3 + 3j), fill_val])
    self._assert_where_conversion(obj, cond, fill_val, exp, exp_dtype)
    if (fill_val is True):
        values = klass([True, False, True, True])
    else:
        values = klass(((x * fill_val) for x in [5, 6, 7, 8]))
    exp = klass([(1 + 1j), values[1], (3 + 3j), values[3]], dtype=exp_dtype)
    self._assert_where_conversion(obj, cond, values, exp, exp_dtype)
@pytest.mark.parametrize('fill_val,exp_dtype', [(1, np.complex128), (1.1, np.complex128), ((1 + 1j), np.complex128), (True, object)])
def test_where_series_complex128(self, fill_val, exp_dtype):
    klass = pd.Series
    obj = klass([(1 + 1j), (2 + 2j), (3 + 3j), (4 + 4j)])
    assert (obj.dtype == np.complex128)
    cond = klass([True, False, True, False])
    exp = klass([(1 + 1j), fill_val, (3 + 3j), fill_val])
    self._assert_where_conversion(obj, cond, fill_val, exp, exp_dtype)
    if (fill_val is True):
        values = klass([True, False, True, True])
    else:
        values = klass(((x * fill_val) for x in [5, 6, 7, 8]))
    exp = klass([(1 + 1j), values[1], (3 + 3j), values[3]], dtype=exp_dtype)
    self._assert_where_conversion(obj, cond, values, exp, exp_dtype)