Controleer vóór het toepassen
Vergelijk het werkelijke gedrag met het verwachte resultaat. Onderzoek een mislukte controle voordat je verdergaat met wijzigingen.
Controleer gehele zoekboomknopen met twee kindverwijzingen.
def is_strict_bst(root):
pending, seen, checks = [(root, None, None)], set(), []
while pending:
node, low, high = pending.pop()
if node is None:
continue
if type(node) is not list or len(node) != 3 or type(node[0]) is not int:
raise ValueError("tree.node")
if id(node) in seen or len(seen) == 1000:
raise ValueError("tree.structure")
seen.add(id(node))
value, left, right = node
checks.append((value, low, high))
pending.extend([(right, value, high), (left, low, value)])
return all((low is None or low < value) and
(high is None or value < high) for value, low, high in checks)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 lege bomen en vooroudergrenzen, geef onwaar voor dubbele sleutels en weiger cycli, gedeelde kinderen, ongeldige knopen of meer dan 1000 knopen.
def is_strict_bst(root):
pending, seen, checks = [(root, None, None)], set(), []
while pending:
node, low, high = pending.pop()
if node is None:
continue
if type(node) is not list or len(node) != 3 or type(node[0]) is not int:
raise ValueError("tree.node")
if id(node) in seen or len(seen) == 1000:
raise ValueError("tree.structure")
seen.add(id(node))
value, left, right = node
checks.append((value, low, high))
pending.extend([(right, value, high), (left, low, value)])
return all((low is None or low < value) and
(high is None or value < high) for value, low, high in checks)TreeSentinel biedt een Windows-projectwerkruimte voor onderhoud aan gestructureerde gegevens en een AI-gesprek gekoppeld aan bronbestanden. Laat eerst zien waar de toepassing een structuur ontvangt en hoe zij het validatieresultaat gebruikt. Vraag het model die volledige grens te inspecteren voordat het een eenvoudigere controle of andere traversal voorstelt.
Een taak rond bst_order.py kan bijvoorbeeld een boom onderzoeken waarvan de directe kinderen geordend lijken, terwijl een dieper gelegen waarde een grens van een voorouder schendt. Geef de falende structuur en het verwachte resultaat. Vraag vervolgens hoe onjuist gevormde knopen en herhaalde verwijzingen worden afgehandeld, zodat een ordeningsreparatie geen aannames over de doorlopen structuur over het hoofd ziet.
Beoordeel het resulterende voorstel op afzonderlijke uitkomsten: een geldige boom, een ordeningsfout en een onjuist gevormde structuur. Voer de relevante projectcontroles uit en inspecteer hoe elke uitkomst de gebruikende code bereikt. Houd elke wijziging in beleid voor dubbele sleutels expliciet. Een ogenschijnlijk kleine vergelijkingswijziging kan veranderen welke gegevens de omliggende toepassing accepteert.
TreeSentinel maakt verbinding met ondersteunde OpenAI-compatibele of Anthropic-eindpunten, met inloggegevens waar nodig. U kunt een abliterated AI-model selecteren als uw eindpunt er een aanbiedt. De aanbiedersbeperkingen, contextlimieten en beschikbare hulpmiddelen blijven onderdeel van die configuratie; de beoordeling moet steunen op concrete structuren en waarneembare uitkomsten, niet op het zelfvertrouwen van het model.
Een lokale vergelijking kan slagen terwijl een afstammeling de grens van een eerdere voorouder schendt. Geef een klein genest testgeval dat dat verschil blootlegt en vermeld het verwachte resultaat. Toets de voorgestelde traversal eraan voordat u een vereenvoudiging van de validatielogica aanvaardt.
Definieer dat in het toepassingscontract. Het voorbeeld dwingt strikte ordening af, waardoor gelijke sleutels zijn uitgesloten. Inspecteer of de gebruikende code onjuist gevormde invoer onderscheidt van een goed gevormde structuur die de ordening schendt, en behoud die reactieconventies in de wijziging.
Die kan betekenen dat de invoer niet de boomstructuur heeft die de routine verwacht, zelfs als afzonderlijke waarden aanvaardbaar lijken. Voeg waar passend een testgeval met gedeelde verwijzingen of een cyclus toe. Controleer beëindiging en afwijzingsgedrag in plaats van uitsluitend op gewone geneste voorbeelden te vertrouwen.
Alleen nadat rekening is gehouden met de structuur en het foutgedrag dat de aanroepende code nodig heeft. Een controle op platgemaakte waarden kan onjuist gevormde knopen of traversalaannames verbergen. Laat het model die afwegingen aan de hand van de echte broncode uitleggen voordat u het validatiecontract wijzigt.
TreeSentinel · Bijgewerkt 2026-10-25