#include #include using namespace std; using isize = size_t; using i32 = int; using u32 = unsigned int; using i64 = long long; using u64 = unsigned long long; using i128 = __int128_t; using u128 = __uint128_t; using f64 = long double; using p2 = pair; using el = tuple; using mint = atcoder::modint998244353; void _main(); int main() { cin.tie(0); ios::sync_with_stdio(false); cout << fixed << setprecision(3); _main(); } i32 pow(i32 x, i32 n) { i32 res = 1; i32 a = x; while (n > 0) { if (n & 1) res *= a; a *= a; n >>= 1; } return res; } void _main() { i64 t; cin >> t; for (;t--;) { i64 n; cin >> n; mint ans = 0; vector> g(n); vector edge(n - 1); for (i64 i = 0; i < n - 1; i++) { i64 u, v; cin >> u >> v; u--, v--; g[u].push_back(v); g[v].push_back(u); edge[i] = {u, v}; } for (auto [u, v] : edge) { i64 x = g[u].size(), y = g[v].size(); x--, y--; ans += x * y; } cout << ans.val() << "\n"; } }