/*   _   _     _     _                              
    __  __ ___     ___  ___  ___  ___ _____ 
 |  \/  | _ \   | _ \/ _ \| _ )/ _ \_   _|
 | |\/| |   /_  |   / (_) | _ \ (_) || |  
 |_|  |_|_|_(_) |_|_\___/|___/\___/ |_|  
                                           */
#include<bits/stdc++.h>
#define ll long long
#define MAX 1000003
#define MOD 1000000007
#define nl cout<<"\n";
#define int ll
#define float double	

ll mini(ll a,ll b){
	if(a<b) return a;
	return b;
}

ll maxi(ll a,ll b){
	if(a>b) return a;
	return b;
}

using namespace std;


void solve(){
	int temp;
	
	int n;
	cin>>n;

	vector<int> s(n);
	for(auto &it : s)cin>>it;

	int carry=0;
	for(int i=0;i<n;i++){
		if(s[i]<i){
			int diff = i-s[i];
			if(carry>=diff){
				carry-=diff;
			}
			else{
				cout<<"NO";nl;
				return;
			}
		}
		else{
			carry+=s[i]-i;
		}
	}

	cout<<"YES";nl;return;

}

signed main(){
		ios_base::sync_with_stdio(false);
	    cin.tie(NULL);
	    cout.tie(0);
		int t=1; 
		
		cin>>t;
		 
		while(t--){
			solve();

		}
		
		return 0;
}		