#include #include #include #include #include #define LL long long using namespace std; int n,b[2333],f[2333][2333],s[2][2333]; const int mod=1000000007; int main() { int t;scanf("%d",&t); while(t--){ scanf("%d",&n); for(int i=1;i<=n;i++)scanf("%d",&b[i]); for(int i=0;i<=n;i++)for(int j=0;j<=i;j++)f[i][j]=0; for(int i=0;i<=n;i++)s[0][i]=s[1][i]=0; f[0][0]=1; for(int i=1;i<=n;i++){ s[i%2][0]=0; for(int j=1;j<=min(i,b[i]);j++){ //for(int k=j-1;k<=min(i-1,b[i-1]);k++)f[i][j]+=f[i-1][k]; f[i][j]=((s[(i%2)^1][min(i-1,b[i-1])]-s[(i%2)^1][min(j-1,b[i-1])]+mod)%mod+f[i-1][j-1])%mod; s[i%2][j]=(s[i%2][j-1]+f[i][j])%mod; } } // for(int i=1;i<=n;i++){for(int j=0;j<=i;j++)printf("%d ",f[i][j]);printf("\n");} int ans=0; for(int i=1;i<=min(n,b[n]);i++)ans=(ans+f[n][i])%mod; printf("%d\n",ans); } return 0; }