Laboratorio QA de IMEI: importar, comprobar y reproducir
Ejecuta una prueba CSV completa con resultados esperados y observados. Comprueba formato, Luhn, valores ausentes y duplicados, y repite la misma verificación sin conexión.
Todos los ejemplos son inventarios simulados con datos sintéticos. No se consulta Apple MDM, Samsung Knox, operadores ni bases de datos de dispositivos. El texto importado se procesa en tu navegador; el laboratorio no lo sube al servidor.
1. Ejecuta una prueba de inventario
Hasta 200 filas. En CSV usa la cabecera imei; columnas opcionales: case_id, record_id, slot, expected_status, expected_duplicate. También se acepta el CSV completo del generador: sus metadatos descriptivos no se verifican ni acreditan la identidad del dispositivo. Exportar entrada CSV conserva las columnas originales. Los identificadores se mantienen como texto. Se omiten líneas vacías; usa una fila CSV explícita para probar un valor ausente.
Opcional: reproducir casos desde una semilla
La semilla y el escenario seleccionado generan las mismas cadenas con el contrato 1.0.0. Se sustituye la entrada anterior por casos positivos y negativos etiquetados. La semilla no selecciona prefijos de fabricantes.
Informe por fila
Contrato randomimei-qa 1.0.0. Las claves de estado de las descargas se mantienen en inglés. Un checksum válido no acredita asignación, propiedad ni estado en la red.
JSON conserva las cadenas exactas. Al importar CSV en una hoja de cálculo, configura los identificadores como Texto para conservar los ceros. El informe CSV antepone un apóstrofo a celdas similares a fórmulas; JSON conserva el original.
Entradas originales, estado observado, estado esperado, duplicados y resultado de las comprobaciones.
Caso / registro simulado
Original / normalizado
Observado
Esperado
Duplicado
Comprobación esperada
Por qué el ejemplo Apple separa los identificadores
El primer registro simulado tiene dos identificadores distintos, IMEI1 e IMEI2. Un segundo registro repite un identificador y omite IMEI2; un tercero tiene un checksum erróneo deliberado. Un dato ausente no es un fallo de checksum. El informe conserva record_id y slot sin afirmar que valida el esquema de respuesta de Apple ni la configuración SIM de un dispositivo.
Por qué el ejemplo Samsung normaliza antes de comparar
Dos registros simulados contienen las mismas cifras con separadores distintos. Se detecta un duplicado tras normalizar y la entrada original sigue visible. Otra fila conserva ceros iniciales y otra falla Luhn. El informe permite investigar duplicados; no fusiona ni corrige registros automáticamente ni acredita compatibilidad con Knox.
Descarga y descomprime el proyecto completo y ejecuta estos comandos dentro de su carpeta. Necesitas Node.js 20 o posterior y npm. No hay dependencias que instalar. El navegador y el proyecto ejecutan exactamente el mismo módulo contract.mjs.
El comando de verificación compara cada campo observado con el informe esperado publicado. Estas son las líneas de éxito esperadas; cualquier diferencia termina con código 1.
Ejecución local de referencia: 2026-09-09T18:02:03.915Z · Node v26.7.0 · 9 tests superados · 20 filas verificadas sin diferencias. Los archivos observados registran esa ejecución; no constituyen una certificación externa.
El contrato elimina espacios en blanco, separadores Unicode y guiones ASCII. Después solo acepta cifras ASCII. Un cuerpo de 14 cifras está incompleto; se muestra por separado una propuesta de 15 cifras. Luhn duplica las posiciones 2, 4, 6…14 desde la izquierda del cuerpo.
Los duplicados comparan cadenas normalizadas completas de 15 cifras por orden de entrada, incluidas las de checksum erróneo. Las filas posteriores remiten al primer caso. Los cuerpos incompletos y valores mal formados no participan. Los campos slot se conservan como etiquetas; tu aplicación decide cuáles son obligatorios.
Las columnas opcionales expected_status y expected_duplicate convierten el CSV en comprobaciones. La ausencia de una expectativa no equivale a un aprobado. Un caso deliberadamente inválido es una prueba correcta cuando el fallo observado coincide con lo esperado.
Ejemplos e informes originales: CC0-1.0. Código fuente: MIT. El kit no incluye catálogos TAC de terceros. Usa los datos sintéticos en entornos de prueba; los valores generados pueden coincidir con identificadores asignados.