import sys
input = sys.stdin.readline
T = int(input())
for _ in range(T):
V,E = map(int,input().split(" "))
edges = [list(map(int, input().split(" "))) for _ in range(E)]
graph = [[] for _ in range(V+1)]
for e in edges:
a,b = e
graph[a].append(b)
graph[b].append(a)
from collections import deque
colors = [-1 for _ in range(V+1)]
def bfs(x,color):
Q = deque([x])
visited[x] = color
while Q:
x = Q.popleft()
color = visited[x]
for num in graph[x]:
if visited[num] == color:
return False
if visited[num] == 0:
visited[num] = -color
Q.append(num)
flag = 0
visited = [0 for _ in range(V+1)]
for i in range(V+1):
if visited[i] == 0:
if bfs(i,1) == False:
flag = 1
break
print("NO") if flag == 1 else print("YES")