Proyecto
Prueba la entrada vacía y alturas iguales, rechazando negativos o booleanos sin modificar la entrada.
Encuentra el rectángulo máximo bajo barras de ancho uno con hasta 256 alturas enteras entre cero y 1000000.
def histogram_area(heights):
heights = tuple(heights)
if len(heights) > 256 or any(type(h) is not int or not 0 <= h <= 1000000 for h in heights):
raise ValueError("height.range")
stack, best = [], 0
for i in range(len(heights) + 1):
current = heights[i] if i < len(heights) else 0
while stack and heights[stack[-1]] > current:
height = heights[stack.pop()]
start = stack[-1] + 1 if stack else 0
best = max(best, height * (i - start))
stack.append(i)
return bestPrueba la entrada vacía y alturas iguales, rechazando negativos o booleanos sin modificar la entrada.
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 histogram_area(heights):
heights = tuple(heights)
if len(heights) > 256 or any(type(h) is not int or not 0 <= h <= 1000000 for h in heights):
raise ValueError("height.range")
stack, best = [], 0
for i in range(len(heights) + 1):
current = heights[i] if i < len(heights) else 0
while stack and heights[stack[-1]] > current:
height = heights[stack.pop()]
start = stack[-1] + 1 if stack else 0
best = max(best, height * (i - start))
stack.append(i)
return bestBarCumulus es un espacio de programación con IA para Windows donde revisar un cambio de implementación sin perder el comportamiento que debía conservar. Abre la carpeta del proyecto y explica por qué quieres refactorizar: un estado más claro, una función auxiliar más pequeña o pruebas más sencillas. Pide al modelo que inspeccione el contrato existente antes de proponer una sustitución.
Puedes conectar un modelo de IA sin censura si lo ofrece tu endpoint admitido compatible con OpenAI o de Anthropic. Añade credenciales cuando sean necesarias. Las restricciones del proveedor, las capacidades de las herramientas y los límites de contexto siguen vigentes; usa la conversación para desarrollar razonamientos revisables, en lugar de considerar mejor una implementación solo porque tenga otro aspecto.
Un ejemplo es el cálculo del rectángulo máximo a partir de alturas de barras. Solicita una revisión de cómo trata el código las mesetas, la entrada vacía y el trabajo pendiente al final. Incluye casos pequeños con resultados comprobados manualmente y pregunta al modelo qué partes de la refactorización propuesta conservan esos casos y cuáles los cambian.
Inspecciona las diferencias resultantes y ejecuta las comprobaciones del proyecto en la misma versión que piensas conservar. Para cambios complejos, compara con una implementación sencilla independiente usando entradas pequeñas. Esa comparación aporta pruebas dentro del intervalo examinado; no convierte el espacio de programación en un sistema automático de demostración.
Indica un problema de mantenimiento evaluable, como transiciones de estado poco claras o tratamiento duplicado. Pide la propuesta más pequeña que lo resuelva. Una sustitución debe justificarse por su legibilidad y comportamiento verificado, no solo por su novedad.
Los valores iguales pueden revelar supuestos sobre cuándo se conserva o elimina el estado pendiente. Incluye una meseta corta con resultado esperado conocido. Pide al modelo que explique ese caso según la implementación propuesta antes de revisar ejemplos mayores.
Respaldan la equivalencia para las entradas probadas y pueden revelar discrepancias. Mantén visibles el intervalo de entradas y la implementación de referencia, e investiga las diferencias. No describas pruebas finitas como una demostración para todas las entradas posibles que acepta la función de producción.
Lee sus límites de entrada y su plan de ejecución antes de ejecutarlo. Confirma también los destinos de las herramientas: la inferencia local requiere un servidor independiente y no hace locales todas las herramientas de ejecución conectadas. Mantén deliberadamente pequeñas las cargas de prueba.
BarCumulus · Actualizado 2026-10-25