#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 5;
vector <int> G[N];
int t, n, siz[N], dep[N];
void dfs(int u, int f){
dep[u] = dep[f] + 1;
siz[u] = 1;
for(int i = 0; i < G[u].size(); i++){
int v = G[u][i];
if(v == f) continue;
dfs(v, u), siz[u] += siz[v];
}
return;
}
int main(){
ios :: sync_with_stdio(false);
cin >> t;
while(t--){
cin >> n;
for(int i = 1; i <= n; i++) G[i].clear();
memset(siz, 0, sizeof(siz));
memset(dep, 0, sizeof(dep));
for(int i = 1, u, v; i < n; i++){
cin >> u >> v;
G[u].push_back(v);
G[v].push_back(u);
}
dfs(1, 0);
for(int i = 1; i <= n; i++)
cout << dep[i] << ' ' << n - siz[i] + 1 << '\n';
}
return 0;
}