#include <bits/stdc++.h>
using namespace std;
struct typ{
    int a,b,c;
};
bool comon(typ a,typ b){
    return a.a==b.a || a.a==b.b || a.b==b.a || a.b==b.b;
}
void solve(){
    int n;
    cin>>n;
    vector<typ> g;
    for(int i=0;i<n;i++){
        int a,b,c;
        cin>>a>>b>>c;
        a--;b--;
        g.push_back({a,b,c});
    }
    if(n==1){
        cout<<g[0].c<<'\n';
        return; 
    }
    if(n==2){
        if(comon(g[0],g[1])){
            cout<<g[0].c+g[1].c<<'\n';
        }
        else{
            cout<<max(g[0].c,g[1].c)<<'\n';
        }
        return;
    }
    if(n==3){
        int mx=max(g[0].c,max(g[1].c,g[2].c));
        if(comon(g[0],g[1])&&comon(g[0],g[2])&&comon(g[1],g[2])){
            mx=max(mx,g[0].c+g[1].c+g[2].c);
        }
        if(comon(g[0],g[1])){
            mx=max(mx,g[0].c+g[1].c);
        }
        if(comon(g[1],g[2])){
            mx=max(g[0].c+g[2].c,mx);
        }
        if(comon(g[2],g[0])){
            mx=max(mx,g[2].c+g[0].c);
        }
        cout<<mx;
        return;
    }
    vector<vector<int>> gr(2*n);
    vector<set<int>> grs(2*n);
    for(int i=0;i<n;i++){
        auto t=g[i];
        gr[t.a].push_back(i);
        grs[t.a].insert(i);
        grs[t.b].insert(i);
        gr[t.b].push_back(i);
    }
    int mx=-1;
    for(int i=0;i<2*n;i++){
        int s=0;
        for(auto j:gr[i]){
            s+=g[j].c;
        }
        if(mx<s){
            mx=s;
        }
    }
    // cout<<"first :"<<mx<<'\n';
    for(int i=0;i<n;i++){
        auto t=g[i];

        for(auto i2:gr[t.b]){
            if(i2==i){
                continue;
            }
            auto t2=g[i2];
            int other;
            if(t.b==t2.a)
                other=t2.b;
            else
                other=t2.b;
            for(auto i3:gr[other]){
                if(i3==i){
                    continue;
                }
                if(i3==i2){
                    continue;
                }
                if(grs[t.a].count(i3)>0){
                    // cout<<i<<" "<<i2<<" "<<i3<<"\n";
                    mx=max(mx,t.c+t2.c+g[i3].c);
                }
            }
        }
    }
    cout<<mx<<'\n';
}
int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);

    int t;
    cin>>t;
    for(;t>0;t--){
        solve();
    }
}
