def METHOD_NAME(test_case, placement, sbp):
    input = random_tensor(2, 8, 16, requires_grad=True).oneflow
    value = random_tensor(2, 8, 8, requires_grad=True).oneflow
    x = (input + 0).to_global(
        placement=placement, sbp=sbp
    )  # add 0 to change to non-leaf tensor
    y = value.to_global(placement, sbp=sbp)
    x[:, :8] = y
    ref_np = input.detach().cpu().numpy()
    value_np = value.detach().cpu().numpy()
    # forward
    ref_np[:, :8] = value_np
    test_case.assertTrue(x.sbp == sbp)
    test_case.assertTrue(np.array_equal(x.numpy(), ref_np))
    # backward
    x.sum().backward()
    # ref grad
    ref_grad_np = np.ones((8, 16))
    ref_grad_np[:, :8] = 0
    test_case.assertTrue(np.array_equal(input.grad.numpy(), ref_grad_np))
    # value grad
    value_grad_np = np.ones((8, 8))
    test_case.assertTrue(np.array_equal(value.grad.numpy(), value_grad_np))