/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
Scanner sc
= new Scanner
(System.
in); int q=sc.nextInt();
for(int j=0; j<q; j++){
int n=sc.nextInt();
int k=sc.nextInt();
int nums[] = new int[n];
for(int i=0; i<n; i++){
nums[i]=sc.nextInt();
}
int res = countDiffOfPairEqualsK(k,nums);
}
}
public static int countDiffOfPairEqualsK(int k,int []nums){
HashMap
<Integer,Integer
> map
= new HashMap
<>(); int cnt=0;
for(int i=0; i<nums.length; i++){
if(map.containsKey( nums[i] + k)){
cnt+=map.get(nums[i] + k);
}
map.put(nums[i], map.getOrDefault(nums[i], 0) + 1);
}
return cnt;
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uewoJCVNjYW5uZXIgc2MgPSBuZXcgU2Nhbm5lcihTeXN0ZW0uaW4pOwoJCWludCBxPXNjLm5leHRJbnQoKTsKCQlmb3IoaW50IGo9MDsgajxxOyBqKyspewoJCQlpbnQgbj1zYy5uZXh0SW50KCk7CgkJCWludCBrPXNjLm5leHRJbnQoKTsKCQkJaW50IG51bXNbXSA9IG5ldyBpbnRbbl07CgkJCWZvcihpbnQgaT0wOyBpPG47IGkrKyl7CgkJCQludW1zW2ldPXNjLm5leHRJbnQoKTsKCQkJfQoJIAoJCQlpbnQgcmVzID0gY291bnREaWZmT2ZQYWlyRXF1YWxzSyhrLG51bXMpOwoJCQlTeXN0ZW0ub3V0LnByaW50bG4ocmVzKTsKCQl9Cn0KIAoJcHVibGljIHN0YXRpYyBpbnQgY291bnREaWZmT2ZQYWlyRXF1YWxzSyhpbnQgayxpbnQgW11udW1zKXsKCQlIYXNoTWFwPEludGVnZXIsSW50ZWdlcj4gbWFwID0gbmV3IEhhc2hNYXA8PigpOwoJCWludCBjbnQ9MDsKCQlmb3IoaW50IGk9MDsgaTxudW1zLmxlbmd0aDsgaSsrKXsKCQkJaWYobWFwLmNvbnRhaW5zS2V5KCBudW1zW2ldICsgaykpewoJCQkJY250Kz1tYXAuZ2V0KG51bXNbaV0gKyBrKTsKCQkJfQoJCQltYXAucHV0KG51bXNbaV0sIG1hcC5nZXRPckRlZmF1bHQobnVtc1tpXSwgMCkgKyAxKTsKCQl9CiAKCQlyZXR1cm4gY250OwogCgl9Cn0=
MTYKNQozCjEgNSAyIDQgMQoxCjAKNwo0CjAKMyAzIDMgMwo2Ci0yCjEgMyA1IDcgOSAxMQo1CjEwCjEgMiAzIDQgNQo0CjAKLTEgLTIgLTMgLTQKNgo1Ci0zIC0xIDAgMiA0IDYKMgoxCjAgMQo1CjEwMAoxMDAgMjAwIDMwMCA0MDAgNTAwCjUKLTUKLTUgLTEwIC0xNSAtMjAgLTI1CjcKMAo0IDQgNCA0IDQgNCA0CjYKMwowIDEgMiAzIDQgNQo0Cjk5OQoxMDAwIDIwMDAgMzAwMCA0MDAwCjUKMQoxIDEgMiAyIDMKOAotMwoxMCA3IDQgMSAtMiAtNSAtOCAtMTEKNgo0Ci02IC0yIDAgMiA0IDYK
16
5
3
1 5 2 4 1
1
0
7
4
0
3 3 3 3
6
-2
1 3 5 7 9 11
5
10
1 2 3 4 5
4
0
-1 -2 -3 -4
6
5
-3 -1 0 2 4 6
2
1
0 1
5
100
100 200 300 400 500
5
-5
-5 -10 -15 -20 -25
7
0
4 4 4 4 4 4 4
6
3
0 1 2 3 4 5
4
999
1000 2000 3000 4000
5
1
1 1 2 2 3
8
-3
10 7 4 1 -2 -5 -8 -11
6
4
-6 -2 0 2 4 6