#include <bits/stdc++.h>
using namespace std;

#define ll long long
#define ld long double
#define ul unsigned long long
#define yes cout << "YES" << '\n'
#define no cout << "NO" << '\n'
#define vl vector<ll>
#define sl(v) (ll) v.size()
#define syes cout << "Yes" << '\n'
#define sno cout << "No" << '\n'
#define mone cout << -1 << '\n'
#define MOD 1000000007
#define pb push_back
#define FAST                          \
    ios_base::sync_with_stdio(false); \
    cin.tie(NULL);                    \
    cout.tie(NULL)
#define pll pair<ll, ll>
#define mpl map<ll, ll>
#define umpl unordered_map<ll, ll>
#define all(v) v.begin(), v.end()
const double pi = 3.14159265359;
const int maxchar = 256;
int dp[100005][27];

//mt19937 mt(chrono::steady_clock::now().time_since_epoch().count());
int popcount(ll x) { return __builtin_popcountll(x); };
int poplow(ll x) { return __builtin_ctzll(x); };
int pophigh(ll x) { return 63 - __builtin_clzll(x); };

ll inline power(ll a, ll b, ll p)
{
    a %= p;
    ll ans = 1;
    while (b > 0)
    {
        if (b & 1)
            ans = (ans * a) % p;
        a = (a * a) % p;
        b >>= 1;
    }
    return ans;
}

ll inv(ll n, ll p)
{
    return power(n, p - 2, p);
}

template <class T>
void rv(T &v)
{
    for (int i = 0; i < sl(v); i++)
        cin >> v[i];
}

bool inline isPrime(ll n)
{
    if (n <= 1)
        return false;
    if (n <= 3)
        return true;
    if (n % 2 == 0 || n % 3 == 0)
        return false;
    for (ll i = 5; i * i <= n; i = i + 6)
        if (n % i == 0 || n % (i + 2) == 0)
            return false;
    return true;
}

template <class T>
T gcd(T a, T b)
{
    if (b == 0)
        return a;
    return gcd(b, a % b);
}

void solve()
{
    ll minl = INT64_MAX, maxl = INT64_MIN;
    ll n, g = 0;
    cin >> n;
    vl a(n);
    rv(a);
    ul sum = 0;
    for (ll i = 0; i < n; i++)
    {
        sum += a[i];
        if (sum < ((i) * (i + 1)) / 2)
        {
            g = 1;
            break;
        }
    }
    if (g == 0)
        yes;
    else
        no;
}
int32_t main()
{
    // a+b = a⊕b + 2*(a&b)
    FAST;
    int t;
    cin >> t;
    for (int z = 1; z <= t; z++)
    {
        solve();
        //cout << "Case #" << z << ": " << k << "\n";
    }
    return 0;
}