Skip to content

DSL Test Corpus

Golden examples для Pulse Policy DSL (см. docs/pulse/dsl-grammar.md).

Layout

dsl/
├── valid/
│   ├── <name>.dsl       — DSL expression (UTF-8, без BOM, no trailing whitespace)
│   └── <name>.json      — expected parse outcome: { valid: true, smt_satisfiable?: bool }
└── invalid/
    ├── <name>.dsl
    └── <name>.json      — { valid: false, errors: [{ code, ... }] }

Парсер обязан produce errors[].code точно совпадающий с expected entry. Validator (M1+) запускает корпус как часть PR pipeline.

Naming convention

  • <category>_<scenario>.dsl — например cohort_installed_unpaid.dsl, rule_engaged_free.dsl, null_handling.dsl.
  • Invalid: <error_code>_<scenario>.dsle004_hard_archetype.dsl, e005_double_amp.dsl.

Used by

  • pulse-dsl-parser unit tests (M1+).
  • /dsl/validate integration tests.
  • SMT compilation snapshot tests (M2+).