T = int(input())						# 5



def solv(A, B, C, D):
	#b = (A<B)				#初回在庫が足りない
	#b = b or (D<B)			#補充が足りない
	#b = b or ((A % B) > C)	#補充前にアウト
	#if b: return False
	
	#力業で計算する
	if A>B : A = (A % B) + B			#初回量を適正化
	if D>B : D = (D % B) + B			#補充量を適正化
	
	z = A					#在庫数を初期化
	for i in range(1000):
		
		z -= B
		if (z<0): return False		#昼：在庫が足りなくてアウト
		
		
		if (z<=C): z+=D				#夜：在庫追加
	
	else:
		return True
	
	
	

for i in range (T):
	A, B, C, D = map(int, input().split())		# 5 7 2
	
	b = solv(A, B, C, D)
	
	ans = "Yes" if b else "No"
	print(ans)

