#include<iostream>
#include<algorithm>
#include<cstring>
#include<vector>
#include<string>
#include<cmath>
using namespace std;
#define endl '\n'
int _;
const int N=1e5;
int fa[N*2+2];
int find(int x){
if(x!=fa[x]) fa[x]=find(fa[x]);
return fa[x];
}
void solve(){
int n;cin>>n;
vector<int> a(n+1);
vector<int> b(n+1);
for(int i=1;i<=2*N;++i) fa[i]=i;
int cnt=0;
for(int i=1;i<=n;++i){
int x,y,z;cin>>x>>y>>z;
if(z==1){
fa[find(x+N)]=find(y);
fa[find(y+N)]=find(x);
}
else{
a[++cnt]=x;
b[cnt]=y;
}
}
for(int i=1;i<=cnt;++i){
if(find(a[i])==find(b[i])) continue;
else{
cout<<"NO"<<endl;return;
}
}
cout<<"YES"<<endl;
}
signed main(){
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
cin>>_;
while(_--){
solve();
}
return 0;
}