#include <bits/stdc++.h>
using namespace std;
void solve() {
  int n;
  cin >> n;
  vector<int> k(n + 1), l(n + 1), r(n + 1);
  vector<int> f, s;
  for (int i = 1; i <= n; i++) {
    cin >> k[i] >> l[i] >> r[i];
    if (l[i] >= r[i])
      f.push_back(i);
    else
      s.push_back(i);
  }
  long long ans = 0;
  set<pair<int, int> > st;
  sort(f.begin(), f.end(), [&](int x, int y) { return k[x] < k[y]; });
  for (int i = 0; i < f.size(); i++) {
    int id = f[i];
    if (st.size() < k[id]) {
      st.insert({l[id], id});
    } else {
      if (st.empty()) {
        ans += r[id];
        continue;
      }
      pair<int, int> p = *st.begin();
      if (p.first < l[id]) {
        ans += r[p.second];
        st.erase(st.begin());
        st.insert({l[id], id});
      }
    }
  }
  while (!st.empty()) {
    pair<int, int> p = *st.begin();
    ans += p.first;
    st.erase(st.begin());
  }
  sort(s.begin(), s.end(), [&](int x, int y) { return k[x] > k[y]; });
  for (int i = 0; i < s.size(); i++) {
    int id = s[i];
    if (st.size() < (n - k[id])) {
      st.insert({r[id], id});
    } else {
      if (st.empty()) {
        ans += l[id];
        continue;
      }
      pair<int, int> p = *st.begin();
      if (p.first < r[id]) {
        ans += l[p.second];
        st.erase(st.begin());
        st.insert({r[id], id});
      }
    }
  }
  while (!st.empty()) {
    pair<int, int> p = *st.begin();
    st.erase(st.begin());
    ans += p.first;
  }
  cout << ans << endl;
}
int main() {
  int tt;
  cin >> tt;
  while (tt--) solve();
}
