#include <bits/stdc++.h>
using namespace std;
struct node {
  int lnkto, id, flag;
} a[202];
bool cmp(node x, node y) {
  return x.lnkto < y.lnkto || (x.lnkto == y.lnkto && x.id < y.id);
}
bool cmp2(node x, node y) { return x.id < y.id; }
bool cmp3(node x, node y) {
  return x.flag < y.flag || (x.flag == y.flag && x.id < y.id);
}
bool check(int x, int y) {
  return (a[x].id < a[y].id && a[y].id < a[x].lnkto && a[x].lnkto < a[y].lnkto);
}
void solve() {
  int t, n, k, x, y, ans = 0;
  scanf("%d%d", &n, &k);
  for (int i = 1; i <= 2 * n; i++) {
    a[i].lnkto = 0;
    a[i].id = i;
    a[i].flag = 0;
  }
  for (int i = 1; i <= k; i++) {
    scanf("%d%d", &x, &y);
    a[x].lnkto = y;
    a[y].lnkto = x;
  }
  sort(a + 1, a + 2 * n + 1, cmp);
  int cnt = n - k;
  for (int i = 1; i <= n - k; i++) {
    a[i].lnkto = a[n - k + i].id;
    a[n - k + i].lnkto = a[i].id;
  }
  sort(a + 1, a + 2 * n + 1, cmp2);
  for (int i = 1; i <= 2 * n; i++) {
    if (a[i].flag == 0) a[a[i].lnkto].flag = 1;
  }
  sort(a + 1, a + 2 * n + 1, cmp3);
  for (int i = 1; i + 1 <= n; i++) {
    for (int j = i + 1; j <= n; j++) {
      ans += check(i, j);
    }
  }
  printf("%d\n", ans);
}
int main(void) {
  int T = 1;
  scanf("%d", &T);
  while (T--) {
    solve();
  }
  return 0;
}
