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