//Siberian Squirrel
//#include<bits/stdc++.h>
#include<unordered_map>
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<string>
#include<cmath>
#include<set>

using namespace std;
typedef long long ll;

const double PI = acos(-1);
const double eps = 1e-7;
const int inf = 0x3f3f3f3f;
const int MOD = 1e9 + 7;
const int N = 1e5 + 10;
const int UP = 1e2 + 10;

int a[N];
ll s[N]; 

inline bool solve(int n, ll res = 0) {
    bool f = true;
    for(int i = 1; i <= n; ++ i) {
        scanf("%d", &a[i]);
		s[i] = s[i - 1] + a[i];
		if(s[i] < (i - 1) * i / 2) f = false;
    }
    return f;

}

int main() {
#ifdef ACM_LOCAL
    freopen("input", "r", stdin);
    freopen("output", "w", stdout);
#endif
    int o = 1, n, m, k;
    scanf("%d", &o);
    while(o --) {
        scanf("%d", &n);
        printf("%s\n", solve(n)? "YES": "NO");
    }
    return 0;
}
