Sprawdź przed zastosowaniem
Porównaj rzeczywiste zachowanie z oczekiwanym wynikiem. Jeśli sprawdzenie się nie powiedzie, wyjaśnij przyczynę przed kolejnymi zmianami.
Grupuj numerowane węzły według nieskierowanych połączeń za pomocą zbiorów rozłącznych.
def components(count, edges):
if type(count) is not int or not 0 <= count <= 10000:
raise ValueError("node count")
pairs = list(edges)
for pair in pairs:
if len(pair) != 2 or any(type(v) is not int or not 0 <= v < count for v in pair):
raise ValueError("edge endpoint")
parent = list(range(count))
def find(x):
while parent[x] != x:
parent[x] = parent[parent[x]]
x = parent[x]
return x
for a, b in pairs:
parent[find(b)] = find(a)
groups = {}
for node in range(count): groups.setdefault(find(node), []).append(node)
return sorted(groups.values())Porównaj rzeczywiste zachowanie z oczekiwanym wynikiem. Jeśli sprawdzenie się nie powiedzie, wyjaśnij przyczynę przed kolejnymi zmianami.
Dodaj endpoint zgodny z OpenAI lub Anthropic, podając bazowy URL i klucz API, jeśli jest wymagany. Sprawdź połączenie. Lokalny serwer modelu musi działać; zdalne narzędzia mogą przesyłać dane oddzielnie.
Sprawdź izolowane węzły, powtórzone krawędzie i pusty graf, odrzucając błędne końce przed łączeniem.
def components(count, edges):
if type(count) is not int or not 0 <= count <= 10000:
raise ValueError("node count")
pairs = list(edges)
for pair in pairs:
if len(pair) != 2 or any(type(v) is not int or not 0 <= v < count for v in pair):
raise ValueError("edge endpoint")
parent = list(range(count))
def find(x):
while parent[x] != x:
parent[x] = parent[parent[x]]
x = parent[x]
return x
for a, b in pairs:
parent[find(b)] = find(a)
groups = {}
for node in range(count): groups.setdefault(find(node), []).append(node)
return sorted(groups.values())UnionPebble to środowisko programistyczne AI dla Windows łączące wymaganie grupowania, jego kod źródłowy i odbiorców w jednej rozmowie o rozwoju. Zacznij od opisu, co aplikacja uznaje za połączone i co oczekuje otrzymać. Poproś model o analizę obecnej reprezentacji przed zaproponowaniem zmian kodu tworzącego grupy.
Jako konkretne zadanie użyj components.py do omówienia połączenia scalającego dwie wcześniej oddzielne grupy. Dodaj do danych testowych izolowany węzeł i określ oczekiwaną kolejność wyjścia. Przykład pomaga sformułować prośbę o zmianę bez zakładania, że matematycznie równoważna kolekcja spełni wymagania serializatora lub kodu wyświetlania aplikacji.
Oceń propozycję na tych granicach. Sprawdź akceptowane identyfikatory węzłów, nieprawidłowe krawędzie i pusty przypadek, a następnie uruchom odpowiednie kontrole projektu. Użyteczny wynik powinien wyjaśniać, dlaczego elementy należą do jednej grupy i dlaczego zwrócona struktura pasuje do odbiorcy. Nie włączaj niepowiązanych zmian przechowywania lub interfejsu do zadania naprawy grupowania.
Podłącz model przez obsługiwany punkt końcowy zgodny z OpenAI lub Anthropic, podając wymagane uwierzytelnienie. Jeśli usługa oferuje model AI z usuniętymi mechanizmami odmowy, jest on opcją dla sesji; ograniczenia nadal zależą od dostawcy. Dostępne narzędzia i kontekst również zależą od modelu i serwera, więc ogranicz przegląd do źródeł i dowodów, które sesja rzeczywiście może wykorzystać.
Określ to oczekiwanie jawnie. Lista krawędzi może nigdy nie wymieniać izolowanego węzła, mimo że aplikacja wie o jego istnieniu. Podaj zadeklarowaną liczbę węzłów i izolowany przypadek, aby proponowany kod nie mógł po cichu usunąć takich elementów z wyniku.
Tak, jeśli odbiorca polega na stabilnej kolejności serializacji, porównania lub prezentacji. Określ, czy kolejność należy do interfejsu, a następnie sprawdź konwencję wyjścia. Sama równoważność matematyczna nie dowodzi zgodności z migawkami lub dalszym przetwarzaniem w projekcie.
Określ zachowanie odrzucania i sprawdź, gdzie jest sygnalizowane. Przykład waliduje identyfikatory względem zadeklarowanej liczby węzłów. Przejrzyj reakcję wywołującego, zamiast zakładać, że sam wyjątek przekazuje użyteczny błąd osobie dostarczającej dane grupowania.
Niezależnie zapisz początkowe grupy i oczekiwany skład po scaleniu, uwzględniając grupę bez zmian. Przepuść dane przez zmieniony kod i osobno sprawdź kolejność. Daje to konkretny wynik przed i po bez powtarzania implementacji wewnątrz testu.
UnionPebble · Zaktualizowano 2026-10-25