Revise antes de aplicar
Compare o comportamento real com o resultado esperado. Se uma verificação falhar, investigue a causa antes de fazer outras alterações.
Agrupe nós numerados por conexões não direcionadas usando conjuntos disjuntos.
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())Compare o comportamento real com o resultado esperado. Se uma verificação falhar, investigue a causa antes de fazer outras alterações.
Configure um endpoint compatível com OpenAI ou Anthropic com a URL base e uma chave API, quando necessária. Teste a conexão. O servidor local precisa estar em execução; ferramentas remotas podem transmitir dados separadamente.
Teste nós isolados, arestas repetidas e um grafo vazio, rejeitando extremidades inválidas antes de unir componentes.
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 é um ambiente de programação com IA para Windows que reúne um requisito de agrupamento, seu código-fonte e seus consumidores em uma conversa de desenvolvimento. Comece descrevendo o que a aplicação considera conectado e o que espera receber. Peça ao modelo que inspecione a representação existente antes de sugerir alterações no código que cria grupos.
Para uma tarefa concreta, use components.py para discutir uma conexão que una dois grupos antes separados. Inclua um nó isolado no caso de teste e declare a ordem esperada da saída. O exemplo ajuda a formular uma solicitação de alteração sem presumir que uma coleção matematicamente equivalente atenderá ao serializador ou ao código de exibição da aplicação.
Revise a proposta nesses limites. Confira identificadores de nós aceitos, arestas inválidas e o caso vazio; depois execute as verificações pertinentes do projeto. Um resultado útil deve explicar tanto por que os membros pertencem ao mesmo grupo quanto por que a estrutura retornada atende ao consumidor. Mantenha mudanças não relacionadas de armazenamento ou interface fora de uma solicitação destinada a corrigir o agrupamento.
Conecte um modelo por um endpoint suportado compatível com OpenAI ou da Anthropic, fornecendo credenciais quando exigidas. Se o serviço oferecer um modelo de IA abliterado, ele é uma opção para a sessão; as restrições continuam dependendo do provedor. Ferramentas disponíveis e contexto também dependem do modelo e do servidor, portanto delimite a inspeção ao código-fonte e às evidências que a sessão realmente pode usar.
Defina essa expectativa explicitamente. Uma lista de arestas pode nunca mencionar um nó isolado, mesmo que a aplicação saiba de sua existência. Inclua o número declarado de nós e um caso isolado para que o código proposto não descarte silenciosamente essas entradas do resultado.
Sim, se um consumidor depender de uma ordem estável para serialização, comparação ou apresentação. Declare se a ordenação faz parte da interface e inspecione a convenção de saída. A equivalência matemática por si só não prova compatibilidade com snapshots ou processamento posterior no projeto.
Defina o comportamento de entrada rejeitada e inspecione onde ele é apresentado. O exemplo valida identificadores em relação ao número declarado de nós. Revise a resposta do chamador em vez de presumir que uma exceção sozinha comunica um erro útil a quem forneceu os dados de agrupamento.
Escreva de forma independente os grupos iniciais e os membros esperados após a mesclagem, incluindo um grupo não afetado. Execute o caso no código alterado e inspecione a ordenação separadamente. Isso dá à revisão um resultado concreto de antes e depois sem repetir a implementação no teste.
UnionPebble · Atualizado 2026-10-25