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.
Resolva um sistema linear quadrado de inteiros com até oito equações usando frações exatas.
from fractions import Fraction
def solve_linear(matrix, rhs):
matrix, rhs = [tuple(row) for row in matrix], tuple(rhs)
n = len(matrix)
if not 1 <= n <= 8 or len(rhs) != n or any(len(row) != n for row in matrix):
raise ValueError("system.shape")
if any(type(v) is not int or abs(v) > 1000000 for row in matrix for v in row) or any(type(v) is not int or abs(v) > 1000000 for v in rhs):
raise ValueError("coefficient.range")
a = [[Fraction(v) for v in row] + [Fraction(rhs[i])] for i, row in enumerate(matrix)]
for col in range(n):
pivot = next((r for r in range(col, n) if a[r][col]), None)
if pivot is None:
raise ValueError("system.singular")
a[col], a[pivot] = a[pivot], a[col]
scale = a[col][col]
a[col] = [v / scale for v in a[col]]
for r in range(n):
if r != col:
factor = a[r][col]
a[r] = [x - factor * y for x, y in zip(a[r], a[col])]
return [row[-1] for row in a]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 uma troca de linhas necessária e uma solução fracionária, rejeitando sistemas singulares ou dimensões incompatíveis sem alterar as entradas.
from fractions import Fraction
def solve_linear(matrix, rhs):
matrix, rhs = [tuple(row) for row in matrix], tuple(rhs)
n = len(matrix)
if not 1 <= n <= 8 or len(rhs) != n or any(len(row) != n for row in matrix):
raise ValueError("system.shape")
if any(type(v) is not int or abs(v) > 1000000 for row in matrix for v in row) or any(type(v) is not int or abs(v) > 1000000 for v in rhs):
raise ValueError("coefficient.range")
a = [[Fraction(v) for v in row] + [Fraction(rhs[i])] for i, row in enumerate(matrix)]
for col in range(n):
pivot = next((r for r in range(col, n) if a[r][col]), None)
if pivot is None:
raise ValueError("system.singular")
a[col], a[pivot] = a[pivot], a[col]
scale = a[col][col]
a[col] = [v / scale for v in a[col]]
for r in range(n):
if r != col:
factor = a[r][col]
a[r] = [x - factor * y for x, y in zip(a[r], a[col])]
return [row[-1] for row in a]O PivotQuartz é um ambiente de programação para Windows para desenvolver código de aplicações numéricas com critérios explícitos de aceitação. Abra a pasta do projeto e identifique a função, sua representação de entrada e o consumidor do resultado. O modelo conectado pode discutir uma mudança nesse contexto enquanto você examina se a proposta preserva as premissas do chamador.
Uma solicitação de revisão usando linear.py pode comparar um resultado fracionário exato com o que a aplicação espera exibir ou serializar. Forneça um sistema pequeno com solução conhecida e um caso singular que deve ser rejeitado. Pergunte como a refatoração proposta trata ambos os caminhos antes de aceitar alterações na aritmética ou nos tipos dos resultados.
Esse fluxo torna a correção e a integração partes da mesma discussão. Execute verificações independentes dos resultados no ambiente de desenvolvimento e examine erros e formatação da saída por meio do chamador. Converter frações em valores de ponto flutuante pode ser uma escolha deliberada da aplicação, mas merece um limite declarado, em vez de aparecer incidentalmente em uma limpeza de código.
Escolha um modelo de IA sem censura onde estiver disponível por um endpoint compatível com OpenAI ou endpoint Anthropic suportado, fornecendo credenciais quando exigidas. As restrições do provedor continuam em vigor, e o modelo e o servidor definem o suporte a ferramentas e a capacidade de contexto. O PivotQuartz fornece o ambiente para revisar o código-fonte; os resultados esperados do seu projeto fornecem as evidências para aceitar uma edição.
Somente se a aplicação exigir explicitamente uma aproximação com significado definido. O exemplo rejeita sistemas singulares. Examine como o chamador trata essa falha e mantenha a mudança para aproximações separada de uma refatoração destinada a preservar resultados exatos.
Substitua-a nas equações originais usando um cálculo independente apropriado e compare com o lado direito fornecido. Inclua um caso que exija troca de linhas. Verifique também a representação da saída, pois um valor correto ainda pode violar o tipo esperado pelo chamador.
Normalmente, a camada responsável pela apresentação deve tomar essa decisão explicitamente. Examine a estrutura atual do projeto e defina o formato exigido pelo consumidor. Evite introduzir arredondamento em uma função auxiliar interna, a menos que isso faça parte do contrato numérico acordado.
Forneça a rotina, o código que constrói suas entradas e o tratamento de erros do chamador. Inclua dimensões incompatíveis como caso de teste. Um teste apenas da aritmética interna não comprova que dados malformados da aplicação recebam a resposta esperada pela interface.
PivotQuartz · Atualizado 2026-10-25