function testSolve
     result = Test([0, 1; 1, 1], [1; 1])
     result = result & Test([11,44,1; 0.1,0.4,3; 0,1,-1], [1; 1; 1])
     result = result & Test([0.001,1,1; -1,0.004,0.004; -1000,0.004,0.000004], [1; 1; 1])

    if result(1) % nopivot
        disp("Pivot-less Solving worked!")
    else
        disp("Pivot-less Solving broke!")
    end

    if result(2) % pivot
        disp("Pivot-full Solving worked!")
    else
        disp("Pivot-full Solving broke!")
    end
end

function [nopivot, pivot] = Test(A, b)
    try
        nopivot = isequal(Solve(A, b), linsolve(A, b))
    catch
        nopivot = false
    end

    try
        pivot = isequal(SolvePivot(A, b), linsolve(A, b))
    catch
        pivot = false
    end
end

function x = Solve(A, b)
    x = solveLR(gaussLR(A), b)
end

function x = SolvePivot(A, b)
    [A, T] = lrPivot(A)
    x = solveLrPivot(A, T, b)
end
