#include <bits/stdc++.h>   using namespace std;   const double pi = acos(-1.0);   const double eps = 1e-11;   template <class T>   inline void checkmin(T &a, T b) {     if (b < a) a = b;   }   template <class T>   inline void checkmax(T &a, T b) {     if (b > a) a = b;   }   template <class T>   inline T sqr(T x) {     return x * x;   }   template <class T>   inline void bin(T n, int pos) {     T i, one = 1, two = 2;     for (i = (one << (pos - 1)); i > 0; i = (i >> 1))       cout << ((n & i) ?  1  :  0 );     cout << endl;   }   int lsb(unsigned int v) {     int r;     static const int MultiplyDeBruijnBitPosition[32] = {         0,  1,  28, 2,  29, 14, 24, 3, 30, 22, 20, 15, 25, 17, 4,  8,         31, 27, 13, 23, 21, 19, 16, 7, 26, 12, 18, 6,  11, 5,  10, 9};     r = MultiplyDeBruijnBitPosition[((uint32_t)((v & -v) * 0x077CB531U)) >> 27];     return r + 1;   }   template <class T>   inline int msb(T n) {     return (n == 0) ? 0 : (1 + msb(n >> 1));   }   template <class T>   inline T getbit(T n, int pos) {     return ((n & (1 << pos)) ? 1 : 0);   }   template <class T>   inline int countbit(T n) {     return (n == 0) ? 0 : (1 + countbit(n & (n - 1)));   }   template <class T>   inline void setbit(T &n, int p) {     n = n | (1LL << p);   }   template <class T>   inline T gcd(T a, T b) {     if (a < 0) return gcd(-a, b);     if (b < 0) return gcd(a, -b);     return (b == 0) ? a : gcd(b, a % b);   }   bool isequal(vector<int> a, vector<int> b) {     for (int i = 0; i < (a.size()); i++)       if (a[i] != b[i]) return false;     return true;   }   template <class T>   bool allequal(vector<T> a) {     sort(a.begin(), a.end());     return a[0] == a[a.size() - 1];   }   template <class T>   void printarray(vector<T> a) {     for (int i = 0; i < (a.size()); i++) cout << a[i] <<    ;     cout << endl;   }   void printmatrix(vector<vector<int>> a, int n, int m) {     for (int i = 0; i < n; i++) {       for (int j = 0; j < m; j++) {         cout << setw(4) << a[i][j];       }       cout << endl;     }   }   void readmatrix(vector<vector<int>> &a, int n, int m) {     for (int i = 0; i < n; i++) {       for (int j = 0; j < m; j++) {         cin >> a[i][j];       }     }   }   template <class T>   void printsubarray(vector<T> a, int start, int end) {     if (start < 0 or end > a.size() - 1) cout <<  Out of bounds  << endl;     for (int i = start; i <= end; i++) cout << a[i] <<    ;     cout << endl;   }   bool isprime(int n) {     if (n < 2) return false;     if (n == 2) return true;     for (int i = 2; i * i <= n; i++) {       if (n % i == 0) return false;     }     return true;   }   void split(const string &s, char c, vector<string> &result) {     stringstream ss(s);     string x;     while (getline(ss, x, c)) result.push_back(x);   }   void err(vector<string>::iterator it) {}   template <typename T, typename... Args>   void err(vector<string>::iterator it, T a, Args... args) {     cerr << it->substr((*it)[0] ==    , it->length()) <<   =   << a <<   n ;     err(++it, args...);   }   void yup() { cout <<  Yes  << endl; }   void nope() { cout <<  No  << endl; }   void Yup() { cout <<  YES  << endl; }   void Nope() { cout <<  NO  << endl; }   void readarray(vector<int> &a, int size) {     int tmp;     a.clear();     for (int i = 0; i < (size); i++) {       cin >> tmp;       a.push_back(tmp);     }   }   void solvecase() {     int n, m;     int k;     cin >> n;     pair<int, int> g[111];     for (int i = 0; i < n; i++) {       cin >> g[i].first >> g[i].second;     }     bool ok = true;     if (g[0].first < g[0].second) ok = false;     for (int i = 1; i < n; i++) {       if ((g[i].first < g[i - 1].first) or (g[i].second < g[i - 1].second))         ok = false;     }     for (int i = 1; i < n; i++) {       int jumpc = g[i].second - g[i - 1].second;       int jumpp = g[i].first - g[i - 1].first;       if (jumpc > jumpp) ok = false;     }     ok ? Yup() : Nope();   }   int main() {     int cases = 1;     cin >> cases;     while (cases--) {       solvecase();     }     return 0;   }