#include <bits/stdc++.h>
using namespace std;
long long int ma, mi;
long long int dfs(long long int node, long long int k,
                  vector<vector<pair<long long int, long long int> > > &v,
                  vector<long long int> &vis) {
  vis[node] = 1;
  long long int child = 1;
  long long int si = v[node].size(), i;
  for (i = 0; i < si; i++) {
    if (vis[v[node][i].first] == 0) {
      long long int temp = dfs(v[node][i].first, k, v, vis);
      mi += v[node][i].second * (temp % 2);
      ma += v[node][i].second * min(temp, (2 * k) - temp);
      child += temp;
    }
  }
  return child;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  long long int t;
  cin >> t;
  while (t--) {
    long long int k, i;
    cin >> k;
    vector<vector<pair<long long int, long long int> > > v((2 * k) + 1);
    vector<long long int> vis((2 * k) + 1, 0);
    for (i = 0; i < (2 * k) - 1; i++) {
      long long int a, b, cost;
      cin >> a >> b >> cost;
      v[a].push_back({b, cost});
      v[b].push_back({a, cost});
    }
    ma = mi = 0;
    dfs(1, k, v, vis);
    cout << mi << " " << ma << "\n";
  }
}
