#include<bits/stdc++.h>
using namespace std;
struct mn{
long long v,sum;
};
long long jk,t,n,ans,s[200005];
vector<mn> a[200005];
int dfs(int x,int fa,long long vis){
if(a[x].size()==1){
return vis;
}
for(int i=0;i<a[x].size();i++){
if(fa==a[x][i].v) continue;
s[x]+=dfs(a[x][i].v,x,a[x][i].sum);
}
return min(s[x],vis);
}
int dfs1(int x,int fa,long long vis){
if(a[x].size()==1){
s[x]+=min(s[fa]-vis,vis);
ans=max(ans,s[x]);
return 0;
}
for(int i=0;i<a[x].size();i++){
if(fa==a[x][i].v) continue;
dfs1(a[x][i].v,x,a[x][i].sum);
}
s[x]+=min(s[fa]-min(s[x],vis),vis);
ans=max(ans,s[x]);
return 0;
}
int main(){
s[0]=0;
cin>>t;
while(t--){
ans=0;
jk=0;
cin>>n;
for(int i=1;i<n;++i){
int x,y,z;
scanf("%d%d%d",&x,&y,&z);
a[x].push_back({y,z});
a[y].push_back({x,z});
s[i]=0;
}
s[n]=0;
for(int i=1;i<=n;++i){
if(a[i].size()>1){
dfs(i,0,0);
dfs1(i,0,0);
jk=1;
break;
}
}
if(jk==0){
cout<<a[1][0].sum<<'\n';
}else{
cout<<ans<<'\n';
}
for(int i=1;i<=n;++i){
a[i].clear();
}
}
return 0;
}