#include <bits/stdc++.h>
using namespace std;
int t1[500000];
bool t1c[500000];
int t1d = 0;
class SegLine {
 public:
  SegLine(int n) {
    m_n = n;
    m_pos = new int[n];
    for (int i = 0; i < n; i++) m_pos[i] = i;
  }
  ~SegLine() { delete m_pos; }
  bool add(int k) {
    if (m_pos[k] == k) {
      if (k == 0) {
        m_pos[k] = -1;
      } else {
        m_pos[k] = m_pos[k - 1];
      }
      return true;
    }
    if (m_pos[k] < 0) return false;
    bool ret = add(m_pos[k]);
    m_pos[k] = m_pos[m_pos[k]];
    return ret;
  }

 private:
  int m_n;
  int *m_pos;
};
long long sub() {
  int n;
  cin >> n;
  SegLine lline(n);
  SegLine rline(n);
  int *l = new int[n];
  int *r = new int[n];
  int *k = new int[n];
  vector<pair<int, int>> lh;
  vector<pair<int, int>> rh;
  long long ans = 0;
  for (int i = 0; i < n; i++) {
    cin >> k[i] >> l[i] >> r[i];
    k[i]--;
    if (k[i] == n - 1) {
      ans += l[i];
    } else if (l[i] > r[i]) {
      lh.push_back(make_pair(r[i] - l[i], i));
    } else if (l[i] < r[i]) {
      rh.push_back(make_pair(l[i] - r[i], i));
    } else {
      ans += l[i];
    }
  }
  sort(lh.begin(), lh.end());
  sort(rh.begin(), rh.end());
  for (auto itr = lh.begin(); itr != lh.end(); itr++) {
    int i = (*itr).second;
    if (lline.add(k[i])) {
      ans += l[i];
    } else {
      ans += r[i];
    }
  }
  for (auto itr = rh.begin(); itr != rh.end(); itr++) {
    int i = (*itr).second;
    if (lline.add(n - 2 - k[i])) {
      ans += r[i];
    } else {
      ans += l[i];
    }
  }
  return ans;
}
int main() {
  int t;
  cin >> t;
  for (int i = 0; i < t; i++) {
    cout << sub() << endl;
  }
}
