#include <bits/stdc++.h>

using namespace std;
using llong = long long;
using ldbl = long double;
using lpair = pair<llong, llong>;
using llpair = pair<llong, lpair>;

#define ALL(x) x.begin(), x.end()

constexpr llong mod = 1e9+7;
constexpr llong inf = mod * mod;

int main() {
  llong T;
  cin >> T;
  for (int i = 0; i < T; i++) {
    llong N;
    vector<vector<llpair>> v;

    cin >> N;
    v.resize(N + 1);
    for (int j = 0; j < N; ++j) {
      llong K, L, R;
      cin >> K >> L >> R;
      v[K].push_back(llpair(L - R, lpair(L, R)));
    }

    llong ans = 0;
    priority_queue<llong> after;
    llong filled = 0;
    for (int j = 1; j <= N; ++j) {
      sort(ALL(v[j]), greater<>());

      for (int k = 0; k < v[j].size() && after.size(); k++) {
        if (after.top() > 0) {
          ans += after.top();
          after.pop();
        }
      }
      for (auto vv: v[j]) {
        llong L = vv.second.first;
        llong R = vv.second.second;
        if (filled < j) {
          ans += L;
          after.push(R - L);
          filled++;
        }
        else {
          ans += R;
        }
      }
    }

    cout << ans << endl;
  }

  return 0;
}

/*

前から埋めて、後から交換したい

j に牛1 を入れ、j 以前の 牛2 と交換しても牛1 のスコアには影響がない

前が全て埋まっている & j に入れたい牛が複数いるとき、swap できない = R に固定される牛がでてくる
-> L から R に変えたときの減少分 L - R が大きい牛を選ぶ

*/