import java.util.*;
import java.lang.*;
import java.io.*;
class Codechef
{
{
// your code goes here
Scanner sc
=new Scanner
(System.
in); int t=sc.nextInt();
while(t-->0){
int n=sc.nextInt();
int k=sc.nextInt();
int[] ar=new int[n+1];
for(int i=1;i<=n;i++){
ar[i]=sc.nextInt();
}
int cnt=avgK(ar,k);
}
sc.close();
}
public static int avgK(int[]nums,int k){
int []prefix=new int[nums.length];
for(int i=1;i<nums.length;i++){
prefix[i]=prefix[i-1]+nums[i];
}
int cnt=0;
HashMap
<Integer,Integer
> map
=new HashMap
<>(); map.put(-k,1);
for(int j=1;j<nums.length;j++){
int rhs=prefix[j]-k*j-k;
cnt+=map.getOrDefault(rhs,0);
int lhs=prefix[j]-k*(j+1);
map.put(lhs,map.getOrDefault(lhs,0)+1);
}
return cnt;
}
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgpjbGFzcyBDb2RlY2hlZgp7CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCQkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCgkJU2Nhbm5lciBzYz1uZXcgU2Nhbm5lcihTeXN0ZW0uaW4pOwoJCWludCB0PXNjLm5leHRJbnQoKTsKCQl3aGlsZSh0LS0+MCl7CgkJICAgIGludCBuPXNjLm5leHRJbnQoKTsKCQkgICAgaW50IGs9c2MubmV4dEludCgpOwoJCSAgICBpbnRbXSBhcj1uZXcgaW50W24rMV07CgkJICAgIGZvcihpbnQgaT0xO2k8PW47aSsrKXsKCQkgICAgICAgIGFyW2ldPXNjLm5leHRJbnQoKTsKCQkgICAgfQoJCSAgICBpbnQgY250PWF2Z0soYXIsayk7CgkJICAgIFN5c3RlbS5vdXQucHJpbnRsbihjbnQpOwoJCX0KCQlzYy5jbG9zZSgpOwoJfQoJcHVibGljIHN0YXRpYyBpbnQgYXZnSyhpbnRbXW51bXMsaW50IGspewoJICAgIGludCBbXXByZWZpeD1uZXcgaW50W251bXMubGVuZ3RoXTsKCSAgICBmb3IoaW50IGk9MTtpPG51bXMubGVuZ3RoO2krKyl7CgkgICAgICAgIHByZWZpeFtpXT1wcmVmaXhbaS0xXStudW1zW2ldOwoJICAgIH0KCSAgICBpbnQgY250PTA7CgkgICAgSGFzaE1hcDxJbnRlZ2VyLEludGVnZXI+IG1hcD1uZXcgSGFzaE1hcDw+KCk7CgkgICAgbWFwLnB1dCgtaywxKTsKCSAgICBmb3IoaW50IGo9MTtqPG51bXMubGVuZ3RoO2orKyl7CgkgICAgICAgIGludCByaHM9cHJlZml4W2pdLWsqai1rOwoJICAgICAgICBjbnQrPW1hcC5nZXRPckRlZmF1bHQocmhzLDApOwoJICAgICAgICBpbnQgbGhzPXByZWZpeFtqXS1rKihqKzEpOwoJICAgICAgICBtYXAucHV0KGxocyxtYXAuZ2V0T3JEZWZhdWx0KGxocywwKSsxKTsKCSAgICB9CgkgICAgcmV0dXJuIGNudDsKCX0KfQo=