#include<bits/stdc++.h>
using namespace std;
#define N 200010
#define pb push_back
#define ll long long
#define fs first
#define sc second
#define ii pair<int,int>
#define iii pair<ii,int>
#define matrix vector<vector<ll>>
ii dp[N][3];
int n,u,v,q;
vector<int>g[N];
ii SS(ii u,ii v)
{
if(u.sc>v.sc)
return u;
if(u.sc<v.sc)
return v;
if(u.fs>v.fs)
return u;
else return v;
}
ii SS2(ii u,ii v)
{
if(u.fs+u.sc>v.fs+v.sc)
return u;
else return v;
}
void DFS(int u,int p)
{
for(auto v:g[u])
if(v!=p)
DFS(v,u);
//den
int cnt=0,S=0;
for(auto v:g[u])
if(v!=p)
{
S+=dp[v][0].fs+cnt*dp[v][0].sc;
cnt+=dp[v][0].sc;
}
dp[u][0]=max(dp[u][0],ii{S,cnt});
dp[u][1]=SS(dp[u][1],ii{S,cnt});
dp[u][2]=SS2(dp[u][2],ii{S,cnt});
cnt=0,S=0;
for(auto v:g[u])
if(v!=p)
{
S+=dp[v][1].fs+cnt*dp[v][1].sc;
cnt+=dp[v][1].sc;
}
dp[u][0]=max(dp[u][0],ii{S,cnt});
dp[u][1]=SS(dp[u][1],ii{S,cnt});
dp[u][2]=SS2(dp[u][2],ii{S,cnt});
cnt=0,S=0;
for(auto v:g[u])
if(v!=p)
{
S+=dp[v][2].fs+cnt*dp[v][2].sc;
cnt+=dp[v][2].sc;
}
dp[u][0]=max(dp[u][0],ii{S,cnt});
dp[u][1]=SS(dp[u][1],ii{S,cnt});
dp[u][2]=SS2(dp[u][2],ii{S,cnt});
//trang
S=0;
for(auto v:g[u])
if(v!=p)
S+=dp[v][0].fs+dp[v][0].sc;
dp[u][0]=max(dp[u][0],ii{S,1});
dp[u][1]=SS(dp[u][1],ii{S,1});
dp[u][2]=SS2(dp[u][2],ii{S,1});
S=0;
for(auto v:g[u])
if(v!=p)
S+=dp[v][1].fs+dp[v][1].sc;
dp[u][0]=max(dp[u][0],ii{S,1});
dp[u][1]=SS(dp[u][1],ii{S,1});
dp[u][2]=SS2(dp[u][2],ii{S,1});
S=0;
for(auto v:g[u])
if(v!=p)
S+=dp[v][2].fs+dp[v][2].sc;
dp[u][0]=max(dp[u][0],ii{S,1});
dp[u][1]=SS(dp[u][1],ii{S,1});
dp[u][2]=SS2(dp[u][2],ii{S,1});
}
void xuli()
{
cin>>n;
for(int i=1;i<=n;i++)
g[i].clear(),dp[i][0]=dp[i][1]=dp[i][2]={0,0};
for(int i=1;i<n;i++)
{
cin>>u>>v;
g[u].pb(v);
g[v].pb(u);
}
DFS(1,0);
cout<<max(max(dp[1][0].fs,dp[1][1].fs),dp[1][2].fs)<<"\n";
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(NULL);
cout.tie(NULL);
cin>>q;
while(q--)
xuli();
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIE4gMjAwMDEwCiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgZnMgZmlyc3QKI2RlZmluZSBzYyBzZWNvbmQKI2RlZmluZSBpaSBwYWlyPGludCxpbnQ+CiNkZWZpbmUgaWlpIHBhaXI8aWksaW50PgojZGVmaW5lIG1hdHJpeCB2ZWN0b3I8dmVjdG9yPGxsPj4KCmlpIGRwW05dWzNdOwppbnQgbix1LHYscTsKdmVjdG9yPGludD5nW05dOwoKaWkgU1MoaWkgdSxpaSB2KQp7CiAgICBpZih1LnNjPnYuc2MpCiAgICAgICAgcmV0dXJuIHU7CiAgICBpZih1LnNjPHYuc2MpCiAgICAgICAgcmV0dXJuIHY7CiAgICBpZih1LmZzPnYuZnMpCiAgICAgICAgcmV0dXJuIHU7CiAgICAgICAgICAgIGVsc2UgcmV0dXJuIHY7Cn0KCmlpIFNTMihpaSB1LGlpIHYpCnsKICAgIGlmKHUuZnMrdS5zYz52LmZzK3Yuc2MpCiAgICAgICAgcmV0dXJuIHU7CiAgICAgICAgICAgIGVsc2UgcmV0dXJuIHY7Cn0KCnZvaWQgREZTKGludCB1LGludCBwKQp7CiAgICBmb3IoYXV0byB2OmdbdV0pCiAgICAgICAgaWYodiE9cCkKICAgICAgICAgICAgREZTKHYsdSk7CiAgICAvL2RlbgogICAgaW50IGNudD0wLFM9MDsKICAgIGZvcihhdXRvIHY6Z1t1XSkKICAgICAgICBpZih2IT1wKQogICAgICAgIHsKICAgICAgICAgICAgUys9ZHBbdl1bMF0uZnMrY250KmRwW3ZdWzBdLnNjOwogICAgICAgICAgICBjbnQrPWRwW3ZdWzBdLnNjOwogICAgICAgIH0KICAgIGRwW3VdWzBdPW1heChkcFt1XVswXSxpaXtTLGNudH0pOwogICAgZHBbdV1bMV09U1MoZHBbdV1bMV0saWl7UyxjbnR9KTsKICAgIGRwW3VdWzJdPVNTMihkcFt1XVsyXSxpaXtTLGNudH0pOwogICAgY250PTAsUz0wOwogICAgZm9yKGF1dG8gdjpnW3VdKQogICAgICAgIGlmKHYhPXApCiAgICAgICAgewogICAgICAgICAgICBTKz1kcFt2XVsxXS5mcytjbnQqZHBbdl1bMV0uc2M7CiAgICAgICAgICAgIGNudCs9ZHBbdl1bMV0uc2M7CiAgICAgICAgfQogICAgZHBbdV1bMF09bWF4KGRwW3VdWzBdLGlpe1MsY250fSk7CiAgICBkcFt1XVsxXT1TUyhkcFt1XVsxXSxpaXtTLGNudH0pOwogICAgIGRwW3VdWzJdPVNTMihkcFt1XVsyXSxpaXtTLGNudH0pOwoKICAgIGNudD0wLFM9MDsKICAgIGZvcihhdXRvIHY6Z1t1XSkKICAgICAgICBpZih2IT1wKQogICAgICAgIHsKICAgICAgICAgICAgUys9ZHBbdl1bMl0uZnMrY250KmRwW3ZdWzJdLnNjOwogICAgICAgICAgICBjbnQrPWRwW3ZdWzJdLnNjOwogICAgICAgIH0KICAgIGRwW3VdWzBdPW1heChkcFt1XVswXSxpaXtTLGNudH0pOwogICAgZHBbdV1bMV09U1MoZHBbdV1bMV0saWl7UyxjbnR9KTsKICAgICBkcFt1XVsyXT1TUzIoZHBbdV1bMl0saWl7UyxjbnR9KTsKICAgIC8vdHJhbmcKICAgIFM9MDsKICAgIGZvcihhdXRvIHY6Z1t1XSkKICAgICAgICBpZih2IT1wKQogICAgICAgICAgICBTKz1kcFt2XVswXS5mcytkcFt2XVswXS5zYzsKICAgIGRwW3VdWzBdPW1heChkcFt1XVswXSxpaXtTLDF9KTsKICAgIGRwW3VdWzFdPVNTKGRwW3VdWzFdLGlpe1MsMX0pOwogICAgZHBbdV1bMl09U1MyKGRwW3VdWzJdLGlpe1MsMX0pOwogICAgUz0wOwogICAgZm9yKGF1dG8gdjpnW3VdKQogICAgICAgIGlmKHYhPXApCiAgICAgICAgICAgIFMrPWRwW3ZdWzFdLmZzK2RwW3ZdWzFdLnNjOwogICAgZHBbdV1bMF09bWF4KGRwW3VdWzBdLGlpe1MsMX0pOwogICAgZHBbdV1bMV09U1MoZHBbdV1bMV0saWl7UywxfSk7CiAgICAgZHBbdV1bMl09U1MyKGRwW3VdWzJdLGlpe1MsMX0pOwoKICAgICBTPTA7CiAgICBmb3IoYXV0byB2OmdbdV0pCiAgICAgICAgaWYodiE9cCkKICAgICAgICAgICAgUys9ZHBbdl1bMl0uZnMrZHBbdl1bMl0uc2M7CiAgICBkcFt1XVswXT1tYXgoZHBbdV1bMF0saWl7UywxfSk7CiAgICBkcFt1XVsxXT1TUyhkcFt1XVsxXSxpaXtTLDF9KTsKICAgIGRwW3VdWzJdPVNTMihkcFt1XVsyXSxpaXtTLDF9KTsKfQoKdm9pZCB4dWxpKCkKewogICAgY2luPj5uOwogICAgZm9yKGludCBpPTE7aTw9bjtpKyspCiAgICAgICAgZ1tpXS5jbGVhcigpLGRwW2ldWzBdPWRwW2ldWzFdPWRwW2ldWzJdPXswLDB9OwogICAgZm9yKGludCBpPTE7aTxuO2krKykKICAgIHsKICAgICAgICBjaW4+PnU+PnY7CiAgICAgICAgZ1t1XS5wYih2KTsKICAgICAgICBnW3ZdLnBiKHUpOwogICAgfQogICAgREZTKDEsMCk7CiAgICBjb3V0PDxtYXgobWF4KGRwWzFdWzBdLmZzLGRwWzFdWzFdLmZzKSxkcFsxXVsyXS5mcyk8PCJcbiI7Cn0KCmludCBtYWluKCkKewoKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKDApOwogICAgY2luLnRpZShOVUxMKTsKICAgIGNvdXQudGllKE5VTEwpOwogICAgY2luPj5xOwogICAgd2hpbGUocS0tKQogICAgICAgIHh1bGkoKTsKICAgIHJldHVybiAwOwp9Cg==