#include<bits/stdc++.h>
#define mod 1000000007
#define pie (3.141592653589)
using namespace std;

const int N = 1e5 + 10;

vector<int> adj[N];
vector<int> uu(N);
vector<pair<int, int>> add_edge;
vector<pair<int, int>> remove_edge;

void dfs(int source, int parent = -1)
{
	int start = -1;
	int end = -1;
	for(int u : adj[source])
	{
		if(u == parent)
		{
			continue;
		}
		dfs(u, source);
		if(uu[u] != -1)
		{
			if(start == -1)
				start = uu[u];
			else if(end == -1)
				end = uu[u];
			else
				add_edge.emplace_back(u, uu[u]), remove_edge.emplace_back(source, u);
		}
		else
			remove_edge.emplace_back(source, u);
	}
	if(end != -1)
		add_edge.emplace_back(start, end), uu[source] = -1;
	else
		uu[source] = start == -1 ? source : start;
}


int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout << fixed;
	cout.precision(10);
	int T = 1;
	cin >> T;
	while(T--)
	{
		int n;
		cin >> n;
		for(int i = 0; i < n - 1; i++)
		{
			int u, v;
			cin >> u >> v;
			--u; --v;
			adj[u].push_back(v);
			adj[v].push_back(u);
		}
		dfs(0);
		if(uu[0] != -1)
			add_edge.emplace_back(0, uu[0]);
		cout << (int) remove_edge.size() << '\n';
		for(int i = 0; i < (int) remove_edge.size(); i++)
		{
			cout << remove_edge[i].first + 1 << ' ' << remove_edge[i].second + 1 << ' ' << add_edge[i].second + 1 << ' ' << add_edge[i + 1].first + 1 << '\n';
		}
		for(int i = 0; i <= n; i++)
			adj[i].clear();
		add_edge.clear();
		remove_edge.clear();
	}
	return 0;
}
