Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

[TS PBT] Guide relational and metamorphic properties across multiple executions

Abierto
#401 0 comentarios 0 reacciones 0 asignados Ver en GitHub

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

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

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de UnitTestBot/usvm

Todos los issues de UnitTestBot/usvm

Issues similares

Más issues de Kotlin

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.