#include <bits/stdc++.h>
using namespace std;
long long T;
long long N;
long long K[202020], L[202020], R[202020];
pair<long long, long long> mk2[202020];
long long i, j, k;
long long BIT[1 << 19];
void update(long long x, long long n);
void init(long long n) {
  long long i;
  n += 5;
  for (; n >= 0; --n) {
    BIT[i] = 0;
  }
}
void update(long long x, long long n) {
  ++x;
  for (; x < 1 << 19; x += x & -x) {
    BIT[x] += n;
  }
}
long long val(long long a, long long b) {
  long long i = 1, r = 0;
  ++b;
  for (i = 1; i < (1 << 19); i <<= 1) {
    if (b & i) {
      r += BIT[b];
      b ^= i;
    }
  }
  for (i = 1; i < (1 << 19); i <<= 1) {
    if (a & i) {
      r -= BIT[a];
      a ^= i;
    }
  }
  return r;
}
void qqq() {
  scanf("%lld", &N);
  long long ans = 0;
  vector<pair<long long, long long> > mkl, mkr;
  for (i = 0; i < N; ++i) {
    scanf("%lld%lld%lld", &K[i], &L[i], &R[i]);
    if (L[i] >= R[i]) {
      mkl.push_back({K[i], -abs(L[i] - R[i])});
    } else {
      mkr.push_back({-K[i], -abs(L[i] - R[i])});
    }
    ans += min(L[i], R[i]);
  }
  sort(mkl.begin(), mkl.end());
  sort(mkr.begin(), mkr.end());
  long long C = mkl.size();
  j = 0;
  for (i = 0; i < mkl.size(); ++i) {
    while (j < mkl.size() && i + 1 > mkl[j].first) {
      ++j;
    }
    if (j == mkl.size()) break;
    ans -= mkl[j].second;
    ++j;
  }
  j = 0;
  for (i = 0; i < mkr.size(); ++i) {
    while (j < mkr.size() && N - i <= -mkr[j].first) {
      ++j;
    }
    if (j == mkr.size()) break;
    ans -= mkr[j].second;
    ++j;
  }
  printf("%lld\n", ans);
}
int main() {
  scanf("%lld", &T);
  while (T > 0) {
    qqq();
    --T;
  }
  return 0;
}
