// divisible subarray using pigeon hole 
#include<iostream>
#include<math.h>
#include<cstring>
#define ll long long
#define size 100000
#define f(i,j,n) for(i=j;i<n;i++) 
#define MOD 1000000007

using namespace std;

int main(){
    int t,n;
    cin>>t;
    while(t--){
        cin>>n;
        int a[n],p[n+1],dup[n]={0};
        p[0]=0;
        dup[0]=1;
        for(int i=0;i<n;i++){
            cin>>a[i];
            p[i+1]=(p[i]+a[i]%n)%n;//taking subarray sum%n;
            dup[p[i+1]]++;
        }
        //subarray created
        // now find all the no.s and take two out of all present duplicates in p[]
        int ans=0,c;
        for(int i=0;i<n;i++){
            c=dup[i];
            if((c>=2)){
                ans+=(c*(c-1)/2);
            }
        }
        cout<<ans<<endl;

    }
    return 0;
}