from collections import *
tc = int(input())
for _ in range(tc):
input()
l = [x - i for i, x in enumerate(map(int, input().split()))]
g = Counter(l)
ans = 0
for k in g:
ans += (g[k] * (g[k]-1)) // 2
print(ans)
#include <iostream>
#include <cmath>
#include <string>
#include <algorithm>
#include <numeric>
#include <vector>
#include <set>
#include <map>
#include <queue>
using namespace std;
#define ll long long
ll change(int n){
return 1LL * n*(n-1)/2;
}
void solve(){
int n;
cin >> n;
map<int,int> freq;
for(int i = 0; i < n; i++){
int x; cin >> x;
x -= i;
freq[x]++;
}
ll ans = 0;
for(auto it = freq.begin(); it != freq.end(); it++){
ans += change((*it).second);
}
cout << ans << "\n";
}
int main(){
ios::sync_with_stdio(0);cin.tie(0);
int t = 1; cin >> t;
while(t--) solve();
}
145. Binary Tree Postorder Traversal | 94. Binary Tree Inorder Traversal |
101. Symmetric Tree | 77. Combinations |
46. Permutations | 226. Invert Binary Tree |
112. Path Sum | 1556A - A Variety of Operations |
136. Single Number | 169. Majority Element |
119. Pascal's Triangle II | 409. Longest Palindrome |
1574A - Regular Bracket Sequences | 1574B - Combinatorics Homework |
1567A - Domino Disaster | 1593A - Elections |
1607A - Linear Keyboard | EQUALCOIN Equal Coins |
XOREQN Xor Equation | MAKEPAL Weird Palindrome Making |
HILLSEQ Hill Sequence | MAXBRIDGE Maximise the bridges |
WLDRPL Wildcard Replacement | 1221. Split a String in Balanced Strings |
1002. Find Common Characters | 1602A - Two Subsequences |
1555A - PizzaForces | 1607B - Odd Grasshopper |
1084A - The Fair Nut and Elevator | 1440B - Sum of Medians |