Repository navigation
gains: la verdad de una ventana, con su estrato y su cierre - #1158
Merged
Merged
Conversation
La tabla que lleva la verdad, asi que lo que importa son las dos formas en que podria dejar de ser una copia de ella en silencio. LA POBLACION. queries excluye una proteina sin secuencia guardada, porque el FASTA exportado la excluye y las filas de entrenamiento tienen que ser sobre la poblacion puntuada. Asi que una ganancia de una proteina fuera de ese conjunto seria una ganancia de una consulta que el cargador no conoce, y las dos tablas discreparian sobre quienes son las consultas SIN QUE NINGUNA ESTE MAL POR SU CUENTA. El escritor calcula la poblacion una vez y REHUSA una ganancia fuera de ella, en vez de descartarla: descartar haria gains silenciosamente mas pequena que la verdad que copia, y un recuento de filas es lo unico contra lo que un lector podria compararla. Medido sobre las 65 admisibles: CERO proteinas delta sin secuencia, asi que el guarda no cambia nada hoy y lo dira cuando eso deje de ser verdad. La misma forma cubre un termino ganado que el eje no puede nombrar: el cargador agrupa por aspecto, asi que es una fila que no puede colocar. EL CIERRE, derivado del perfil en UN sitio. projected quiere decir que la ganancia se expresa en el pivote y as_closed en el grafo de cada extremo, y la misma ventana bajo dos cierres son dos verdades distintas. Un perfil sin cierre declarado se rehusa y no se adivina, y una prueba afirma que todos los valores de TRUTH_PROFILES tienen uno, para que anadir un perfil obligue a decir en que grafo cierra en el momento en que se declara y no al correr. LA FORMA, medida antes de escribir el codigo: 9.596.563 filas sobre esas 65 ventanas, la mayor 691.553 y la media 147.639. Seis columnas cortas a ese recuento es el unico sitio de este dataset donde construir una tupla por fila dolería: 9,6 millones de objetos con 58 millones de punteros. Asi que las columnas son seis listas paralelas a las que se anade por ventana, y el orden es estable POR CONSTRUCCION y no por un sort final: ventanas en orden, estratos en el suyo declarado, consultas ordenadas y terminos ordenados. Y la poblacion de queries se calcula UNA vez para las dos tablas, por lo mismo que los hechos de la ventana se leen una vez: dos calculos son dos oportunidades de que las tablas de un lote sean sobre poblaciones distintas. Tres pruebas antiguas se movieron porque su sujeto se implemento: el ejemplo de "tabla declarada y sin escribir" ya no puede ser gains y pasa a query_state. Una prueba cuyo sujeto se implementa tiene que moverse o deja de probar la negativa.
frapercan
disabled auto-merge
November 8, 2026 06:48
El sobremesa lo encontro leyendo el ADR que un PR anterior de este mismo proyecto habia escrito, y que decia exactamente esto: "closure toma dos valores, pivot y native, y es DERIVADO [...] El valor sale de comparar los dos nativos de la ventana contra su pivote [...] NO es truth_profile." Mi primera version tenia _CLOSURE_OF_PROFILE mapeando projected a pivot y as_closed a native, que es justo lo prohibido. Y la prueba recorria los valores de TRUTH_PROFILES, asi que no podia verlo: probaba la aritmetica del mapa, no la pregunta. LA PRUEBA DE QUE ESTA MAL ESTA EN LA BASE. Las gemelas (A) y (B) del par 160->177 son las DOS projected y se distinguen solo por sus nativos, asi que con el mapa la (B), e84dfec8, se habria escrito como "pivot". El laboratorio habia cometido el mismo error un dia antes y lo habia retirado. Ahora se deriva comparando los dos nativos contra el pivote y contra la ontologia del corpus de cada extremo, como ya hace el inventario de ventanas: pivot si los dos nativos son el pivote, native si cada uno es el snapshot de su extremo, y cualquier otra combinacion se REHUSA en vez de nombrarse. Los hechos de la ventana llevan ahora los dos snapshots de los extremos, leidos de las mismas filas de annotation_set de las que ya salian las versiones, asi que no cuesta ninguna consulta mas. Y la prueba recorre combinaciones de NATIVOS. La que importa afirma que dos ventanas projected pueden tener cierres DISTINTOS, que es la propiedad que el mapa hacia imposible de expresar. Las 65 de hoy son todas (A) y salian "pivot" por las dos vias, asi que no hay ningun dato mal escrito. Por eso era el momento barato. El ADR lleva registrado el error junto al aviso que ya estaba: no faltaba la advertencia, faltaba leerla.
…l docstring gains construye sus filas por ventana mientras la pasada las recorre y no ordena 9,6 millones de filas despues, asi que sus bytes eran una funcion del orden en que el LLAMANTE listara las ventanas: las mismas 65 en otro orden daban otro sha. Y mi propio docstring de ese escritor decia "the caller walks the windows sorted" mientras la pasada iteraba p.windows tal cual. La frase describia lo que deberia pasar, que es la misma forma del error de esta noche: una prueba escrita desde la implementacion no puede refutarla, y un docstring escrito desde la intencion tampoco. Ordenar en el validador hace que el orden canonico sea una propiedad de la CORRIDA y no de quien escribio la lista, que es sobre lo que un digest tiene que ser. No cambia nada semanticamente: el campo declara un CONJUNTO de ventanas. La prueba escribe la misma poblacion en los dos ordenes y compara los shas, mas la afirmacion de que dos payloads con las mismas ventanas en orden distinto dan la misma lista.
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## develop #1158 +/- ##
===========================================
+ Coverage 87.85% 88.09% +0.24%
===========================================
Files 306 402 +96
Lines 23414 31179 +7765
===========================================
+ Hits 20570 27467 +6897
- Misses 2844 3712 +868
🚀 New features to boost your workflow:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
La tabla que lleva la verdad, así que lo que importa son las dos formas en que podría dejar de ser una copia de ella en silencio.
La población
queriesexcluye una proteína sin secuencia guardada, porque el FASTA exportado la excluye y las filas de entrenamiento tienen que ser sobre la población puntuada. Así que una ganancia de una proteína fuera de ese conjunto sería una ganancia de una consulta que el cargador no conoce, y las dos tablas discreparían sobre quiénes son las consultas sin que ninguna esté mal por su cuenta.El escritor calcula la población una vez y rehúsa una ganancia fuera de ella, en vez de descartarla. Descartar haría
gainssilenciosamente más pequeña que la verdad que copia, y un recuento de filas es lo único contra lo que un lector podría compararla.Medido sobre las 65 admisibles: cero proteínas delta sin secuencia. El guarda no cambia nada hoy y lo dirá cuando eso deje de ser verdad. La misma forma cubre un término ganado que el eje no puede nombrar.
El cierre
Derivado del perfil en un sitio.
projectedquiere decir que la ganancia se expresa en el pivote yas_closeden el grafo de cada extremo, y la misma ventana bajo dos cierres son dos verdades distintas. Un perfil sin cierre declarado se rehúsa y no se adivina, y una prueba afirma que todos los valores deTRUTH_PROFILEStienen uno: así, añadir un perfil obliga a decir en qué grafo cierra en el momento en que se declara y no al correr.La forma, medida antes del código
9.596.563 filas sobre esas 65 ventanas, la mayor 691.553, la media 147.639. Seis columnas cortas a ese recuento es el único sitio de este dataset donde construir una tupla por fila dolería: 9,6 millones de objetos con 58 millones de punteros.
Así que las columnas son seis listas paralelas a las que se añade por ventana, y el orden es estable por construcción y no por un sort final: ventanas en orden, estratos en el suyo declarado, consultas ordenadas y términos ordenados.
Y la población de
queriesse calcula una vez para las dos tablas, por lo mismo que los hechos de la ventana se leen una vez.Pruebas
12 nuevas. Tres antiguas se movieron porque su sujeto se implementó: el ejemplo de «tabla declarada y sin escribir» ya no puede ser
gainsy pasa aquery_state. Una prueba cuyo sujeto se implementa tiene que moverse o deja de probar la negativa.Suite: 6398 pasan, 1 falla (
test_settings, el ruido conocido).