Saltar al contenido
oracle

referencia · 13 temas · 101 entradas

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 y oracle manual <tema>.

ambito

dónde obliga una medida (campo ambito)

del_origen
la medida obliga sólo cuando el proyecto evaluado es dueño de su origen; un consumidor ajeno puede leerla, pero no recibe su veredicto
universal
la medida obliga a todo proyecto que seleccione el catálogo y aporte la evidencia necesaria para evaluarla

operadores

los seis operadores de una tubería, y desde, que la encabeza

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
sin
deja pasar cada fila para la que NINGUNA fila de la relación nombrada cumple la condición, y la deja tal como llegó: el alias nuevo sólo existe dentro de la condición
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 evidencia trae un defecto que una medida no debe dejar pasar. Nombra el peligro, no un episodio: vale igual si nadie llegó a caer en él, y es el caso que más enseña porque un verificador que calla ante esto 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

espera

resultado específico de un caso de defecto (campo opcional espera)

sin_evidencia
la medida debe declarar que no puede juzgar por falta de evidencia; sólo vale para un caso de defecto y se escribe después de `etiqueta`

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

aritmetica

aritmética infija de expresiones

a + b
suma
a - b
resta, con un espacio a cada lado: el impresor la escribe así y `a-b` queda fuera de la forma única. Los nombres de macro con guion siguen válidos en encabezados
a * b
producto; se agrupa antes que + y -
(a + b) * c
los paréntesis cambian la precedencia; operadores del mismo nivel se agrupan de izquierda a derecha
-1
literal negativo; también se acepta después de un operador, como a - -1
/
no hay división infija ni escalar de división incorporada; declarà una escalar y llamala por su nombre

casos

evidencia en la superficie .caso

tabla
escribí una cabecera y filas cuando todas comparten campos con nombres imprimibles
fila {…}
usá una línea por fila si los campos difieren o no caben en una cabecera; conserva la evidencia completa

macros

si la relación es el universo a evaluar, usá la variante -requiere

ninguno
cuenta infracciones; una relación vacía significa cero infracciones
ninguno-par
cuenta infracciones entre pares; admite una relación vacía
ninguno-par-requiere
como ninguno-par, pero exige filas en la relación de origen
ninguno-requiere
como ninguno, pero exige filas en la relación de origen
peor
mide el peor exceso; admite una relación vacía
peor-requiere
como peor, pero exige filas en la relación de origen

verbos

los verbos del CLI, por sustantivo

oracle biblioteca
instaladas · listar · nueva · verificar
oracle caso
generar · listar · nuevo
oracle manual
ambito · aritmetica · casos · como_se_detecto · espera · etiqueta · macros · medidas · operadores · procedencia · relaciones · segun · verbos
oracle medida
expandir · listar · nueva · probar · revisar
oracle
censar · juzgar · reportar
oracle plantilla
sensor-prosa
oracle proyecto
cambios · cobertura · contexto · escalares · init · juzgar · relaciones · test
oracle requisito
importar

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.el_requisito_nombra_medidas_que_existen
mira cada medida que un requisito nombra en `medido_por` contra el catálogo efectivo. NO juzga si la medida nombrada mide de verdad la promesa, ni si una medida en sombra la cubre. Un requisito sin `medido_por` no nombra nada y queda fuera; sin requisitos no hay nada que nombrar y verde es correcto. No usa la macro «ninguno» porque la macro no admite `sin`
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_cota_mas_alta_que_su_deuda
compara la cota declarada contra el valor que dio la medida ensombrecida en esta corrida. Sólo mira las sombras que declaran cota y que llegaron a evaluarse: sin cota, o con `valor` en -1 porque la medida no corrió, queda verde acá. NO ve si la cota es correcta en un proyecto que no corrió esta medida, y NO baja la cota sola: obliga a bajarla a mano, que es la mitad del punto — el número lo escribe una persona y queda en el commit
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
publica la edad máxima en días entre las sombras que superan el trimestre; sin incumplimientos publica 0 y ningún testigo, no la edad máxima de las sombras recientes. 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`. Sin sombras no hay antigüedad incumplida y verde es correcto
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_supera_su_cota
compara el valor que dio la medida ensombrecida contra la cota que su sombra declara, en esta corrida, y exige que ese valor exista. Sólo mira las sombras que declaran cota: una sin cota queda verde acá y se comporta como antes. NO verifica que la cota sea la deuda real de hoy —de eso se ocupa meta.ninguna_cota_mas_alta_que_su_deuda— ni que la medida ensombrecida siga existiendo en el catálogo —de eso se ocupa meta.ninguna_sombra_sobre_una_medida_que_no_existe—, así que una sombra con cota sobre una medida borrada dispara las dos y está bien que así sea
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.se_escribe_en_superficie
cuenta archivos JSON de medidas, casos y relaciones propios del proyecto en catalogos/, corpus/ y relaciones/. NO juzga archivos de bibliotecas, perfiles, historia ni el JSON canónico de intercambio
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_declara_su_ambito
ve que el campo `ambito` esté declarado y no en `sin_declarar`. NO juzga si el ámbito declarado es el correcto: esa segunda pregunta no la contesta ninguna medida
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`, un `sin` o un `agrupar` —`sin` deja pasar sólo las filas sin pareja, así que filtra—. NO juzga si el filtro discrimina bien, si el agrupamiento tiene la clave correcta ni si un conteo total fue intencional
meta.toda_medida_lee_campos_que_existen
ve si los campos leídos por las medidas están declarados en relaciones conocidas. NO ve relaciones sin declarar, ni si la variante leída es la que la medida filtra
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_caso_observado_declara_de_donde_salio
ve si el `origen` del caso nombra un comando o un registro. NO verifica que ese comando exista, que el registro esté ahí, que la corrida haya ocurrido ni que la evidencia salga de ella: un caso puede declarar los dos campos y mentir en los dos, y esta medida no lo ve. Tampoco mira los casos `construida` ni `generada`, que no afirman contacto con el mundo, ni los que no declaran procedencia — de eso se ocupa `meta.la_medida_no_se_fija_solo_con_evidencia_fabricada`
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 o sin mutantes de código, 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. Una ronda parcial marcada con parcial == true se considera inconclusa para propósitos de verificación formal del catálogo. 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. Si mutante viene vacía o sin mutantes de medida, la medida NO concluye —lo declara en requiere, y sale SIN EVIDENCIA en vez de verde—
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—.

Generado con oracle manual --html desde tools/manual.py.