Proyecto
Prueba cero y el máximo que cabe, rechazando booleanos, anchos inválidos y valores que excedan el ancho.
Convierte palabras enteras a código Gray y de vuelta con un ancho explícito de uno a 16 bits.
def checked_word(value, width):
if type(width) is not int or not 1 <= width <= 16:
raise ValueError("word.width")
if type(value) is not int or not 0 <= value < (1 << width):
raise ValueError("word.value")
return value
def to_gray(value, width):
value = checked_word(value, width)
return value ^ (value >> 1)
def from_gray(value, width):
value = checked_word(value, width)
result = 0
while value:
result ^= value
value >>= 1
return resultPrueba cero y el máximo que cabe, rechazando booleanos, anchos inválidos y valores que excedan el ancho.
Compara el comportamiento real con el resultado esperado. Si una prueba falla, investiga la causa antes de hacer más cambios.
Configura un endpoint compatible con OpenAI o Anthropic usando la URL base y, si hace falta, una clave API. Prueba la conexión. Un servidor local debe estar en ejecución; las herramientas remotas pueden enviar datos por separado.
def checked_word(value, width):
if type(width) is not int or not 1 <= width <= 16:
raise ValueError("word.width")
if type(value) is not int or not 0 <= value < (1 << width):
raise ValueError("word.value")
return value
def to_gray(value, width):
value = checked_word(value, width)
return value ^ (value >> 1)
def from_gray(value, width):
value = checked_word(value, width)
result = 0
while value:
result ^= value
value >>= 1
return resultGraySorrel es un entorno de programación con IA para Windows que permite hacer visibles los supuestos de representación durante el desarrollo. Incorpora el código de conversión y el que lo utiliza a una conversación sobre el proyecto e indica qué valores y anchuras admite la interfaz. Ese contexto ayuda al modelo a analizar un cambio concreto en lugar de sugerir una rutina general con límites diferentes.
Considera como tarea una conversión de código Gray de anchura fija. Pide que se examinen conjuntamente la conversión directa y la inversa, incluida la comprobación de entrada compartida. Aporta algunos valores conocidos y un caso límite de anchura, y solicita solo las correcciones necesarias para el contrato previsto. El ejemplo da a la conversación un objetivo comprobable.
Revisa cómo trata la propuesta los valores que exceden la anchura elegida. Truncarlos silenciosamente o rechazarlos explícitamente produce comportamientos distintos, aunque las conversiones habituales coincidan. Ejecuta las pruebas del proyecto, compara conversiones de ida y vuelta dentro del intervalo admitido y examina la gestión de errores del código que llama a la función. Conserva tanto las codificaciones exactas esperadas como los ejemplos reversibles.
Conecta un modelo mediante un endpoint compatible con OpenAI o de Anthropic admitido y añade credenciales si son necesarias. La elección de un modelo de IA sin censura se aplica cuando tu endpoint ofrece uno; sus restricciones reales siguen siendo relevantes. Las herramientas disponibles y la capacidad de contexto dependen del modelo y del servidor, mientras tú conservas la responsabilidad sobre el contrato y el parche final.
No. Dos funciones pueden ser inversas entre sí y, aun así, implementar una correspondencia incorrecta. Incluye codificaciones conocidas de forma independiente, además de comprobaciones de ida y vuelta, y examina cómo interpreta el resultado el código que lo utiliza antes de aceptar el cambio propuesto.
Especifica si el contrato los rechaza o los trunca deliberadamente. Pide al modelo que siga la validación existente y las expectativas de quienes llaman a la función. El enmascaramiento cambia el comportamiento si antes recibían un error, aunque simplifique la conversión.
Empieza por el código que almacena, compara o transmite el valor convertido, junto con las pruebas pertinentes. Eso revela los supuestos de anchura y representación. Amplía el contexto solo cuando la inspección identifique otra dependencia necesaria para entender la modificación propuesta.
No. Verifica el intervalo admitido en el código y las pruebas. Examina también la ejecución de herramientas: utilizar un servidor de modelos local que se ejecuta por separado no convierte en locales todas las herramientas conectadas ni determina dónde se ejecutan realmente esas pruebas.
GraySorrel · Actualizado 2026-10-25