volver al archivo
01
MAY
día 01 / 30

Fragmentos de la Hespérides

Fácil
arraysstringsfilter
historia · contexto

Historia

Día 1

El primer paquete llega a las 03:14. Lo abres con el desayuno frío al lado del teclado.

Dentro: 4.7 GB de telemetría de la estación Hespérides comprimidos en un .tar.gz que la Corporación Zeew te mandó por valija diplomática. Sin metadata. Sin nombres de archivo. Solo bytes.

El log principal está corrupto en al menos un 60%. Líneas vacías, basura cósmica, headers a medio escribir. Tu cliente —un señor con voz de no preguntes— solo te pidió separar la señal del ruido.

Lo que pasó en la Hespérides es problema de otros. Tú revisas archivos, cobras y te olvidas.

Empiezas.

objetivo · spec

Tu misión

Tu misión

Una entrada del log está válida si empieza exactamente con [OK] (corchete, OK, corchete, espacio).

Implementa extraerLogsValidos(lineas) que recibe un array de strings y devuelve solo las líneas válidas, con el prefijo [OK] removido y manteniendo el orden original.

Ejemplo

extraerLogsValidos([
  '[OK] sistema arrancado',
  'ERR fallo de buffer',
  '',
  '[OK] modulo de oxigeno listo',
  '###',
])
// → ['sistema arrancado', 'modulo de oxigeno listo']

Reglas

  • Si [OK] aparece en medio de la línea, no cuenta.
  • Las líneas vacías se descartan.
  • El array vacío de entrada devuelve un array vacío.
validación

Casos de prueba

tests/6.casesmostrando 5 de 6
  1. [01]mezcla típica: válidos + corruptos + vacíos
  2. [02]array vacío → resultado vacío
  3. [03]todo basura → vacío
  4. [04]todo válido, mantiene orden
  5. [05][OK] solo cuenta al inicio
  6. … y 1 caso más, ocultos hasta enviar.