#include<bits/stdc++.h>
using namespace std;
typedef long long int lli;
typedef long int li;
typedef long  double lld;
typedef long double ld;

typedef vector<lli> vlli;
typedef vector<li> vli;
typedef vector<int> vi;
typedef vector<lld> vlld;
typedef vector<ld> vld;
/*
int  root(int n)
{
    lli l(1),r{n};
    while(l<=r)
    {
        lli mid{};
        mid=(l+r)/2;
        if(mid*mid==n)
        {
            return mid;
        }
        {
            if(mid*mid<n&&(mid+1)*(mid+1)>n)
            {
                return mid;
            }
            else
            {
                if(mid*mid<n)
                    l=mid
                else r=mid;
            }
        }

    }
}
*/

int main()
{
    lli t{};
    cin>>t;
    while(t--)
    {
       lli n{},k{};
       cin>>n>>k;
       vlli a(n);
       for(lli i=0;i<n;i++)
       {
           cin>>a[i];
       }
       lli mheight{a[0]};
       lli minheight{a[0]};
       lli flag{};
       for(lli i=1;i<n;i++)
       {


          mheight=min(a[i]+k-1,mheight+k-1);
          minheight=max(a[i],minheight-k+1);
          if(minheight>mheight)
          {   flag=1;
              cout<<"NO"<<endl;
              break;
          }



       }
          if(flag!=1)
          {
           if(minheight<=a[n-1])
            cout<<"Yes";
            else
            cout<<"No";
          }

       cout<<endl;




    }
    return 0;


}

