import sys

inf = float("inf")

input = lambda: sys.stdin.readline().rstrip("\r\n")

print = lambda *args, end="\n", sep=" ": sys.stdout.write(
    sep.join(map(str, args)) + end
)


def II():
    return int(input())


def MII(b=0):
    return map(lambda x: int(x) - b, input().split())


def LII(b=0):
    return list(MII(b))


def find_maximum(check, l, r=None, precision=10**-9):

    if r is None:
        r = 1
        while check(r):
            l = r
            r *= 10

    res = l
    while r - l >= precision:
        mid = [(l + r) / 2, (l + r) // 2][precision == 0]
        if check(mid):
            res = mid
            l = mid + (precision == 0)
        else:
            r = mid - (precision == 0)
    return res


def find_minimun(check, l, r=None, precision=10**-9):
    def chk(x):
        return not check(x)

    res = find_maximum(chk, l, r, precision)
    return res + 1 if precision == 0 else res


def is_sorted(a):
    return all(a[i] < a[i + 1] for i in range(len(a) - 1))


for _ in range(II()):
    n, a = II(), LII()

    def check(m):
        b = [ai + i * m for i, ai in enumerate(a, 1)]
        return is_sorted(b)

    print(find_minimun(check, -1, precision=0))