#include<bits/stdc++.h>
#define int long long
using namespace std;
unordered_map<int,int> um;
int t,n;
int fa[10000005];
int findfa(int u)
{
if(fa[u]==u)
{
return u;
}
return fa[u]=findfa(fa[u]);
}
set<int> s;
struct node
{
int x,y,e;
};
bool cmp(node x,node y)
{
return x.e==1;
}
vector<node> v;
void slove()
{
cin>>n;
for(int i=1;i<=n;i++)
{
node q;
cin>>q.x>>q.y>>q.e;
v.push_back(q);
s.insert(q.x);
s.insert(q.y);
}
int x=1;
for(auto i:s)
{
um[i]=x;
x++;
fa[x]=x;
}
sort(v.begin(),v.end(),cmp);
for(auto i:v)
{
int u=um[i.x];
int v=um[i.y];
int f=i.e;
if(f==1)
{
int fau=findfa(u);
int fav=findfa(v);
fa[fau]=fav;
}
else
{
int fau=findfa(u);
int fav=findfa(v);
if(fau==fav)
{
cout<<"NO\n";
return;
}
}
}
cout<<"YES\n";
}
signed main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cin>>t;
while(t--)
{
slove();
}
return 0;
}