def main(n, k): if 2 * k > n * n: return [] Ans = [[0 for _ in range(n)] for _ in range(n)] if k < n: if k < 3: return [] elif k == 3: Ans[0][0] = 1 Ans[0][1] = 1 Ans[1][0] = 1 return Ans elif k < n: h = k // 2 w = k - h for y in range(h): Ans[y][0] = 1 k -= 1 for x in range(1, w): Ans[h-1][x] = 1 k -= 1 y, x = h-2, 1 while k: Ans[y][x] = 1 k -= 1 x += 1 if x == w: x = 1 y -= 1 return Ans if k == 2 * n: for y in range(n): Ans[y][1] = 1 Ans[y][2] = 1 return Ans elif k == 2 * n + 1: Ans[0][1] = 1 Ans[0][3] = 1 Ans[1][3] = 1 for y in range(1, n): Ans[y][1] = 1 Ans[y][2] = 1 return Ans K = 2*k t = K // n s = K % n x = t-1 cnt = 0 while x >= 0: for y in range(s): cnt += 1 Ans[y][x] = 1 for y in range(s, n): if 0 <= x-1: cnt += 1 Ans[y][x-1] = 1 else: cnt += 1 Ans[y][x] = 1 x -= 3 if s == 0: r = t-1 else: r = t y = (s-1) % n for x in range(r): if not Ans[y][x]: cnt += 1 Ans[y][x] = 1 ama = k - cnt y = x = 0 while ama: if not Ans[y][x]: Ans[y][x] = 1 ama -= 1 y += 1 if y == n: y = 0 x += 1 cnt = 0 for y in range(n): for x in range(n): if Ans[y][x]: cnt += 1 assert cnt == k return Ans for _ in range(int(input())): n, k = map(int, input().split()) Ans = main(n, k) if Ans: print("Yes") Ans = [["#" if Ans[y][x] else "." for x in range(n)] for y in range(n)] for ans in Ans: print("".join(ans)) else: print("No")