#include <bits/stdc++.h>
using namespace std;
struct C {
  long long k, l;
};
vector<C> a, b;
int main() {
  int tt, T;
  scanf("%d", &T);
  for (tt = 1; tt <= T; ++tt) {
    int n;
    scanf("%d", &n);
    a.clear();
    b.clear();
    long long ans = 0;
    for (int i = 0; i < n; ++i) {
      long long x, y, z;
      scanf("%lld%lld%lld", &x, &y, &z);
      if (x == n || y == z) {
        ans += y;
        continue;
      }
      long long t = min(y, z);
      ans += t;
      y -= t;
      z -= t;
      if (z == 0)
        a.push_back({x, y});
      else
        b.push_back({x, z});
    }
    sort(a.begin(), a.end(), [&](C &a, C &b) -> bool {
      return a.k == b.k ? a.l > b.l : a.k < b.k;
    });
    sort(b.begin(), b.end(), [&](C &a, C &b) -> bool {
      return a.k == b.k ? a.l > b.l : a.k > b.k;
    });
    int l = 0, r = n - 1, p = 0, q = 0;
    while (p < a.size() && q < b.size()) {
      auto c1 = a[p], c2 = b[q];
      if (c1.l >= c2.l) {
        if (l < c1.k) {
          ++l;
          ans += c1.l;
        }
        ++p;
      } else if (c1.l < c2.l) {
        if (r >= c2.k) {
          --r;
          ans += c2.l;
        }
        ++q;
      }
    }
    while (p < a.size()) {
      if (l < a[p].k) {
        ++l;
        ans += a[p].l;
      }
      ++p;
    }
    while (q < b.size()) {
      if (r >= b[q].k) {
        --r;
        ans += b[q].l;
      }
      ++q;
    }
    printf("%lld\n", ans);
  }
}
