#include<bits/stdc++.h>
using namespace std;
map<string,string> fa;
vector<pair<string,string>> v1;
vector<pair<string,string>> v2;
int t,n,e;
string x,y;
string find(string x){
// if(fa[x][0]>'9' || fa[x][0]<'0'){
// return x;
// }
if(x==fa[x]){
return x;
}
fa[x]=find(fa[x]);
return x=fa[x];
}
void join(string x,string y){
fa[find(x)]=find(y);
}
int main(){
cin>>t;
while(t--){
cin>>n;
int flag=1;
for(int i=1;i<=n;i++){
cin>>x>>y>>e;
fa[x]=x;
fa[y]=y;
if(e==1){
// join(x,y);
v1.push_back(make_pair(x,y));
}
if(e==0){
v2.push_back(make_pair(x,y));
// if(fa[x]==fa[y]) flag=0;
// join(x+n,y);
}
}
for(int i=0;i<v1.size();i++){
string x=v1[i].first;
string y=v1[i].second;
join(y,x);
}
for(int i=0;i<v2.size();i++){
string x=v2[i].first;
string y=v2[i].second;
if(fa[x]==fa[y]) {flag=0;break;}
}
if(flag) cout<<"YES"<<endl;
else cout<<"NO"<<endl;
v1.clear();
v2.clear();
fa.clear();
}
}
30pts,#2 #10 TLE,#34567 WA