#include<bits/stdc++.h>
using namespace std;
const int maxn=19260817;
int fa[maxn],siz[maxn];
int fd(int x){
if(!fa[x])fa[x]=x;
return x==fa[x]?x:fa[x]=fd(fa[x]);
}
void union_(int u,int v){
if(!fa[u])fa[u]=u;
if(!fa[v])fa[v]=v;
int fdu=fd(u),fdv=fd(v);
if(fdu==fdv)return;
if(siz[fdu]>siz[fdv])swap(fdu,fdv);
fa[fdu]=fdv;siz[fdv]+=siz[fdu];
}
struct Input{
int i,j,op;
}input[100007];
bool cmp(Input a,Input b){
return a.op>b.op;
}
int t,n;
int main(){
scanf("%d",&t);
while(t--){
scanf("%d",&n);
for(int i=1;i<=n;i++)scanf("%d%d%d",&input[i].i,&input[i].j,&input[i].op);
sort(input+1,input+n+1,cmp);bool flag=true;
for(int i=1;i<=n;i++){
int ii=input[i].i,ij=input[i].j,iop=input[i].op;
if(iop)union_(ii%maxn,ij%maxn);
else if(fd(ii%maxn)==fd(ij%maxn)){flag=false;printf("NO\n");break;}
}if(flag)printf("YES\n");
}
return 0;
}