[TS PBT] Guide relational and metamorphic properties across multiple executions
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 25/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- javascript, typescript
- Área
- compilers, testing-qa
Línea de trabajo
Start by reading the completed core assessment in #405 and the observation/projection contracts in #396/#398, then review the related work in #395, #351/#352/#353 and #397. Define focused experiments for correlated multi-execution relations, shrinking and feedback, using the listed fixtures and original oracles. Done means the round-trip, idempotence and one additional relation have meaningful examples and separate held-out evaluation is prepared for #356/#357.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Part of the full #345 delivery. Builds on #395, #351/#352/#353 and the observation/projection contracts in #396/#398.
Delivery stage
This is a stage-two extension of #345. Complete and record the core assessment in #405 before accepting this extension's end-to-end integration and results. Literature, interface design and focused experiments may start earlier; the extension never blocks #355 or #405.
Reuse the completed core contracts. This issue owns any extension-specific changes to observation, binding, scheduling, replay, shrinking and feedback integration, with focused follow-up PRs; do not retroactively broaden #351/#352 or require already completed core issues to reopen. A negative or inconclusive pilot is recorded honestly and informs design; it does not silently cancel this full-roadmap obligation.
Publish a separately identifiable extension configuration and evaluate it against the same original oracle with the extension disabled. Its final held-out evaluation belongs to #357 and is reported separately from the development pilot.
Goal
Exploit human-written relations between executions, including round-trip, idempotence, commutativity and reference equivalence, as first-class search and observation contexts.
Scope
- Reuse original TypeScript predicates that call the tested program multiple times. Add declarative relation/context metadata only where it enables pairing or selection; do not require a second manually rewritten oracle.
- Model shared symbolic base inputs and the stated transformations between executions. Preserve correlation instead of treating the calls as independent random samples.
- Specify when calls share predicate-local state and when independent runs need fresh state. Follow ordinary user-code semantics; never silently clone away intended aliasing/mutation.
- Pair observed intermediate/results across related calls, preserving call identities, original inputs, transformations and assertion identity. Feed scoped relational hypotheses to #397/#398.
- Compare direct search for the relational assertion with observation-guided search for its relevant intermediate relations. Correctly classify a false law/specification separately from a known implementation defect.
- Include finite-float cases where a mathematical identity is false under JavaScript, NaN-sensitive equality, duplicate-sensitive collections and a relation requiring more than one execution.
- Shrink the shared base input or related input tuple while preserving the transformation/relationship and the same failed assertion.
Definition of Done
- Round-trip and idempotence plus at least one of reference equivalence/commutativity have meaningful real or curated examples with original concrete oracles.
- A multi-execution observation changes a symbolic target and its candidate is confirmed through the complete TypeScript relation.
- Correlation, mutation/isolation, wrong relation scope and unsupported transformations have explicit fixtures.
- #356/#357 include paired held-out evaluation against the same relational properties with observation feedback disabled; no improvement is inferred merely from having a stronger oracle.
- Lenguaje dominante
- Kotlin
- Estrellas
- 33
- Forks
- 27
- Merge medio
- 3 d 8 h
- PR fusionados (30 d)
- 7
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de UnitTestBot/usvm
-
enhancement
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
UnitTestBot/usvm#440 ·
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 4/5 3-5 días Aptitud para principiantes 55/100
UnitTestBot/usvm#439 ·
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 3/5 1-2 días Aptitud para principiantes 70/100
UnitTestBot/usvm#438 ·
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 3/5 1-2 días Aptitud para principiantes 72/100
UnitTestBot/usvm#437 ·
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 4/5 3-5 días Aptitud para principiantes 62/100
UnitTestBot/usvm#436 ·
Los mantenedores suelen responder en 1 día
Todos los issues de UnitTestBot/usvm
Issues similares
-
Dificultad 1/5 1-3 horas Aptitud para principiantes 90/100
Los mantenedores suelen responder en 5 días
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
home-assistant/android#7561 ·
Los mantenedores suelen responder en 1 día
-
Posthog-js version outdatedAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
PostHog/posthog-kmp#90 · 1 comentario · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
contributor: external needs review
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
fwcd/tree-sitter-kotlin#289 ·