Перевірте перед застосуванням
Порівняйте фактичну поведінку з очікуваним результатом. Якщо перевірка не проходить, з’ясуйте причину перед наступними змінами.
Згрупуйте нумеровані вузли за неорієнтованими зв'язками через неперетинні множини.
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())Порівняйте фактичну поведінку з очікуваним результатом. Якщо перевірка не проходить, з’ясуйте причину перед наступними змінами.
Налаштуйте OpenAI-сумісний або Anthropic endpoint із базовою URL-адресою та API-ключем, якщо він потрібен. Перевірте з’єднання. Локальний сервер моделі має працювати; віддалені інструменти можуть окремо передавати дані.
Перевірте окремі вузли, повторні ребра й порожній граф, відхиляючи хибні кінці до об'єднання.
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 — середовище програмування з ШІ для Windows, що поєднує вимогу до групування, її код і споживачів в одній розмові про розробку. Спочатку опишіть, що застосунок вважає зв’язним і який результат очікує. Попросіть модель вивчити поточне подання перед пропонуванням змін коду, який створює групи.
Для конкретного завдання використайте components.py, щоб обговорити зв’язок, який об’єднує дві раніше окремі групи. Додайте ізольовану вершину до прикладу й визначте очікуваний порядок результату. Приклад допомагає сформулювати запит на зміну без припущення, що математично еквівалентна колекція задовольнить серіалізатор або код відображення застосунку.
Перевірте пропозицію на цих межах. Перевірте допустимі ідентифікатори вершин, некоректні ребра й порожній випадок, а потім виконайте відповідні перевірки проєкту. Корисний результат має пояснювати і чому елементи належать одній групі, і чому повернута структура підходить споживачу. Не включайте непов’язані зміни сховища чи інтерфейсу до запиту на виправлення групування.
Підключіть модель через підтримувану OpenAI-сумісну кінцеву точку або кінцеву точку Anthropic, надавши облікові дані, де потрібно. Якщо сервіс пропонує аблітеровану модель ШІ, вона доступна для сеансу; обмеження залишаються залежними від постачальника. Доступні інструменти й контекст також залежать від моделі та сервера, тому обмежте дослідження кодом і доказами, які сеанс справді може використати.
Явно визначте це очікування. Список ребер може взагалі не згадувати ізольовану вершину, хоча застосунок знає про її існування. Додайте оголошену кількість вершин і приклад з ізольованою вершиною, щоб запропонований код не міг непомітно вилучити такі елементи.
Так, якщо споживач покладається на сталий порядок серіалізації, порівняння або відображення. Визначте, чи є порядок частиною інтерфейсу, а потім перевірте домовленість про результат. Математична еквівалентність сама по собі не доводить сумісності зі знімками чи подальшою обробкою в проєкті.
Визначте поведінку відхилення даних і перевірте, де вона повідомляється. Приклад перевіряє ідентифікатори за оголошеною кількістю вершин. Вивчіть реакцію коду виклику, не припускаючи, що сам виняток дає корисне повідомлення тому, хто надав дані групування.
Незалежно запишіть початкові групи й очікуваний склад об’єднаної групи, включно з незачепленою групою. Пропустіть приклад через змінений код і окремо перевірте порядок. Це дає конкретний результат до й після зміни без повторення реалізації всередині тесту.
UnionPebble · Оновлено 2026-10-25