#include <bits/stdc++.h>
using namespace std;
int main() {
  int T;
  cin >> T;
  for (int i = 0; i < T; i++) {
    int N;
    cin >> N;
    vector<long long> K(N), L(N), R(N);
    for (int j = 0; j < N; j++) cin >> K[i] >> L[i] >> R[i];
    vector<pair<long long, long long>> l, r;
    long long ans = 0LL;
    for (int j = 0; j < N; j++) {
      if (L[i] > R[i]) {
        ans += R[i];
        l.emplace_back(K[i] - 1, L[i] - R[i]);
      } else {
        ans += L[i];
        r.emplace_back(N - K[i] - 1, R[i] - L[i]);
      }
    }
    sort(l.begin(), l.end());
    sort(r.begin(), r.end());
    priority_queue<long long, vector<long long>, greater<long long>> que;
    for (int j = 0; j < l.size(); j++) {
      if ((int)que.size() <= l[j].first) {
        ans += l[j].second;
        que.push(l[j].second);
      } else {
        if (que.size() == 0) continue;
        if (que.top() < l[j].second) {
          ans -= que.top();
          que.pop();
          ans += l[j].second;
          que.push(l[j].second);
        }
      }
    }
    while (!que.empty()) que.pop();
    for (int j = 0; j < r.size(); j++) {
      if (que.size() <= r[j].first) {
        ans += r[j].second;
        que.push(r[j].second);
      } else {
        if (que.size() == 0)
          continue;
        else {
          if (que.top() < r[j].second) {
            ans -= que.top();
            que.pop();
            ans += r[j].second;
            que.push(r[j].second);
          }
        }
      }
    }
    cout << ans << endl;
  }
}
