#include <iostream>
#include <queue>
#include <vector>
#include <utility>
using namespace std;

long long f(vector<pair<int,int>> a){
    priority_queue<int> que;
    int size=a.size();
    vector<vector<int>> in(size+1);
    for(auto p: a){
        if(p.first>=size){
            que.push(p.second);
        }else{
            in[p.first].emplace_back(p.second);
        }
    }
    long long res=0;
    for(int i=size-1;i>=0;i--){
        if(!que.empty()){
            res+=que.top();
            que.pop();
        }
        for(auto p:in[i]){
            que.push(p);
        }
    }
    return res;
}

int main(){
    int T;
    cin>>T;
    long long ans;

    for(int i=0;i<T;i++){
        int N;
        cin>>N;
        int k,l,r;
        vector<pair<int,int>> front;
        vector<pair<int,int>> end;
        ans=0;
        for(int i=0;i<N;i++){
            cin>>k>>l>>r;
            if(k==N){
                ans+=l;
            }else if(l>r){
                ans+=r;
                front.emplace_back(k,l-r);
            }else{
                ans+=l;
                end.emplace_back(N-k,r-l);
            }
        }

        ans+=f(front);
        ans+=f(end);
        cout<<ans<<endl;

    }

    return 0;
}