def METHOD_NAME(self, n, dim, gc, dc):
    X = np.random.uniform(-1, 1, (n, dim)).astype(np.float32)
    Y = np.random.uniform(-1, 1, (n, dim)).astype(np.float32)
    # avoid kinks by moving away from 0
    X += 0.02 * np.sign(X - Y)
    X[(X - Y) == 0.0] += 0.02
    self.ws.create_blob("X").feed(X)
    self.ws.create_blob("Y").feed(Y)
    op = core.CreateOperator(
        'L1Distance',
        ['X', 'Y'],
        ['l1_dist'],
    )
    self.ws.run(op)
    np.testing.assert_allclose(self.ws.blobs[("l1_dist")].fetch(),
                                [np.linalg.norm(x - y, ord=1)
                                    for x, y in zip(X, Y)],
                                rtol=1e-4, atol=1e-4)
    self.assertDeviceChecks(dc, op, [X, Y], [0])
    # Gradient check wrt X
    self.assertGradientChecks(gc, op, [X, Y], 0, [0],
                              stepsize=1e-2, threshold=1e-2)
    # Gradient check wrt Y
    self.assertGradientChecks(gc, op, [X, Y], 1, [0],
                              stepsize=1e-2, threshold=1e-2)