@pytest.mark.parametrize('val,exp_dtype', [(5, IndexError), (5.1, np.float64), ('x', object)])
def test_setitem_index_float64(self, val, exp_dtype, request):
    obj = pd.Series([1, 2, 3, 4], index=[1.1, 2.1, 3.1, 4.1])
    assert (obj.index.dtype == np.float64)
    if (exp_dtype is IndexError):
        temp = obj.copy()
        msg = 'index 5 is out of bounds for axis 0 with size 4'
        with pytest.raises(exp_dtype, match=msg):
            temp[5] = 5
        mark = pytest.mark.xfail(reason='TODO_GH12747 The result must be float')
        request.node.add_marker(mark)
    exp_index = pd.Index([1.1, 2.1, 3.1, 4.1, val])
    self._assert_setitem_index_conversion(obj, val, exp_index, exp_dtype)
@pytest.mark.parametrize('val,exp_dtype', [(5, IndexError), (5.1, np.float64), ('x', object)])
def test_setitem_index_float64(self, val, exp_dtype, request):
    obj = pd.Series([1, 2, 3, 4], index=[1.1, 2.1, 3.1, 4.1])
    assert (obj.index.dtype == np.float64)
    if (exp_dtype is IndexError):
        temp = obj.copy()
        msg = 'index 5 is out of bounds for axis 0 with size 4'
        with pytest.raises(exp_dtype, match=msg):
            temp[5] = 5
        mark = pytest.mark.xfail(reason='TODO_GH12747 The result must be float')
        request.node.add_marker(mark)
    exp_index = pd.Index([1.1, 2.1, 3.1, 4.1, val])
    self._assert_setitem_index_conversion(obj, val, exp_index, exp_dtype)