#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=4e5+10;
struct noid{
int x,y;
}s0[N];
int p[N],ans;
unordered_map<int,int> mp;
int zzz(int x){
if(p[x]!=x){
p[x]=zzz(p[x]);
}
return p[x];
}
void ddd(){
for(int i=1;i<=ans;i++){
int q,w;
q=s0[i].x;
w=s0[i].y;
if(zzz(mp[q])==zzz(mp[w])){
cout<<"NO\n";
return;
}
}
cout<<"YES\n";
return;
}
signed main(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int t;
cin>>t;
while(t--){
mp.clear();
int n,sum=0;
ans=0;
cin>>n;
for(int i=1;i<=n;i++){
p[i]=i;
}
for(int i=1;i<=n;i++){
int a,b,s;
cin>>a>>b>>s;
if(s==0){
ans++;
s0[ans].x=a;
s0[ans].y=b;
}
else{
if(mp[a]==0){
sum++;
mp[a]=sum;
}
if(mp[b]==0){
sum++;
mp[b]=sum;
}
int aa,bb;
aa=zzz(mp[a]);
bb=zzz(mp[b]);
p[aa]=bb;
}
}
ddd();
}
return 0;
}