#include<bits/stdc++.h>
#define ll long long
#define INIT(a,b) memset(a,b,sizeof(a))
#define rep(i,a,b) for(int i=a;i<=b;++i)
using namespace std;
const int N=2e6+7;
int k,n,m,x[N],y[N],z[N],f[N],b[N];
int find(int n){
return n==f[n]? n: f[n] = find(f[n]);
}
int main(){
scanf("%d",&k);
while(k--){
m = 0;
scanf("%d",&n);
rep(i,1,n) {
scanf("%d%d%d",&x[i],&y[i],&z[i]);
b[++m] = x[i], b[++m] = y[i];
}
sort(b+1,b+1+m);
m = unique(b+1,b+1+m)-b-1;
rep(i,1,m) f[i] = i;
rep(i,1,n){
x[i] = lower_bound(b+1,b+1+m,x[i])-b;
y[i] = lower_bound(b+1,b+1+m,y[i])-b;
}
rep(i,1,n)
if(z[i]) f[find(x[i])] = find(y[i]);
int ans = 1;
rep(i,1,n){
if(!z[i] && find(x[i])==find(y[i])){
ans = 0;
break;
}
}
puts(ans?"YES":"NO");
}
return 0;
}