#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
typedef long long lg;
#define cp copy (N.begin(), N.end(), u);
lg find_m(vector <lg>& N)
{
    lg m=1000000000;
    for (lg i=0; i!=N.size(); i++)
    {
        if (N[i]<m)
            m=N[i];
    }
    return m;
}
lg find_mx(vector <lg>& N)
{
    lg m=-1000000000;
    for (lg i=0; i!=N.size(); i++)
    {
        if (N[i]>m)
            m=N[i];
    }
    return m;
}
bool ost(lg x, lg y)
{
    bool b;
    if (x%y==0)
        b=true;
    else
        b=false;
    return b;
}

int main()
{
    lg n, t, a, b, c;
    cin>>t;
    vector <lg> V;
    vector <lg> S;
    for (lg T=0; T!=t; T++)
    {
        S.clear();
        cin>>n;
        vector <vector <lg>> N(2*n+1, vector <lg> (2*n+1));
        for (lg i=0; i!=n; i++)
        {
            cin>>a>>b>>c;
            N[a][b]=c;
        }
        for (lg x=1; x!=2*n+1; x++)
        {
            for (lg y=x+1; y!=2*n+1; y++)
            {
                lg s=0;
                for (lg i=x, j=y; j!=2*n+1; j++)
                {
                    if (N[i][j]!=0)
                    {
                        s+=N[i][j];
                        i=j;
                    }
                }
                S.push_back(s);
            }
        }
        V.push_back(find_mx(S));
        N.clear();
    }
    for (lg i:V)
    {
        cout<<i<<endl;
    }
}