#include <iostream>
#include<bits/stdc++.h>
using namespace std;
int f(vector<int>&arr,int i){
return arr[arr[arr[i]]];
}
int main() {
int t ; cin>>t;
while(t--){
int n ; cin>>n;
vector<int>arr(n+1,0);
for(int i = 1 ; i<=n;i++){
cin>>arr[i];
}
unordered_map<int,int>hash;
int count = 0 ;
for(int i = 1 ; i<=n;i++){
int val = f(arr,i);
if(hash.find(val)!=hash.end()){
count+=hash[val];
}
hash[val]++;
}
cout<<count;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZTxiaXRzL3N0ZGMrKy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IGYodmVjdG9yPGludD4mYXJyLGludCBpKXsKCXJldHVybiBhcnJbYXJyW2FycltpXV1dOwp9CmludCBtYWluKCkgewoJaW50IHQgOyBjaW4+PnQ7Cgl3aGlsZSh0LS0pewoJaW50IG4gOyBjaW4+Pm47Cgl2ZWN0b3I8aW50PmFycihuKzEsMCk7Cglmb3IoaW50IGkgPSAxIDsgaTw9bjtpKyspewoJCWNpbj4+YXJyW2ldOwoJfQoJdW5vcmRlcmVkX21hcDxpbnQsaW50Pmhhc2g7CglpbnQgY291bnQgPSAwIDsgCglmb3IoaW50IGkgPSAxIDsgaTw9bjtpKyspewoJCWludCB2YWwgPSBmKGFycixpKTsKCQlpZihoYXNoLmZpbmQodmFsKSE9aGFzaC5lbmQoKSl7CgkJCWNvdW50Kz1oYXNoW3ZhbF07CgkJfQoJCWhhc2hbdmFsXSsrOwoJfQoJY291dDw8Y291bnQ7Cgl9CglyZXR1cm4gMDsKfQ==