#include <bits/stdc++.h>
using namespace std;
int maxn = 2e2 + 1;
vector<int> f(maxn), g(maxn);
int gg = 0;
void add(int i) {
  for (; i < maxn; i = (i | (i + 1))) {
    f[i]++;
  }
  return;
}
void add_(int i) {
  gg++;
  for (; i < maxn; i = (i | (i + 1))) {
    g[i]++;
  }
  return;
}
int get_(int i) {
  int ans = gg;
  i--;
  for (; i >= 0; i = (i & (i + 1)) - 1) {
    ans -= g[i];
  }
  return ans;
}
int get(int i) {
  int ans = 0;
  for (; i >= 0; i = (i & (i + 1)) - 1) {
    ans += f[i];
  }
  return ans;
}
int32_t main() {
  int t;
  cin >> t;
  for (; t; t--) {
    int n;
    cin >> n;
    vector<int> k(n), l(n), r(n);
    vector<pair<int, int>> vl(n);
    for (int i = 0; i < n; i++) {
      cin >> k[i] >> l[i] >> r[i];
      k[i]--;
      vl[i] = {(l[i] - r[i]), i};
    }
    sort(vl.rbegin(), vl.rend());
    int ans = 0;
    set<int> q;
    for (int i = 0; i < n; i++) q.insert(i);
    for (int i = 0; i < n; i++) {
      if (vl[i].first <= 0) break;
      int id = vl[i].second;
      auto t = upper_bound(q.begin(), q.end(), k[id]);
      if (t == q.begin()) {
        ans += r[id];
      } else {
        ans += l[id];
        t--;
        q.erase(t);
      }
    }
    for (int i = 0; i < n; i++) q.insert(i);
    for (int i = n - 1; i >= 0; i--) {
      if (vl[i].first > 0) break;
      int id = vl[i].second;
      auto t = upper_bound(q.begin(), q.end(), k[id]);
      if (t == q.end())
        ans += l[id];
      else {
        ans += r[id];
        q.erase(t);
      }
    }
    cout << ans << '\n';
  }
  return 0;
}
