#include <bits/stdc++.h>
 
using namespace std;
 
const int N = 201000;
 
int n,t; 
int p[N],cnt[N];
 
 
struct Node
{
    int x,y,z;
}st[N]; 
 
bool cmp(Node a,Node b)
{
    return a.z<b.z;
}
 
int find(int x)
{
    if(p[x]!=x) p[x]=find(p[x]);
    return p[x];
}
 
void Kruskal()
{
    int res=0;
 
    for(int i=0;i<n-1;i++)
    {
        int a=st[i].x,b=st[i].y,c=st[i].z;
 
        a=find(a),b=find(b);
 
        if(a!=b)
        {
            res+=(cnt[a]*cnt[b]-1)*(c+1); 
        	cnt[b]+=cnt[a];
            p[a]=b;
        }
    }
    cout<<res<<'\n';
}
 
int main()
{
    cin>>t;
    while(t--)
    {
    	cin>>n;
	    for(int i=1;i<=n;i++) p[i]=i,cnt[i]=1;
	 
	    for(int i=0;i<n-1;i++)
	    {
	        cin>>st[i].x>>st[i].y>>st[i].z;
	    }
	 
	    sort(st,st+n-1,cmp);
	 
	    Kruskal();
	}
 
    return 0;
}