m = 10 ** 9 + 7
for _ in xrange(input()):
    n = input()
    B = map(int, raw_input().split())
    dp = [[0 for i in xrange(n + 1)] for j in xrange(n)]
    cdp = [[0 for i in xrange(n + 1)] for j in xrange(n)]
    dp[0][1] = 1
    cdp[0][1] = 1
    cdp[0][0] = 1
    for i in xrange(1, n):
        for j in xrange(1, min(n + 1, B[i] + 1)):
            dp[i][j] = cdp[i - 1][j - 1] % m
        cdp[i][n] = dp[i][n]
        for j in xrange(n - 1, -1, -1):
            cdp[i][j] = (cdp[i][j + 1] + dp[i][j])  % m
    print cdp[-1][0] % m