oracle · manual

Manual

Esta página no se escribió: se generó. Cada entrada sale de la declaración que el lenguaje ya tiene —los vocabularios cerrados, las relaciones que emite sobre sí mismo, los verbos del comando—, así que no hay dónde quede vieja. Lo mismo se lee en la terminal con oracle manual.

operadores segun etiqueta procedencia como_se_detecto relaciones verbos medidas

operadores

los seis operadores de una tubería

agrupar
junta las filas por una o más claves y calcula un agregado por grupo. Devuelve una fila por grupo, no una por fila: cambia de qué habla la tubería
de
nombra la relación de evidencia de la que salen las filas. Es el único operador que trae datos; todos los demás transforman lo que «de» trajo
desde
encabeza toda tubería. No es un paso: es la marca de que lo que sigue es una tubería y no otra cosa
donde
se queda con las filas que cumplen la condición. Sin él un rojo entrega como testigos todas las filas, también las que no ofendieron, y hay que leerlas a mano
resumen
cierra la tubería en un solo escalar, que es lo que el umbral compara. «contar» no evalúa la expresión: cuenta filas
unir
cruza dos relaciones fila contra fila. Los alias de los dos lados conviven en la fila resultante, así que la condición puede hablar de ambos

segun

de dónde salió el número de un umbral (campo `segun`)

contrato
el número lo fija algo externo que no se negocia: una especificación, el formato de un archivo, una norma, la API de un tercero
convencion
el número lo eligió el equipo y vale porque está escrito, no porque se haya medido. Cambiarlo es una decisión, no la corrección de un error
medicion
el número salió de medir la cosa real con un instrumento que se puede nombrar. Es el origen más fuerte, porque otro puede repetir la medición y discutirlo
tanteo
el número es provisorio: se puso para arrancar y todavía nadie lo justificó. Declararlo así es honesto; dejarlo así mucho tiempo, no

etiqueta

qué enseña un caso del corpus (campo `etiqueta`)

deuda_de_diseño
el defecto es real y el lenguaje todavía no puede expresarlo. Se guarda para que la falta quede escrita en vez de olvidarse
falso_rojo
la medida falló sobre algo que estaba bien. Enseña a ignorar el verificador, que es la forma más rápida de perderlo
falso_verde
la medida pasó y no debía: el defecto estaba ahí y no lo vio. Es el caso que más enseña, porque un verificador que calla es peor que no tenerlo
medida_correcta_conclusion_errada
la medida hizo lo que declara y aun así la conclusión fue equivocada: el error está en lo que se decidió medir, no en cómo se midió
verde_correcto
la medida pasó y correspondía. Hace falta tanto como un rojo: sin él, el mutador que quita el filtro sobrevive y nadie se entera

procedencia

de dónde salió la evidencia de un caso (campo `procedencia`)

construida
la evidencia se escribió a mano para ejercer la medida. Es honesto y no cierra nada que no deba cerrarse
generada
la produjo un generador a partir de una especificación, no una corrida del mundo
observada
la evidencia es lo que devolvió una corrida que ocurrió. Es una afirmación sobre el pasado, y Oracle NO puede verificarla: ante la duda, `construida`

como_se_detecto

quién encontró el defecto (campo `como_se_detecto`)

accidente
apareció haciendo otra cosa, y nadie lo estaba buscando. Vale igual: dice que en el camino donde sí se buscaba no estaba
herramienta_ajena
lo señaló una herramienta de afuera de Oracle
mutacion
lo encontró el arnés al romper la medida a propósito
observacion
salió de mirar de frente una corrida real, con la intención de encontrar algo
persona
lo vio alguien leyendo el código o la salida, sin que ninguna herramienta lo señalara

relaciones

las relaciones que el lenguaje emite sobre sí mismo

ambito_de_relacion
dónde puede aportar jurisdicción cada relación emitida; permite detectar una medida universal apoyada en evidencia que sólo pertenece a su origen
caso
cada caso del corpus: su polaridad, su procedencia, si la medida que reclama existe, y si es propio o heredado de una biblioteca
medida_en_uso
cuántos casos evalúan cada medida y cuántos mutantes le sobreviven; es la relación con la que Oracle mide si una medida está ejercitada o es adorno
mutador_excluido
cada mutador que el arnés no corre, con la premisa declarada y si sigue disponible en el registro del arnés; ninguna exclusión debe aplicarse globalmente para que el denominador de mutación no baje en silencio
opcion_del_vocabulario
cada opción de un vocabulario cerrado, con cuántas palabras la explican y si el manual la alcanza
relacion_documentada
si cada relación del lenguaje está nombrada en la especificación; existe para que una relación nueva no quede sin documentar en silencio
sombra
qué medidas heredadas se miden y se informan pero todavía no tumban la corrida, desde cuándo, con qué razón escrita y hace cuántos días — que es lo que permite envejecerlas y distinguir una transición de un estado permanente
verbo_del_cli
cada verbo que el comando acepta y si la ayuda lo nombra; un verbo fuera de la ayuda es trabajo terminado que nadie va a encontrar

verbos

los verbos del CLI, por sustantivo

oracle biblioteca
instaladas · listar · nueva · verificar
oracle caso
generar · listar · nuevo
oracle manual
como_se_detecto · etiqueta · medidas · operadores · procedencia · relaciones · segun · verbos
oracle medida
expandir · listar · nueva · probar · revisar
oracle
reportar
oracle proyecto
contexto · escalares · init · relaciones · test

medidas

las medidas universales que Oracle trae, y qué NO ve cada una

meta.el_caso_reclama_una_medida_que_existe
mira todos los casos, propios y heredados, y ve el id que cada caso RECLAMA: un caso de biblioteca colgado puede señalar una selección incompleta del proyecto. NO confunde esto con un hueco declarado —un caso sin medida no reclama nada— y NO ve si el id que existe es el adecuado para ese caso. Si caso viene vacía no hay casos que reclamen medidas inexistentes y verde es correcto; además el arnés de aceptación exige un corpus no vacío por construcción antes de evaluar L2
meta.el_caso_se_pone_como_debe
mira todos los casos, propios y heredados, y compara el veredicto contra la polaridad declarada: que un caso de biblioteca difiera en este entorno informa sobre este entorno. NO ve si el caso está bien etiquetado, ni si la evidencia que trae es la del defecto que dice traer. Si caso viene vacía no hay desacuerdos de polaridad y verde es correcto; además el arnés de aceptación exige un corpus no vacío por construcción antes de evaluar el nivel meta
meta.el_hueco_declarado_explica_por_que
mira sólo casos propios (`es_heredado == false`) y ve que cada caso marcado explícitamente como hueco abierto tenga una explicación; los huecos de una biblioteca responden ante su certificación. NO juzga esa explicación ni confunde casos resueltos o límites humanos con trabajo pendiente. Si caso viene vacía no hay huecos abiertos sin explicar y verde es correcto; además el arnés de aceptación exige un corpus no vacío por construcción
meta.el_nivel_no_se_confunde_con_el_dominio
compara el prefijo del nombre contra la relación de origen. NO ve si el dominio elegido es el correcto, ni si la medida mide lo que dice medir. Si medida viene vacía no hay medidas que confundan nivel con dominio y verde es correcto; además el catálogo evaluado contiene al menos las medidas meta por construcción
meta.la_medida_no_se_fija_solo_con_evidencia_fabricada
mira sólo casos propios (`es_heredado == false`), porque la fijación de una biblioteca es responsabilidad de su certificación. De esos casos mira lo que declaran sobre sí mismos. NO verifica que el commit exista, ni que la evidencia se corresponda con ese commit, ni que quien escribió `observada` haya observado algo. Un caso puede mentir en `procedencia` y esta medida no lo ve
meta.ningun_campo_sin_unidad_declarada
ve si cada campo de `campo_declarado` tiene `tiene_unidad` en false. NO juzga si la unidad declarada es la magnitud física correcta que emite el sensor
meta.ningun_flotante_comparado_por_igualdad_en_un_filtro
mira literales flotantes escritos en la forma canónica, cuando son operandos directos de `==` o `!=` y ese comparador está debajo de un `donde`. NO ve un flotante que llega por una escalar ni uno que sale de un campo, NO juzga igualdades exactas fuera de un filtro, y NO mira el umbral final, del que ya se ocupa `meta.ningun_umbral_flotante_de_igualdad`
meta.ningun_umbral_de_igualdad
mira sólo el operador final del umbral de cada medida. NO ve igualdades dentro de filtros o agregados, ni decide si `!=` es una política válida para un dominio concreto. Si medida viene vacía significa que no hay medidas en el catálogo que ofendan la regla y verde es correcto; además el catálogo evaluado contiene al menos las medidas meta por construcción
meta.ningun_umbral_flotante_de_igualdad
mira el operador y el tipo del valor final del umbral de cada medida. NO ve igualdades exactas dentro de expresiones o agregados — de ésas se ocupa el álgebra al evaluar — y NO juzga `==` sobre enteros, textos ni booleanos, que se comparan exacto
meta.ninguna_evidencia_declara_un_referente_sin_huella
mira si cada declaración de `referente_declarado` trae `tiene_huella` en false. NO verifica que el referente exista, que la huella corresponda a él, que quien la escribió haya leído algo ni si sigue vigente; sólo exige la huella necesaria para una comparación posterior
meta.ninguna_evidencia_se_juzga_con_referente_vencido
compara las dos huellas declaradas para cada identidad en `referente_comparado`. NO verifica que el referente exista, que una huella corresponda a su contenido ni que quien la declaró haya leído algo
meta.ninguna_medida_sin_alcance
ve si el `alcance` está VACÍO. NO impone una fórmula textual ni un idioma, y NO juzga si el punto ciego declarado es el correcto o el completo
meta.ninguna_sombra_envejece_sin_revisarse
cuenta días desde la fecha que la sombra declara. NO juzga si el motivo sigue siendo válido, ni si alguien la miró en el medio, ni si el arreglo avanzó; una sombra revisada ayer y una olvidada hace un año se ven igual si la fecha no cambió. Tampoco ve una fecha que no se pueda leer o que esté en el futuro: eso da días negativos y lo mide `meta.toda_sombra_declara_una_fecha_real`
meta.ninguna_sombra_sobre_una_medida_que_no_existe
compara contra el catálogo cargado. NO ve si el id está bien escrito ni sugiere a cuál se parecía
meta.ninguna_sombra_ya_en_verde
ve el veredicto de esta corrida. NO ve si el verde es estable ni si vino de evidencia flaca, y NO puede saber si mañana vuelve a ponerse roja
meta.toda_cantidad_comparada_tiene_unidad_derivable
cree lo que la declaración dice y NO verifica que el sensor emita en esa unidad
meta.toda_medida_de_ausencia_declara_requiere
detecta medidas cuya forma canónica contiene `unir` y `agrupar` pero ningún nodo `requiere`. NO demuestra que toda medida con ese patrón sea realmente de ausencia, ni que la relación requerida elegida sea la correcta
meta.toda_medida_esta_ejercitada
cuenta los casos del PROYECTO que la evalúan. NO exige nada de las medidas heredadas del catálogo base —de ésas responde oracle, con su propio corpus— ni ve si esos casos la ponen a prueba de verdad: para eso está la mutación. Si medida_en_uso viene vacía no hay medidas sin ejercitar y verde es correcto; además contiene una fila por medida cargada por construcción
meta.toda_medida_esta_fijada
exige al menos un mutante y ninguno vivo sólo cuando `debe_tener_mutantes` es verdadero. NO vuelve a exigirlos a medidas heredadas —responde su corpus de origen— ni a las evaluadas aparte, y NO ve los mutadores que nadie escribió. Si medida_en_uso viene vacía no hay medidas sin fijar y verde es correcto; además contiene una fila por medida cargada por construcción
meta.toda_medida_filtra_o_agrupa
mira la forma declarada y exige al menos un `donde` o un `agrupar`. NO juzga si el filtro discrimina bien, si el agrupamiento tiene la clave correcta ni si un conteo total fue intencional
meta.toda_sombra_declara_desde_y_porque
ve si los dos campos están declarados. NO juzga si el motivo es bueno ni si la fecha es cierta, ni ve las medidas que deberían estar en sombra y no se pusieron
meta.toda_sombra_declara_una_fecha_real
mira los días calculados, que salen negativos por dos motivos distintos: la fecha no se pudo leer, o está en el futuro. NO los distingue — el testigo trae la medida y los días, no la cadena original. Y NO juzga si una fecha legible es la verdadera: alguien puede escribir una de hace un mes sobre una sombra puesta hoy
meta.todo_tanteo_explica_por_que
ve sólo tanteos con defensa vacía. NO exige prosa a mediciones, contratos ni convenciones, y NO juzga si la explicación escrita alcanza
meta.todo_umbral_declara_de_donde_sale
ve si la etiqueta `segun` quedó en `sin_declarar`. NO juzga si la etiqueta elegida es verdadera ni si el número está bien defendido
proceso.afirmacion_declara_alcance
ve si el campo está VACÍO. NO ve si el alcance escrito es honesto, completo ni pertinente
proceso.arnes_con_bytecode_frio
ve la corrida que lo declara. NO ve otras formas de caché: módulos ya importados en memoria, o un import hecho por otro test antes de la mutación. Si corrida_mutacion viene vacía significa que no hubo corridas con bytecode caliente en la sesión y verde es correcto
proceso.codigo_con_mutante_que_lo_mata
cuenta mutantes de código de la ronda cuyo estado fue «pasaron» sin estar declarados como equivalentes. NO ve los mutadores que nadie escribió ni los operadores que el perfil de mutación no contempla: un mutante que no existe no puede sobrevivir. Tampoco juzga por sí sola si la ronda fue concluyente —eso lo mide proceso.ronda_mutacion_concluyente— ni si el bytecode estaba frío. Si mutante viene vacía la medida NO concluye —lo declara en requiere, y sale SIN EVIDENCIA en vez de verde—
proceso.modulo_alcanzable
sigue los imports estáticos desde las entradas declaradas, y descuenta los `__init__.py` vacíos, que son marcadores de paquete. NO ve la carga dinámica —importlib, un plugin, un punto de entrada por configuración— así que un módulo vivo por esa vía sale marcado, y si `alcanzable` viene vacía la medida NO concluye: lo declara en `requiere` y sale SIN EVIDENCIA en vez de verde
proceso.modulo_con_consumidor
cuenta importadores que no son tests, agrupando por módulo. Si `importa` viene vacía la medida NO concluye —lo declara en `requiere`, y sale SIN EVIDENCIA en vez de verde—. NO distingue un importador que usa el módulo de uno que lo importa y no lo llama
proceso.ronda_mutacion_concluyente
ve los estados estructurados publicados por cada corrida. NO distingue por sí sola si un código no cero fue una aserción o un error: eso depende del protocolo explícito del runner. Si corrida_mutacion viene vacía significa que no hubo rondas de mutación inconclusas y verde es correcto
proceso.sintaxis_valida_tras_edicion_masiva
ve archivos marcados como no parseables. NO ve el daño que SÍ parsea: una regex puede cambiar el significado de una línea sin romper la sintaxis. Si archivo viene vacía significa que no se detectaron archivos con sintaxis rota tras la edición masiva y verde es correcto
proceso.test_con_mutante_que_lo_mata
cuenta mutantes que ningún caso observó, de ninguna de las cuatro maneras. NO ve los mutantes que nadie generó: una medida sin ningún mutador aplicable da cero y sale verde. Tampoco distingue un mutante equivalente —imposible de matar— de uno que el corpus todavía no fija; esa diferencia hay que declararla a mano
proceso.verificacion_vigente
cuenta cambios marcados como código vivo. En v0.1 NO compara fechas ni sabe cuál verificación quedó vieja: cualquier cambio vivo la invalida. Hace falta comparar contra el commit de la verificación. Si cambio viene vacía significa que no hubo cambios recientes, por lo que la verificación sigue vigente
proceso.verificador_sin_falsos_rojos
ve hallazgos que YA fueron etiquetados como falsos. NO puede decidir sola si un hallazgo es real: alguien tuvo que mirarlo. Si hallazgo viene vacía significa que el verificador no reportó nada, por lo que el mundo está limpio de falsos rojos
simulacion.corrida_reproducible
compara dos ejecuciones con la MISMA semilla. NO ve si el resultado depende de algo de afuera —la hora, el orden de un diccionario, un archivo— que hoy casualmente no cambió. Si corrida viene vacía la medida NO concluye —lo declara en requiere, y sale SIN EVIDENCIA en vez de verde—.
simulacion.la_traza_no_tiene_huecos
compara cuántos eventos hay contra el instante final, asumiendo que el tiempo arranca en cero y avanza de a uno. NO ve trazas donde varios eventos comparten instante, ni sabe si el que falta es importante. Si evento viene vacío la medida NO concluye —lo declara en requiere, y sale SIN EVIDENCIA en vez de verde—.
simulacion.no_se_agoto_el_presupuesto
ve la clasificación producida por el contrato de terminación. NO ve si el presupuesto era razonable, ni si una corrida que terminó a tiempo lo hizo por el motivo correcto. Si corrida viene vacía la medida NO concluye —lo declara en requiere, y sale SIN EVIDENCIA en vez de verde—.