#include<bits/stdc++.h>
#define I return
#define AK 0
#define IOI ;
#define int long long
using namespace std;
int T,x,y,e,n;
map<int,int>fa1;
int find1(int x){
if(fa1[x]==0)return x;
if(fa1[x]!=x){
fa1[x]=find1(fa1[x]);
}
return fa1[x];
}
void join1(int x,int y)
{
fa1[find1(x)]=find1(y);
}
map<int,int>fa2;
bool flag=1;
signed main(){
cin>>T;
while(T--){
flag=0;
fa1.clear();
fa2.clear();
cin>>n;
while(n--){
cin>>x>>y>>e;
if(flag)continue;
if(e==1){
if(x==y)continue;
if(fa2[x]==y||fa2[y]==x){
flag=1;
continue;
}
join1(x,y);
}else{
if(find1(x)==find1(y)){
flag=1;
continue;
}
fa2[x]=y;
fa2[y]=x;
}
}
flag?cout<<"NO"<<'\n':cout<<"YES"<<'\n';
}
I AK IOI
}