def METHOD_NAME(self):
    n = 5
    lamda = 0.1
    A, x_numpy, y = self.Ax_y_setup(n, lamda)
    # Solve 1 / 2 \| A x - y \|_2^2 + lamda * \| z \|_2^2 s.t. x = z
    mu = 1
    x_z = np.zeros([2 * n])
    v = np.zeros([n])
    def minL():
        x = x_z[:n]
        z = x_z[n:]
        x[:] = np.linalg.solve(
            A.T @ A + mu * np.eye(n), A.T @ y - v + mu * z
        )
        z[:] = (mu * x + v) / (mu + lamda)
    def h(x_z):
        x = x_z[:n]
        z = x_z[n:]
        return x - z
    alg_method = alg.AugmentedLagrangianMethod(
        minL, None, h, x_z, None, v, mu
    )
    while not alg_method.done():
        alg_method.update()
    x = x_z[:n]
    npt.assert_allclose(x, x_numpy)