WA on #2,#3,#4,#8.qwq
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int inf=1e11;
int T;
int n,tot;
unordered_map<int,int> fa;
int find(int x)
{
if(fa[x]==x)
return x;
fa[x]=find(fa[x]);
return fa[x];
}
void mrg(int x,int y)
{
int z1=find(x),z2=find(y);
fa[z1]=z2;
}
signed main()
{
ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
cin>>T;
for(int t=1;t<=T;t++)
{
cin>>n;
fa.clear();
int x,y,opt;
int flag=1;
for(int i=1;i<=n;i++)
{
cin>>x>>y>>opt;
if(!fa[x])fa[x]=x;
if(!fa[y])fa[y]=y;
if(opt==1)
{
if(find(x)!=find(y+inf))
mrg(x,y);
else
flag=0;
}
if(opt==0)
{
if(find(x)!=find(y))
{
mrg(x,y+inf);
mrg(x+inf,y);
}
else
flag=0;
}
}
if(flag==1)
cout<<"YES"<<endl;
if(flag==0)
cout<<"NO"<<endl;
}
return 0;
}