#include <bits/stdc++.h>
#include <bits/extc++.h>
#define int long long
#define fir first
#define sec second
using namespace std;
const int N = 1e6 + 5;
int n;
int T;
__gnu_pbds :: gp_hash_table < int , int > fa;
int a , b , c;
string ans;
inline int read()
{
int x = 0 , f= 1 ;char ch = getchar ();
while (ch < '0' || ch > '9' ) {if (ch == '-') f = -1;ch = getchar ();}
while (ch >= '0' && ch <= '9') {x = x * 10 + ch - 48;ch = getchar ();}
return x * f;
}
inline void INIT ()
{
ans = "YES";
for (int i = 1;i <= (n << 1);i ++)
fa[i] = i;
return ;
}
inline int find (int x)
{
if (fa[x] == x)
return x;
return fa[x] = find (fa[x]);
}
inline void join (int x , int y)
{
int i = find (x) , j = find (y);
if (i != j)
fa[i] = j;
return ;
}
main ()
{
cin >> T;
while (T --)
{
n = read ();
INIT ();
for (int i = 1;i <= n;i ++)
{
a = read () , b = read () , c = read ();
if (c)
join (a , b);
else if(find (a) == find (b))
ans = "NO";
}
cout << ans << '\n';
}
}