#include <bits/stdc++.h>
using namespace std;
const int maxn = 1000, maxt = maxn * maxn;
int te, n, a[maxn + 5], m, b[maxn + 5], f[maxt + 5], c[maxn + 5], ti,
    vis[maxn + 5];
bool Make(int *a, bool fl) {
  int C = 0;
  for (int i = 1; i <= n; i++) C += a[i];
  if (C & 1) return false;
  C >>= 1;
  f[0] = true;
  for (int i = 1; i <= C; i++) f[i] = 0;
  for (int i = 1; i <= n; i++)
    for (int j = C; j >= a[i]; j--)
      if (!f[j] && f[j - a[i]]) f[j] = i;
  if (!f[C]) return false;
  c[0] = 0;
  ti++;
  for (int x = C; x; x -= a[f[x]]) c[++c[0]] = a[f[x]], vis[f[x]] = ti;
  int cnt = c[0];
  for (int i = 1; i <= n; i++)
    if (vis[i] < ti) c[++c[0]] = a[i];
  if ((cnt <= (n >> 1)) ^ fl) {
    int j = 0;
    for (int i = 1; i <= cnt; i++) a[++j] = c[i];
    for (int i = cnt + 1; i <= n; i++) a[++j] = c[i];
    a[0] = cnt;
  } else {
    int j = 0;
    for (int i = cnt + 1; i <= n; i++) a[++j] = c[i];
    for (int i = 1; i <= cnt; i++) a[++j] = c[i];
    a[0] = n - cnt;
  }
  return true;
}
inline bool cmp(const int &a, const int &b) { return a > b; }
int main() {
  for (scanf("%d", &te); te; te--) {
    scanf("%d", &n);
    for (int i = 1; i <= n; i++) scanf("%d", &a[i]);
    scanf("%d", &m);
    for (int i = 1; i <= m; i++) scanf("%d", &b[i]);
    if (n != m || !Make(a, 0) || !Make(b, 1)) {
      puts("No");
      continue;
    }
    sort(a + 1, a + a[0] + 1, cmp);
    sort(a + a[0] + 1, a + n + 1, cmp);
    sort(b + 1, b + b[0] + 1);
    sort(b + b[0] + 1, b + n + 1);
    puts("Yes");
    int x = 0, y = 0;
    for (int i = 1; i <= a[0]; i++)
      printf("%d %d\n", x += a[i], y), printf("%d %d\n", x, y += b[i]);
    for (int i = a[0] + 1; i <= b[0]; i++)
      printf("%d %d\n", x -= a[i], y), printf("%d %d\n", x, y += b[i]);
    for (int i = b[0] + 1; i <= n; i++)
      printf("%d %d\n", x -= a[i], y), printf("%d %d\n", x, y -= b[i]);
  }
  return 0;
}
