Controleer vóór het toepassen
Vergelijk het werkelijke gedrag met het verwachte resultaat. Onderzoek een mislukte controle voordat je verdergaat met wijzigingen.
Vind bruggen in een eenvoudige ongerichte graaf met maximaal 32 knopen.
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)Vergelijk het werkelijke gedrag met het verwachte resultaat. Onderzoek een mislukte controle voordat je verdergaat met wijzigingen.
Stel een OpenAI-compatibel of Anthropic-endpoint in met de basis-URL en zo nodig een API-sleutel. Test de verbinding. Een lokale modelserver moet actief zijn; externe hulpmiddelen kunnen apart gegevens versturen.
Test losse componenten en cycli en wijs dubbele kanten, lussen en ongeldige eindpunten af zonder de invoer te veranderen.
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 is een programmeeromgeving voor Windows om connectiviteitslogica in echte bronbestanden te onderzoeken. Beschrijf eerst welke beslissing je toepassing neemt op basis van het graafresultaat. Vraag het verbonden model de invoerrepresentatie en gebruikende code te bekijken voordat je een wijziging in de doorloop of uitvoer vraagt.
Een nuttige taak kan bridge_edges.py gebruiken om een verbinding te onderzoeken waarvan verwijdering een verbonden deel van een testgraaf scheidt. Voeg ter vergelijking een graaf met een cyclus toe en vermeld de verwachte verbindingslijst. Beoordeel de aannames van een eenvoudige, ongerichte graaf samen met de implementatie, zodat de voorgestelde wijziging niet stilzwijgend een ander invoertype accepteert.
Het softwarewerk gaat door nadat de routine terugkeert. Bekijk hoe de aanroeper knopen benoemt, verbindingen presenteert en geweigerde gegevens verwerkt en voer projectcontroles uit met niet-samenhangende en lege testgrafen. Koppel de beoordeling aan die waarneembare uitkomsten. Een correcte graafuitleg bewijst niet dat de toepassing haar werkelijke gegevens naar de verwachte representatie omzet.
SpanSorbus verbindt via ondersteunde OpenAI-compatibele of Anthropic-endpoints, met inloggegevens waar vereist. Kies een AI-model zonder censuur waar het endpoint dat aanbiedt en controleer de beperkingen van de aanbieder en beschikbare tools. Contextlimieten hangen af van model en server; geef daarom een begrensd testgeval en relevante gebruikende code voor een gericht programmeergesprek.
Controleer de precieze graafdefinitie en de beslissing van je toepassing. Gebruik een testgraaf met een onafhankelijk opgeschreven verwacht resultaat. Beoordeel de codeaannames over richting, parallelle verbindingen en zelflussen voordat je een informele graafuitleg in een software-eis omzet.
De toepassing kan meerdere afzonderlijke componenten bevatten, elk met eigen relevante verbindingen. Een doorloop die bij één knoop begint, kan de andere missen. Gebruik een testgraaf met meer dan één component en vergelijk de volledige uitvoer, niet alleen de eerste verwachte verbinding.
Bekijk eerst het contract voor geaccepteerde invoer. Het voorbeeld verwacht een eenvoudige graaf en weigert duplicaten. Als geïmporteerde gegevens herhaalde verbindingen bevatten, bepaal dan of de importeur ze normaliseert of een fout meldt voordat je de graafroutine laat wijzigen.
Definieer de koppeling tussen interne knoopidentificatoren en zichtbare labels, plus eventuele volgorde voor stabiele uitvoer. Beoordeel die koppelingen met de voorgestelde wijziging. Een correct intern knopenpaar kan alsnog een misleidend resultaat worden als de aanroeper het aan verkeerde labels koppelt.
SpanSorbus · Bijgewerkt 2026-10-25