Kiểm tra trước khi áp dụng
So sánh hành vi thực tế với kết quả mong đợi. Nếu kiểm tra thất bại, tìm nguyên nhân trước khi sửa tiếp.
Tìm cạnh cầu trong đồ thị đơn vô hướng tối đa 32 đỉnh.
def bridge_edges(n, edges):
if type(n) is not int or not 0 <= n <= 32:
raise ValueError("vertex count")
if type(edges) is not list or len(edges) > 496:
raise ValueError("edge count")
graph = [set() for _ in range(n)]
for edge in edges:
if type(edge) is not tuple or len(edge) != 2 or any(
type(x) is not int or not 0 <= x < n for x in edge):
raise ValueError("edge endpoints")
a, b = edge
if a == b or b in graph[a]:
raise ValueError("simple undirected edges")
graph[a].add(b); graph[b].add(a)
timer, found = 0, []
entered, low = [-1] * n, [0] * n
def visit(v, parent):
nonlocal timer
entered[v] = low[v] = timer; timer += 1
for u in sorted(graph[v]):
if u == parent:
continue
if entered[u] < 0:
visit(u, v); low[v] = min(low[v], low[u])
if low[u] > entered[v]:
found.append(tuple(sorted((v, u))))
else:
low[v] = min(low[v], entered[u])
for v in range(n):
if entered[v] < 0:
visit(v, -1)
return sorted(found)So sánh hành vi thực tế với kết quả mong đợi. Nếu kiểm tra thất bại, tìm nguyên nhân trước khi sửa tiếp.
Cấu hình endpoint tương thích OpenAI hoặc Anthropic bằng URL cơ sở và khóa API nếu cần. Kiểm tra kết nối. Máy chủ mô hình cục bộ phải đang chạy; công cụ từ xa có thể truyền dữ liệu riêng.
Kiểm tra thành phần rời và chu trình, từ chối cạnh lặp, khuyên và đầu mút sai mà không đổi đầu vào.
def bridge_edges(n, edges):
if type(n) is not int or not 0 <= n <= 32:
raise ValueError("vertex count")
if type(edges) is not list or len(edges) > 496:
raise ValueError("edge count")
graph = [set() for _ in range(n)]
for edge in edges:
if type(edge) is not tuple or len(edge) != 2 or any(
type(x) is not int or not 0 <= x < n for x in edge):
raise ValueError("edge endpoints")
a, b = edge
if a == b or b in graph[a]:
raise ValueError("simple undirected edges")
graph[a].add(b); graph[b].add(a)
timer, found = 0, []
entered, low = [-1] * n, [0] * n
def visit(v, parent):
nonlocal timer
entered[v] = low[v] = timer; timer += 1
for u in sorted(graph[v]):
if u == parent:
continue
if entered[u] < 0:
visit(u, v); low[v] = min(low[v], low[u])
if low[u] > entered[v]:
found.append(tuple(sorted((v, u))))
else:
low[v] = min(low[v], entered[u])
for v in range(n):
if entered[v] < 0:
visit(v, -1)
return sorted(found)SpanSorbus là không gian lập trình trên Windows để xem xét logic liên thông trong bối cảnh tệp nguồn thực tế. Bắt đầu bằng việc mô tả quyết định ứng dụng đưa ra từ kết quả đồ thị. Yêu cầu mô hình kết nối kiểm tra biểu diễn đầu vào và nơi sử dụng trước khi yêu cầu thay đổi phép duyệt hoặc đầu ra.
Nhiệm vụ hữu ích có thể dùng bridge_edges.py để khảo sát một cạnh mà khi bỏ đi sẽ tách một phần liên thông của dữ liệu kiểm thử. Bao gồm đồ thị có chu trình để so sánh và nêu danh sách cạnh kỳ vọng. Rà soát giả định đồ thị đơn, vô hướng cùng triển khai để thay đổi đề xuất không âm thầm chấp nhận loại đầu vào khác.
Công việc phần mềm tiếp tục sau khi thủ tục trả về. Kiểm tra cách mã gọi đặt tên nút, trình bày cạnh và xử lý dữ liệu bị từ chối, rồi chạy kiểm tra dự án với dữ liệu rời rạc và rỗng. Giữ rà soát gắn với các kết quả quan sát được đó. Giải thích đồ thị đúng không xác lập rằng ứng dụng ánh xạ dữ liệu thực tế thành biểu diễn kỳ vọng.
SpanSorbus kết nối qua điểm cuối tương thích OpenAI hoặc Anthropic được hỗ trợ với thông tin xác thực khi cần. Chọn mô hình AI không kiểm duyệt nơi điểm cuối cung cấp, đồng thời kiểm tra hạn chế của nhà cung cấp và công cụ khả dụng. Giới hạn ngữ cảnh phụ thuộc mô hình và máy chủ, nên cung cấp dữ liệu kiểm thử có giới hạn cùng nơi sử dụng liên quan để cuộc trao đổi lập trình tập trung.
Kiểm tra định nghĩa đồ thị chính xác và quyết định ứng dụng đang đưa ra. Dùng dữ liệu kiểm thử có kết quả kỳ vọng viết độc lập. Rà soát giả định mã về hướng, cạnh song song và khuyên trước khi chuyển giải thích đồ thị thông thường thành yêu cầu phần mềm.
Ứng dụng có thể chứa nhiều thành phần riêng biệt, mỗi thành phần có cạnh liên quan riêng. Phép duyệt bắt đầu từ một nút có thể bỏ sót phần khác. Bao gồm dữ liệu có nhiều thành phần và so sánh toàn bộ đầu ra, không chỉ cạnh kỳ vọng đầu tiên.
Trước tiên kiểm tra quy ước đầu vào chấp nhận. Ví dụ mong đợi đồ thị đơn và từ chối trùng lặp. Nếu dữ liệu nhập chứa cạnh lặp, quyết định bộ nhập nên chuẩn hóa hay báo lỗi trước khi yêu cầu thay đổi thủ tục đồ thị.
Xác định ánh xạ giữa mã định danh nút nội bộ và nhãn người dùng thấy, cùng thứ tự cần để đầu ra ổn định. Rà soát các ánh xạ đó với sửa đổi đề xuất. Cặp cạnh nội bộ đúng vẫn có thể thành kết quả gây hiểu nhầm nếu mã gọi liên kết sai nhãn.
SpanSorbus · Cập nhật 2026-10-25