#include <bits/stdc++.h>
using namespace std;
const long long mod = 1000000007;
const int INF = 0x3f3f3f3f;
long long gcd(long long a, long long b) { return b ? gcd(b, a % b) : a; }
template <class T>
inline void gmax(T &A, T B) {
  (A < B) && (A = B);
}
template <class T>
inline void gmin(T &A, T B) {
  (A > B) && (A = B);
}
template <class T>
inline bool scan_d(T &ret) {
  char c;
  int sgn;
  if (c = getchar(), c == EOF) return 0;
  while (c != '-' && (c < '0' || c > '9')) c = getchar();
  sgn = (c == '-') ? -1 : 1;
  ret = (c == '-') ? 0 : (c - '0');
  while (c = getchar(), c >= '0' && c <= '9') ret = ret * 10 + (c - '0');
  ret *= sgn;
  return 1;
}
inline void outt(int x) {
  if (x > 9) outt(x / 10);
  putchar(x % 10 + '0');
}
const int MAXN = 1e6 + 10;
int main() {
  int t;
  int x, y;
  cin >> t;
  while (t--) {
    scanf("%d%d", &x, &y);
    if (x * 3 + 1 < y) {
      puts("NO");
      continue;
    }
    if (y * 3 + 1 < x) {
      puts("NO");
      continue;
    }
    puts("YES");
    if (x < y) {
      for (int i = 1; i <= x; i++) {
        printf("%d 2\n", i * 2 + 1);
      }
      for (int i = 1; i <= x - 1; i++) {
        if (y) {
          --y;
          printf("%d 2\n", (i + 1) * 2);
        } else {
          break;
        }
      }
      for (int i = 1; i <= x; i++) {
        if (y) {
          --y;
          printf("%d 1\n", i * 2 + 1);
        } else {
          break;
        }
      }
      for (int i = 1; i <= x; i++) {
        if (y) {
          --y;
          printf("%d 3\n", i * 2 + 1);
        } else {
          break;
        }
      }
      if (y) {
        --y;
        printf("2 2\n");
      }
      if (y) {
        --y;
        printf("%d 2\n", (x + 1) * 2);
      }
    } else {
      swap(x, y);
      for (int i = 1; i <= x; i++) {
        printf("%d 2\n", i * 2);
      }
      for (int i = 1; i <= x - 1; i++) {
        if (y) {
          --y;
          printf("%d 2\n", i * 2 + 1);
        } else {
          break;
        }
      }
      for (int i = 1; i <= x; i++) {
        if (y) {
          --y;
          printf("%d 1\n", i * 2);
        } else {
          break;
        }
      }
      for (int i = 1; i <= x; i++) {
        if (y) {
          --y;
          printf("%d 3\n", i * 2);
        } else {
          break;
        }
      }
      if (y) {
        --y;
        printf("1 2\n");
      }
      if (y) {
        --y;
        printf("%d 2\n", x * 2 + 1);
      }
    }
  }
  return 0;
}
