#include <bits/stdc++.h>
using namespace std;
vector<pair<int , int> > G[50005];
int bfs1(int x){
queue<pair<int , long long> > q;
bool visited[50005];
fill(visited,visited+50000,false);
q.push(make_pair(x , 0));
long long d=0 ; int node = x;
pair<int , long long> temp;
while(!q.empty()){
temp = q.front(); q.pop();
if(temp.second >= d) { d= temp.second ; node = temp.first; }
visited[temp.first]=1;
for(auto i=G[temp.first].begin() ; i!=G[temp.first].end() ; i++){
if(!visited[i->first]) q.push(make_pair(i->first , temp.second+i->second));
}
}
return node;
}
long long bfs2(int x){
queue<pair<int , long long> > q;
bool visited[50005];
fill(visited,visited+50000,false);
q.push(make_pair(x , 0));
long long d=0 ; int node = x;
pair<int , long long> temp;
while(!q.empty()){
temp = q.front(); q.pop();
if(temp.second >= d) { d= temp.second ; node = temp.first; }
visited[temp.first]=1;
for(auto i=G[temp.first].begin() ; i!=G[temp.first].end() ; i++){
if(!visited[i->first]) q.push(make_pair(i->first , temp.second+i->second));
}
}
return d;
}
int main() {
ios_base::sync_with_stdio(false);
int t , n , a , b , c , x;
cin>>t;
while(t--){
cin>>n;
for(int i=0 ; i<=n ; i++) G[i].clear();
for(int i=1 ; i<n ; i++){
cin>>a>>b>>c;
G[a].push_back(make_pair(b , c));
G[b].push_back(make_pair(a , c));
}
x = bfs1(2);
cout<<bfs2(x)<<"\n";
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKdmVjdG9yPHBhaXI8aW50ICwgaW50PiA+IEdbNTAwMDVdOwogCmludCBiZnMxKGludCB4KXsKCXF1ZXVlPHBhaXI8aW50ICwgbG9uZyBsb25nPiA+IHE7Cglib29sIHZpc2l0ZWRbNTAwMDVdOwoJZmlsbCh2aXNpdGVkLHZpc2l0ZWQrNTAwMDAsZmFsc2UpOwoJcS5wdXNoKG1ha2VfcGFpcih4ICwgMCkpOwoJbG9uZyBsb25nIGQ9MCA7IGludCBub2RlID0geDsKCXBhaXI8aW50ICwgbG9uZyBsb25nPiB0ZW1wOwoJd2hpbGUoIXEuZW1wdHkoKSl7CgkJIHRlbXAgPSBxLmZyb250KCk7IHEucG9wKCk7CgkJIGlmKHRlbXAuc2Vjb25kID49IGQpIHsgZD0gdGVtcC5zZWNvbmQgOyBub2RlID0gdGVtcC5maXJzdDsgfQoJCSB2aXNpdGVkW3RlbXAuZmlyc3RdPTE7CgkJZm9yKGF1dG8gaT1HW3RlbXAuZmlyc3RdLmJlZ2luKCkgOyBpIT1HW3RlbXAuZmlyc3RdLmVuZCgpIDsgaSsrKXsKCQkJaWYoIXZpc2l0ZWRbaS0+Zmlyc3RdKSBxLnB1c2gobWFrZV9wYWlyKGktPmZpcnN0ICwgdGVtcC5zZWNvbmQraS0+c2Vjb25kKSk7CgkJfQoJfQoJcmV0dXJuIG5vZGU7Cn0KIApsb25nIGxvbmcgYmZzMihpbnQgeCl7CglxdWV1ZTxwYWlyPGludCAsIGxvbmcgbG9uZz4gPiBxOwoJYm9vbCB2aXNpdGVkWzUwMDA1XTsKCWZpbGwodmlzaXRlZCx2aXNpdGVkKzUwMDAwLGZhbHNlKTsKCXEucHVzaChtYWtlX3BhaXIoeCAsIDApKTsKCWxvbmcgbG9uZyBkPTAgOyBpbnQgbm9kZSA9IHg7CglwYWlyPGludCAsIGxvbmcgbG9uZz4gdGVtcDsKCXdoaWxlKCFxLmVtcHR5KCkpewoJCSB0ZW1wID0gcS5mcm9udCgpOyBxLnBvcCgpOwoJCSBpZih0ZW1wLnNlY29uZCA+PSBkKSB7IGQ9IHRlbXAuc2Vjb25kIDsgbm9kZSA9IHRlbXAuZmlyc3Q7IH0KCQkgdmlzaXRlZFt0ZW1wLmZpcnN0XT0xOwoJCWZvcihhdXRvIGk9R1t0ZW1wLmZpcnN0XS5iZWdpbigpIDsgaSE9R1t0ZW1wLmZpcnN0XS5lbmQoKSA7IGkrKyl7CgkJCWlmKCF2aXNpdGVkW2ktPmZpcnN0XSkgcS5wdXNoKG1ha2VfcGFpcihpLT5maXJzdCAsIHRlbXAuc2Vjb25kK2ktPnNlY29uZCkpOwoJCX0KCX0KCXJldHVybiBkOwp9CiAKaW50IG1haW4oKSB7Cglpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKCWludCB0ICwgbiAsIGEgLCBiICwgYyAsIHg7CgljaW4+PnQ7Cgl3aGlsZSh0LS0pewoJCWNpbj4+bjsKCQlmb3IoaW50IGk9MCA7IGk8PW4gOyBpKyspIEdbaV0uY2xlYXIoKTsKCQlmb3IoaW50IGk9MSA7IGk8biA7IGkrKyl7CgkJCWNpbj4+YT4+Yj4+YzsKCQkJR1thXS5wdXNoX2JhY2sobWFrZV9wYWlyKGIgLCBjKSk7CgkJCUdbYl0ucHVzaF9iYWNrKG1ha2VfcGFpcihhICwgYykpOwoJCX0KIAoJCXggPSBiZnMxKDIpOwoJCWNvdXQ8PGJmczIoeCk8PCJcbiI7Cgl9CglyZXR1cm4gMDsKfQ==