def METHOD_NAME(self, squeeze_dims, inplace, gc, dc):
    shape = [
        1 if dim in squeeze_dims else np.random.randint(1, 5)
        for dim in range(4)
    ]
    X = np.random.rand(*shape).astype(np.float32)
    op0 = core.CreateOperator(
        "Squeeze",
        "X0",
        "X0" if inplace else "Y0",
        dims=squeeze_dims,
        device_option=dc[0]
    )
    workspace.FeedBlob('X0', X, dc[0])
    workspace.RunOperatorOnce(op0)
    Y0 = workspace.FetchBlob("X0" if inplace else "Y0")
    op1 = core.CreateOperator(
        "Squeeze",
        "X1",
        "X1" if inplace else "Y1",
        dims=squeeze_dims,
        device_option=dc[1]
    )
    workspace.FeedBlob('X1', X, dc[0])
    workspace.RunOperatorOnce(op1)
    Y1 = workspace.FetchBlob("X1" if inplace else "Y1")
    if not np.allclose(Y0, Y1, atol=0.01, rtol=0.01):
        print(Y1.flatten())
        print(Y0.flatten())
        print(np.max(np.abs(Y1 - Y0)))
        self.assertTrue(False)