#include <bits/stdc++.h>
using namespace std;
long long T, t, ma, n, i, m[600007], a, b, c, d, C[600007], xs, ys;
pair<long long, long long> mx[600007], my[600007];
map<long long, long long> iscon[600007];

long long f(long long x, long long y){
    long long c=0;
    long long c1=1;
    long long c2=1;
    long long ansxy=-1;
    for(auto k : iscon[x+d]){
        c++;
        mx[c].first=k.first;
        mx[c].second=k.second;
    }
    c=0;
    for(auto k : iscon[y+d]){
        c++;
        my[c].first=k.first;
        my[c].second=k.second;
    }
    xs=iscon[x+d].size();
    ys=iscon[y+d].size();
    while(1){


        if(mx[c1].first<my[c2].first)c1++;
        else if(mx[c1].first>my[c2].first)c2++;
        if(c1>xs){
            break;
        }
        if(c2>ys){
            break;
        }
        if(mx[c1].first==my[c2].first){
            ansxy=max(mx[c1].second+my[c2].second+C[i], ansxy);
            c1++; c2++;
        }
    }
    return ansxy;
}

int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    
    d=0;
    cin>>T;
    for(t=1;t<=T; t++){
        ma=0;
        d+=2*n;
        for(i=1;i<=2*n; i++){
            m[i]=0; 
        }
        cin>>n;
        for(i=1;i<=n;i++){
            cin>>a>>b>>c;
            C[i]=c;
            iscon[a+d][b]=c;
            iscon[b+d][a]=c;
            m[a]+=c; m[b]+=c;
            ma=max({ma, m[a], m[b], f(a, b)});
        }
        cout<<ma<<endl;
    }
}
