#include <cstdio>
#include <vector>
using namespace std;

#define PB push_back
#define MP make_pair
#define SZ(v) ((int)(v).size())
#define FOR(i,a,b) for(int i=(a);i<(b);++i)
#define REP(i,n) FOR(i,0,n)
#define FORE(i,a,b) for(int i=(a);i<=(b);++i)
#define REPE(i,n) FORE(i,0,n)
#define REPSZ(i,v) REP(i,SZ(v))
#define FORSZ(i,a,v) FOR(i,a,SZ(v))
typedef long long ll;
typedef pair<int,int> PII;

ll n;
vector<vector<PII> > adj;

pair<ll,ll> go(int at,int prev) {
	pair<ll,ll> ret=MP(1,0LL);
	REPSZ(i,adj[at]) {
		int to=adj[at][i].first,len=adj[at][i].second;
		if(to==prev) continue;
		pair<ll,ll> cur=go(to,at);
		ret.first+=cur.first;
		ret.second+=cur.second;
		ret.second+=cur.first*(n-cur.first)*len;
	}
	return ret;
}

void run() {
	scanf("%lld",&n);
	adj=vector<vector<PII> >(n);
	REP(i,n-1) { int a,b,c; scanf("%d%d%d",&a,&b,&c); adj[a].PB(MP(b,c)); adj[b].PB(MP(a,c)); }
	
	printf("%.3lf\n",1.0*go(0,-1).second/(n*(n-1)/2));
}

int main() {
	int n; scanf("%d",&n); FORE(i,1,n) run();
	return 0;
}
