#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:2000000000")
using namespace std;
vector<long long> used, parent, a, cnt_child;
struct edge {
  long long idx, st;
};
bool cmp(long long x, long long y) { return a[x] > a[y]; }
bool fl = true;
void dfs(long long start, long long p, vector<vector<long long> >& g,
         long long h) {
  used[start] = 1;
  parent[start] = p;
  for (auto i : g[start]) {
    if (!used[i]) {
      dfs(i, start, g, h + 1);
      cnt_child[start] += cnt_child[i] + 1;
    }
  }
  if (cnt_child[start] + h > g[start].size()) {
    fl = false;
  }
}
signed main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  long long t;
  cin >> t;
  while (t--) {
    long long n;
    cin >> n;
    vector<long long> a(n);
    for (long long i = 0; i < n; ++i) {
      cin >> a[i];
    }
    long long l = n + 1, r = -1;
    for (long long i = 0; i < n; ++i) {
      if (a[i] < i) {
        l = i - 1;
        break;
      }
    }
    for (long long i = n - 1; i >= 0; --i) {
      if (a[i] < (n - i - 1)) {
        r = i + 1;
        break;
      }
    }
    if (l >= r) {
      cout << "Yes\n";
    } else {
      cout << "No\n";
    }
  }
}
