#include<bits/stdc++.h>
#include<string>
#define N 1000000007
#define INF 1e9
#define pi acos(-1)
#define ll long long
#define endl "\n"
#define pb push_back
#define F first
#define S second
#define bug(x) cout<<x<<"* ";
#define mem(name,value) memset(name, value, sizeof(name))
#define decimal(x) fixed<<setprecision(x)
#define fastio ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL)
using namespace std;
ll a[200005]={0};
ll pre[200005]={0};
int main()
{
fastio;
ll t,tc=1; cin>>t;
while(t--)
{
ll n,k; cin>>n>>k;
ll a[n+5];
for(int i=0; i<n; i++)
cin>>a[i];
set<ll> s;
ll ans=0,p=0;
s.insert(INT_MAX);
s.insert(INT_MIN);
for(int i=0; i<n-1; i++)
{
while(p<n)
{
if(s.find(a[p])!=s.end())
break;
auto it=s.upper_bound(a[p]);
if(*it-a[p]>=k && a[p]-*(--it)>=k)
{
s.insert(a[p]);
p++;
}
else break;
}
ans+=((p-1)-i);
s.erase(a[i]);
}
cout<<ans<<endl;
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2luY2x1ZGU8c3RyaW5nPgojZGVmaW5lIE4gICAgICAgICAgICAgICAgMTAwMDAwMDAwNwojZGVmaW5lIElORiAgICAgICAgICAgICAgMWU5CiNkZWZpbmUgcGkgICAgICAgICAgICAgICBhY29zKC0xKQojZGVmaW5lIGxsICAgICAgICAgICAgICAgbG9uZyBsb25nCiNkZWZpbmUgZW5kbCAgICAgICAgICAgICAiXG4iCiNkZWZpbmUgcGIgICAgICAgICAgICAgICBwdXNoX2JhY2sKI2RlZmluZSBGICAgICAgICAgICAgICAgIGZpcnN0CiNkZWZpbmUgUyAgICAgICAgICAgICAgICBzZWNvbmQKI2RlZmluZSBidWcoeCkgICAgICAgICAgIGNvdXQ8PHg8PCIqICI7CiNkZWZpbmUgbWVtKG5hbWUsdmFsdWUpICBtZW1zZXQobmFtZSwgdmFsdWUsIHNpemVvZihuYW1lKSkKI2RlZmluZSBkZWNpbWFsKHgpICAgICAgIGZpeGVkPDxzZXRwcmVjaXNpb24oeCkKI2RlZmluZSBmYXN0aW8gICAgICAgICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOyBjaW4udGllKE5VTEwpOyBjb3V0LnRpZShOVUxMKQp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKbGwgYVsyMDAwMDVdPXswfTsKbGwgcHJlWzIwMDAwNV09ezB9OwoKCmludCBtYWluKCkKewogICAgZmFzdGlvOwogICAgbGwgdCx0Yz0xOyBjaW4+PnQ7CiAgICB3aGlsZSh0LS0pCiAgICB7CiAgICAgICAgbGwgbixrOyBjaW4+Pm4+Pms7CgogICAgICAgIGxsIGFbbis1XTsKICAgICAgICBmb3IoaW50IGk9MDsgaTxuOyBpKyspCiAgICAgICAgICAgIGNpbj4+YVtpXTsKCiAgICAgICAgc2V0PGxsPiBzOwogICAgICAgIGxsIGFucz0wLHA9MDsKICAgICAgICBzLmluc2VydChJTlRfTUFYKTsKICAgICAgICBzLmluc2VydChJTlRfTUlOKTsKICAgICAgICBmb3IoaW50IGk9MDsgaTxuLTE7IGkrKykKICAgICAgICB7CiAgICAgICAgICAgIHdoaWxlKHA8bikKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYocy5maW5kKGFbcF0pIT1zLmVuZCgpKQogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBhdXRvIGl0PXMudXBwZXJfYm91bmQoYVtwXSk7CgogICAgICAgICAgICAgICAgaWYoKml0LWFbcF0+PWsgJiYgYVtwXS0qKC0taXQpPj1rKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHMuaW5zZXJ0KGFbcF0pOwogICAgICAgICAgICAgICAgICAgIHArKzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgYnJlYWs7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGFucys9KChwLTEpLWkpOwogICAgICAgICAgICBzLmVyYXNlKGFbaV0pOwogICAgICAgIH0KCiAgICAgICAgY291dDw8YW5zPDxlbmRsOwogICAgfQogICAgCiAgICByZXR1cm4gMDsKfQ==