#include <bits/stdc++.h>
using namespace std;

const long long MX=7e5+10;

vector < long long > ms[MX];
long long mas[2*MX],ch[2*MX];

map < pair < long long , long long > , long long > mp;

long long fget(long long a,long long b,long long c)
{
    return mp[make_pair(a,b)]+mp[make_pair(b,c)]+mp[make_pair(a,c)];
}

void fun()
{
    mp.clear();

    vector < pair < long long , long long > > al;

    long long n;
    cin>>n;

    for(long long i=2*n;i>=0;i--)
    {
        mas[i]=0;
    }

    for(long long i=1;i<=n;i++)
    {
        long long a,b,c;
        cin>>a>>b>>c;

        if(a>b)
        {
            swap(a,b);
        }

        mp[make_pair(a,b)]=c;
        mp[make_pair(b,a)]=c;

        ms[a].push_back(b);
        ms[b].push_back(a);

        mas[a]+=c;
        mas[b]+=c;

        al.push_back({a,b});
    }

    long long mx=0;
    for(long long i=1;i<=2*n;i++)
    {
        mx=max(mx,mas[i]);
    }

    for(long long i=0;i<n;i++)
    {
        long long a=al[i].first;
        long long b=al[i].second;

        for(auto u:ms[a])
        {
            ch[u]=1;
        }
        
        for(long long u:ms[b])
        {
            if(ch[u] && u!=a)
            {
                mx=max(mx,fget(a,b,u));
            }
        }

        for(auto u:ms[a])
        {
            ch[u]=0;
        }
    }

    cout<<mx<<"\n";
}

int main()
{
    cin.tie(0);
    ios_base::sync_with_stdio(0);

    long long t;
    cin>>t;

    while(t--)
    {
        fun();
    }

    return 0;
}