#include <iostream>
#include <iomanip>
#include <cmath>
#include <vector>
#include <queue>
#include <map>
#include <set>
#include <algorithm>


using namespace std;
#define ll long long
#define endl '\n'
#define itn int
#define fi first
#define se second

const long long oo=1000000000000;
const long long N=1500005;



int main()
{

//    ios_base::sync_with_stdio(0);
//    cin.tie(0);
//    cout.tie(0);


    ll test;
    cin>>test;
    while(test--)
    {

        ll n;
        cin>>n;
        ll a[n];
        ll b[n];
        ll c[n];
        map<pair<ll,ll>,ll>m;
       vector<vector<pair<ll,ll>>>g(n*2+1);
        for(int i=0; i<n; i++)
        {
            cin>>a[i]>>b[i]>>c[i];
            g[a[i]].push_back({c[i],b[i]});
            g[b[i]].push_back({c[i],a[i]});
            m[{a[i],b[i]}]=c[i];
            m[{b[i],a[i]}]=c[i];

        }
        ll mx=0;
        for(itn i=1; i<=2*n; i++)
        {
            if(g[i].size()==1)
            {
                mx=max(mx,g[i][0].fi);
            }
            else  if(g[i].size()==2)
            {
//                cout<<mx;
                if(m.count({g[i][0].se,g[i][1].se})!=0 )
                  //  cout<<g[i][0].se<<" "<<g[i][1].se<<" ";
                mx=max(mx,m[{g[i][0].se,g[i][1].se}]+g[i][0].fi+g[i][1].fi);
//
//                 {
//                        mx=max(mx,g[i][0].fi);
//                  mx=max(mx,g[i][1].fi);
//                 }
 mx=max(mx,g[i][0].fi);
 mx=max(mx,g[i][1].fi);

            }
            //cout<<mx<<endl;

        }
        cout<<mx;

    }

}

//1
//6
//1 2 1
//2 3 2
//3 1 3
//4 5 4
//5 6 2
//6 4 1
