Hard batch G0022-G0026: 5/5 accepted; budget floor, CDS checks, mutation check

- generator: budget floor (2x oracle activations, 3x calls), static checks for CDS
  $parameters and UNION annotation
- harness/mutation.py: deterministic mutants of the reference; hidden tests must fail
- G0022 revalidated with harness fixes: oracle 100, null 0
- results in docs/faz1-tasarim.md 11f

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Kral
2026-10-03 05:16:30 +02:00
parent 3570d7ef9b
commit 32f03fcad4
53 changed files with 2931 additions and 14 deletions

View File

@@ -0,0 +1,107 @@
{
"id": "G0022",
"category": "D",
"object_type": "CLAS",
"difficulty": 2,
"release_target": "v816",
"expected_outcome": "implement",
"budget": {
"max_tool_calls": 45,
"max_activations": 14
},
"seed": [
{
"type": "INTF",
"name": "{{P}}IF_EXPENSE_CLAIM",
"file": "seed/if_expense_claim.intf.abap",
"description": "Types for an expense claim"
},
{
"type": "CLAS",
"name": "{{P}}CX_CLAIM_ERROR",
"file": "seed/cx_claim_error.clas.abap",
"description": "Base exception that carries a message text"
}
],
"contract": [
{
"type": "CLAS",
"name": "{{P}}CX_CLAIM_AMOUNT"
},
{
"type": "CLAS",
"name": "{{P}}CX_CLAIM_CURRENCY"
},
{
"type": "CLAS",
"name": "{{P}}CX_CLAIM_DATE"
},
{
"type": "CLAS",
"name": "{{P}}CX_CLAIM_RECEIPT"
},
{
"type": "CLAS",
"name": "{{P}}CX_CLAIM_COSTCENTER"
},
{
"type": "CLAS",
"name": "{{P}}EXPENSE_VALIDATOR"
}
],
"out_of_scope": [
"{{P}}IF_EXPENSE_CLAIM",
"{{P}}CX_CLAIM_ERROR"
],
"hidden_tests": [
{
"type": "CLAS",
"name": "{{P}}D01_HIDDEN",
"file": "hidden/d01_hidden.clas.abap",
"description": "Hidden tests for the expense claim validation"
}
],
"reference": [
{
"type": "CLAS",
"name": "{{P}}CX_CLAIM_AMOUNT",
"file": "reference/cx_claim_amount.clas.abap",
"description": "Exception for a non positive amount"
},
{
"type": "CLAS",
"name": "{{P}}CX_CLAIM_CURRENCY",
"file": "reference/cx_claim_currency.clas.abap",
"description": "Exception for an unsupported currency"
},
{
"type": "CLAS",
"name": "{{P}}CX_CLAIM_DATE",
"file": "reference/cx_claim_date.clas.abap",
"description": "Exception for a claim date in the future"
},
{
"type": "CLAS",
"name": "{{P}}CX_CLAIM_RECEIPT",
"file": "reference/cx_claim_receipt.clas.abap",
"description": "Exception for a missing receipt"
},
{
"type": "CLAS",
"name": "{{P}}CX_CLAIM_COSTCENTER",
"file": "reference/cx_claim_costcenter.clas.abap",
"description": "Exception for a missing cost center"
},
{
"type": "CLAS",
"name": "{{P}}EXPENSE_VALIDATOR",
"file": "reference/expense_validator.clas.abap",
"description": "Validates an expense claim and raises class-based exceptions",
"testclasses_file": "reference/expense_validator.testclasses.abap"
}
],
"craft_checks": [
"method_length",
"exception_design"
]
}