Step F first pass: 81/92 accepted; budget floor 60 calls; rejected slots moved for regeneration

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014aUaQeLnwbb1zTpN7kHeat
This commit is contained in:
Kral
2026-10-03 12:10:52 +02:00
parent d3250acfb8
commit 39769afce8
741 changed files with 40573 additions and 317 deletions

View File

@@ -331,8 +331,10 @@ def floor_budget(task):
pushes = sum(bool(o.get("file")) + bool(o.get("testclasses_file")) for o in ref) pushes = sum(bool(o.get("file")) + bool(o.get("testclasses_file")) for o in ref)
calls = len(ref) + pushes calls = len(ref) + pushes
bud = task.setdefault("budget", {}) bud = task.setdefault("budget", {})
bud["max_activations"] = max(int(bud.get("max_activations", 0)), 2 * pushes) # absolute floor (design default 60): with 40 calls DeepSeek used the budget to read the seed tables and
bud["max_tool_calls"] = max(int(bud.get("max_tool_calls", 0)), 3 * calls) # stopped before its own tests (empirical runs G0017, G0024)
bud["max_activations"] = max(int(bud.get("max_activations", 0)), 2 * pushes, 15)
bud["max_tool_calls"] = max(int(bud.get("max_tool_calls", 0)), 3 * calls, 60)
KEEP_FILES = {"generation.json", "review.json"} KEEP_FILES = {"generation.json", "review.json"}

View File

@@ -0,0 +1,18 @@
{
"deepseek-v4.1-flash:cloud": {
"score": 98.5,
"parts": {
"correctness": 40.0,
"craft": 20.0,
"clean": 13.5,
"own_tests": 15.0,
"discipline": 10.0,
"total": 98.5,
"note": "own_tests: faulty-reference part not implemented in skeleton"
},
"hidden": "13/13",
"tool_calls": 22,
"seconds": 376.4,
"run_dir": "runs/emp/10000_G0002_llm_deepseek-v4.1-flash_cloud"
}
}

View File

@@ -6,8 +6,8 @@
"release_target": "v816", "release_target": "v816",
"expected_outcome": "implement", "expected_outcome": "implement",
"budget": { "budget": {
"max_tool_calls": 50, "max_tool_calls": 60,
"max_activations": 12 "max_activations": 15
}, },
"seed": [], "seed": [],
"contract": [ "contract": [

View File

@@ -0,0 +1,18 @@
{
"deepseek-v4.1-flash:cloud": {
"score": 100.0,
"parts": {
"correctness": 40.0,
"craft": 20.0,
"clean": 15.0,
"own_tests": 15.0,
"discipline": 10.0,
"total": 100.0,
"note": "own_tests: faulty-reference part not implemented in skeleton"
},
"hidden": "11/11",
"tool_calls": 13,
"seconds": 58.9,
"run_dir": "runs/emp/10001_G0003_llm_deepseek-v4.1-flash_cloud"
}
}

View File

@@ -0,0 +1,18 @@
{
"deepseek-v4.1-flash:cloud": {
"score": 100.0,
"parts": {
"correctness": 40.0,
"craft": 20.0,
"clean": 15.0,
"own_tests": 15.0,
"discipline": 10.0,
"total": 100.0,
"note": "own_tests: faulty-reference part not implemented in skeleton"
},
"hidden": "10/10",
"tool_calls": 9,
"seconds": 58.6,
"run_dir": "runs/emp/10002_G0004_llm_deepseek-v4.1-flash_cloud"
}
}

View File

@@ -7,7 +7,7 @@
"expected_outcome": "implement", "expected_outcome": "implement",
"budget": { "budget": {
"max_tool_calls": 60, "max_tool_calls": 60,
"max_activations": 12 "max_activations": 15
}, },
"seed": [ "seed": [
{ {

View File

@@ -0,0 +1,18 @@
{
"deepseek-v4.1-flash:cloud": {
"score": 100.0,
"parts": {
"correctness": 40.0,
"craft": 20.0,
"clean": 15.0,
"own_tests": 15.0,
"discipline": 10.0,
"total": 100.0,
"note": "own_tests: faulty-reference part not implemented in skeleton"
},
"hidden": "10/10",
"tool_calls": 6,
"seconds": 23.4,
"run_dir": "runs/emp/10003_G0007_llm_deepseek-v4.1-flash_cloud"
}
}

View File

@@ -6,8 +6,8 @@
"release_target": "v816", "release_target": "v816",
"expected_outcome": "implement", "expected_outcome": "implement",
"budget": { "budget": {
"max_tool_calls": 40, "max_tool_calls": 60,
"max_activations": 10 "max_activations": 15
}, },
"seed": [ "seed": [
{ {

View File

@@ -0,0 +1,18 @@
{
"deepseek-v4.1-flash:cloud": {
"score": 100.0,
"parts": {
"correctness": 40.0,
"craft": 20.0,
"clean": 15.0,
"own_tests": 15.0,
"discipline": 10.0,
"total": 100.0,
"note": "own_tests: faulty-reference part not implemented in skeleton"
},
"hidden": "11/11",
"tool_calls": 12,
"seconds": 241.4,
"run_dir": "runs/emp/10004_G0008_llm_deepseek-v4.1-flash_cloud"
}
}

View File

@@ -6,8 +6,8 @@
"release_target": "v740sp05", "release_target": "v740sp05",
"expected_outcome": "implement", "expected_outcome": "implement",
"budget": { "budget": {
"max_tool_calls": 45, "max_tool_calls": 60,
"max_activations": 12 "max_activations": 15
}, },
"seed": [ "seed": [
{ {

View File

@@ -6,8 +6,8 @@
"release_target": "v816", "release_target": "v816",
"expected_outcome": "implement", "expected_outcome": "implement",
"budget": { "budget": {
"max_tool_calls": 50, "max_tool_calls": 60,
"max_activations": 12 "max_activations": 15
}, },
"seed": [ "seed": [
{ {

View File

@@ -0,0 +1,18 @@
{
"deepseek-v4.1-flash:cloud": {
"score": 95.0,
"parts": {
"correctness": 40.0,
"craft": 20.0,
"clean": 15.0,
"own_tests": 15.0,
"discipline": 5.0,
"total": 95.0,
"note": "own_tests: faulty-reference part not implemented in skeleton"
},
"hidden": "12/12",
"tool_calls": 16,
"seconds": 116.4,
"run_dir": "runs/emp/10005_G0010_llm_deepseek-v4.1-flash_cloud"
}
}

View File

@@ -6,8 +6,8 @@
"release_target": "v816", "release_target": "v816",
"expected_outcome": "implement", "expected_outcome": "implement",
"budget": { "budget": {
"max_tool_calls": 50, "max_tool_calls": 60,
"max_activations": 12 "max_activations": 15
}, },
"seed": [ "seed": [
{ {

View File

@@ -6,8 +6,8 @@
"release_target": "v758", "release_target": "v758",
"expected_outcome": "implement", "expected_outcome": "implement",
"budget": { "budget": {
"max_tool_calls": 40, "max_tool_calls": 60,
"max_activations": 10 "max_activations": 15
}, },
"seed": [ "seed": [
{ {

View File

@@ -0,0 +1,18 @@
{
"deepseek-v4.1-flash:cloud": {
"score": 85.0,
"parts": {
"correctness": 40.0,
"craft": 20.0,
"clean": 15.0,
"own_tests": 0.0,
"discipline": 10.0,
"total": 85.0,
"note": "own_tests: faulty-reference part not implemented in skeleton"
},
"hidden": "11/11",
"tool_calls": 17,
"seconds": 60.2,
"run_dir": "runs/emp/10006_G0012_llm_deepseek-v4.1-flash_cloud"
}
}

View File

@@ -6,8 +6,8 @@
"release_target": "v758", "release_target": "v758",
"expected_outcome": "implement", "expected_outcome": "implement",
"budget": { "budget": {
"max_tool_calls": 40, "max_tool_calls": 60,
"max_activations": 10 "max_activations": 15
}, },
"seed": [ "seed": [
{ {

View File

@@ -6,8 +6,8 @@
"release_target": "v816", "release_target": "v816",
"expected_outcome": "implement", "expected_outcome": "implement",
"budget": { "budget": {
"max_tool_calls": 40, "max_tool_calls": 60,
"max_activations": 10 "max_activations": 15
}, },
"seed": [ "seed": [
{ {

View File

@@ -0,0 +1,17 @@
{
"deepseek-v4.1-flash:cloud": {
"score": 0,
"parts": {
"total": 0,
"failed_gates": [
"G1_active",
"G2_contract",
"G3_hidden_runs"
]
},
"hidden": "0/0",
"tool_calls": 36,
"seconds": 928.5,
"run_dir": "runs/emp/10007_G0014_llm_deepseek-v4.1-flash_cloud"
}
}

View File

@@ -6,8 +6,8 @@
"release_target": "v758", "release_target": "v758",
"expected_outcome": "implement", "expected_outcome": "implement",
"budget": { "budget": {
"max_tool_calls": 40, "max_tool_calls": 60,
"max_activations": 10 "max_activations": 15
}, },
"seed": [ "seed": [
{ {

View File

@@ -0,0 +1,18 @@
{
"deepseek-v4.1-flash:cloud": {
"score": 90.0,
"parts": {
"correctness": 40.0,
"craft": 20.0,
"clean": 15.0,
"own_tests": 15.0,
"discipline": 0.0,
"total": 90.0,
"note": "own_tests: faulty-reference part not implemented in skeleton"
},
"hidden": "8/8",
"tool_calls": 18,
"seconds": 687.3,
"run_dir": "runs/emp/10008_G0015_llm_deepseek-v4.1-flash_cloud"
}
}

View File

@@ -6,8 +6,8 @@
"release_target": "v758", "release_target": "v758",
"expected_outcome": "implement", "expected_outcome": "implement",
"budget": { "budget": {
"max_tool_calls": 40, "max_tool_calls": 60,
"max_activations": 10 "max_activations": 15
}, },
"seed": [ "seed": [
{ {

View File

@@ -6,8 +6,8 @@
"release_target": "v816", "release_target": "v816",
"expected_outcome": "implement", "expected_outcome": "implement",
"budget": { "budget": {
"max_tool_calls": 40, "max_tool_calls": 60,
"max_activations": 12 "max_activations": 15
}, },
"seed": [ "seed": [
{ {

View File

@@ -0,0 +1,18 @@
{
"deepseek-v4.1-flash:cloud": {
"score": 77.0,
"parts": {
"correctness": 40.0,
"craft": 20.0,
"clean": 12.0,
"own_tests": 0.0,
"discipline": 5.0,
"total": 77.0,
"note": "own_tests: faulty-reference part not implemented in skeleton"
},
"hidden": "8/8",
"tool_calls": 40,
"seconds": 164.6,
"run_dir": "runs/emp/10009_G0017_llm_deepseek-v4.1-flash_cloud"
}
}

View File

@@ -6,8 +6,8 @@
"release_target": "v758", "release_target": "v758",
"expected_outcome": "implement", "expected_outcome": "implement",
"budget": { "budget": {
"max_tool_calls": 40, "max_tool_calls": 60,
"max_activations": 10 "max_activations": 15
}, },
"seed": [ "seed": [
{ {

View File

@@ -0,0 +1,18 @@
{
"deepseek-v4.1-flash:cloud": {
"score": 100.0,
"parts": {
"correctness": 40.0,
"craft": 20.0,
"clean": 15.0,
"own_tests": 15.0,
"discipline": 10.0,
"total": 100.0,
"note": "own_tests: faulty-reference part not implemented in skeleton"
},
"hidden": "6/6",
"tool_calls": 40,
"seconds": 128.4,
"run_dir": "runs/emp/10010_G0018_llm_deepseek-v4.1-flash_cloud"
}
}

View File

@@ -6,8 +6,8 @@
"release_target": "v758", "release_target": "v758",
"expected_outcome": "implement", "expected_outcome": "implement",
"budget": { "budget": {
"max_tool_calls": 40, "max_tool_calls": 60,
"max_activations": 10 "max_activations": 15
}, },
"seed": [ "seed": [
{ {

View File

@@ -0,0 +1,18 @@
{
"deepseek-v4.1-flash:cloud": {
"score": 80.0,
"parts": {
"correctness": 40.0,
"craft": 20.0,
"clean": 15.0,
"own_tests": 0.0,
"discipline": 5.0,
"total": 80.0,
"note": "own_tests: faulty-reference part not implemented in skeleton"
},
"hidden": "8/8",
"tool_calls": 36,
"seconds": 680.7,
"run_dir": "runs/emp/10011_G0019_llm_deepseek-v4.1-flash_cloud"
}
}

View File

@@ -6,8 +6,8 @@
"release_target": "v816", "release_target": "v816",
"expected_outcome": "implement", "expected_outcome": "implement",
"budget": { "budget": {
"max_tool_calls": 40, "max_tool_calls": 60,
"max_activations": 10 "max_activations": 15
}, },
"seed": [ "seed": [
{ {

View File

@@ -0,0 +1,18 @@
{
"deepseek-v4.1-flash:cloud": {
"score": 80.0,
"parts": {
"correctness": 40.0,
"craft": 20.0,
"clean": 15.0,
"own_tests": 0.0,
"discipline": 5.0,
"total": 80.0,
"note": "own_tests: faulty-reference part not implemented in skeleton"
},
"hidden": "8/8",
"tool_calls": 40,
"seconds": 174.6,
"run_dir": "runs/emp/10012_G0020_llm_deepseek-v4.1-flash_cloud"
}
}

View File

@@ -6,8 +6,8 @@
"release_target": "v758", "release_target": "v758",
"expected_outcome": "implement", "expected_outcome": "implement",
"budget": { "budget": {
"max_tool_calls": 40, "max_tool_calls": 60,
"max_activations": 10 "max_activations": 15
}, },
"seed": [ "seed": [
{ {

View File

@@ -0,0 +1,18 @@
{
"deepseek-v4.1-flash:cloud": {
"score": 80.0,
"parts": {
"correctness": 40.0,
"craft": 20.0,
"clean": 15.0,
"own_tests": 0.0,
"discipline": 5.0,
"total": 80.0,
"note": "own_tests: faulty-reference part not implemented in skeleton"
},
"hidden": "8/8",
"tool_calls": 40,
"seconds": 135.5,
"run_dir": "runs/emp/10013_G0021_llm_deepseek-v4.1-flash_cloud"
}
}

View File

@@ -6,8 +6,8 @@
"release_target": "v758", "release_target": "v758",
"expected_outcome": "implement", "expected_outcome": "implement",
"budget": { "budget": {
"max_tool_calls": 40, "max_tool_calls": 60,
"max_activations": 10 "max_activations": 15
}, },
"seed": [ "seed": [
{ {

View File

@@ -0,0 +1,18 @@
{
"deepseek-v4.1-flash:cloud": {
"score": 95.0,
"parts": {
"correctness": 40.0,
"craft": 20.0,
"clean": 15.0,
"own_tests": 15.0,
"discipline": 5.0,
"total": 95.0,
"note": "own_tests: faulty-reference part not implemented in skeleton"
},
"hidden": "13/13",
"tool_calls": 32,
"seconds": 141.5,
"run_dir": "runs/emp/10014_G0022_llm_deepseek-v4.1-flash_cloud"
}
}

View File

@@ -6,8 +6,8 @@
"release_target": "v816", "release_target": "v816",
"expected_outcome": "implement", "expected_outcome": "implement",
"budget": { "budget": {
"max_tool_calls": 45, "max_tool_calls": 60,
"max_activations": 14 "max_activations": 15
}, },
"seed": [ "seed": [
{ {

View File

@@ -0,0 +1,18 @@
{
"deepseek-v4.1-flash:cloud": {
"score": 80.0,
"parts": {
"correctness": 40.0,
"craft": 20.0,
"clean": 15.0,
"own_tests": 0.0,
"discipline": 5.0,
"total": 80.0,
"note": "own_tests: faulty-reference part not implemented in skeleton"
},
"hidden": "7/7",
"tool_calls": 40,
"seconds": 212.9,
"run_dir": "runs/emp/10015_G0024_llm_deepseek-v4.1-flash_cloud"
}
}

View File

@@ -6,8 +6,8 @@
"release_target": "v758", "release_target": "v758",
"expected_outcome": "implement", "expected_outcome": "implement",
"budget": { "budget": {
"max_tool_calls": 40, "max_tool_calls": 60,
"max_activations": 10 "max_activations": 15
}, },
"seed": [ "seed": [
{ {

View File

@@ -0,0 +1,18 @@
{
"deepseek-v4.1-flash:cloud": {
"score": 85.0,
"parts": {
"correctness": 40.0,
"craft": 20.0,
"clean": 15.0,
"own_tests": 0.0,
"discipline": 10.0,
"total": 85.0,
"note": "own_tests: faulty-reference part not implemented in skeleton"
},
"hidden": "7/7",
"tool_calls": 40,
"seconds": 113.4,
"run_dir": "runs/emp/10016_G0025_llm_deepseek-v4.1-flash_cloud"
}
}

View File

@@ -6,8 +6,8 @@
"release_target": "v816", "release_target": "v816",
"expected_outcome": "implement", "expected_outcome": "implement",
"budget": { "budget": {
"max_tool_calls": 40, "max_tool_calls": 60,
"max_activations": 10 "max_activations": 15
}, },
"seed": [ "seed": [
{ {

View File

@@ -0,0 +1,18 @@
{
"deepseek-v4.1-flash:cloud": {
"score": 80.0,
"parts": {
"correctness": 40.0,
"craft": 20.0,
"clean": 15.0,
"own_tests": 0.0,
"discipline": 5.0,
"total": 80.0,
"note": "own_tests: faulty-reference part not implemented in skeleton"
},
"hidden": "10/10",
"tool_calls": 12,
"seconds": 656.4,
"run_dir": "runs/emp/10017_G0026_llm_deepseek-v4.1-flash_cloud"
}
}

View File

@@ -6,8 +6,8 @@
"release_target": "v816", "release_target": "v816",
"expected_outcome": "implement", "expected_outcome": "implement",
"budget": { "budget": {
"max_tool_calls": 40, "max_tool_calls": 60,
"max_activations": 10 "max_activations": 15
}, },
"seed": [ "seed": [
{ {

View File

@@ -0,0 +1,18 @@
{
"deepseek-v4.1-flash:cloud": {
"score": 100.0,
"parts": {
"correctness": 40.0,
"craft": 20.0,
"clean": 15.0,
"own_tests": 15.0,
"discipline": 10.0,
"total": 100.0,
"note": "own_tests: faulty-reference part not implemented in skeleton"
},
"hidden": "10/10",
"tool_calls": 11,
"seconds": 214.9,
"run_dir": "runs/emp/10018_G0100_llm_deepseek-v4.1-flash_cloud"
}
}

View File

@@ -6,8 +6,8 @@
"release_target": "v816", "release_target": "v816",
"expected_outcome": "implement", "expected_outcome": "implement",
"budget": { "budget": {
"max_tool_calls": 50, "max_tool_calls": 60,
"max_activations": 12 "max_activations": 15
}, },
"seed": [], "seed": [],
"contract": [ "contract": [

View File

@@ -0,0 +1,18 @@
{
"deepseek-v4.1-flash:cloud": {
"score": 100.0,
"parts": {
"correctness": 40.0,
"craft": 20.0,
"clean": 15.0,
"own_tests": 15.0,
"discipline": 10.0,
"total": 100.0,
"note": "own_tests: faulty-reference part not implemented in skeleton"
},
"hidden": "11/11",
"tool_calls": 10,
"seconds": 138.8,
"run_dir": "runs/emp/10019_G0101_llm_deepseek-v4.1-flash_cloud"
}
}

View File

@@ -0,0 +1,18 @@
{
"deepseek-v4.1-flash:cloud": {
"score": 90.0,
"parts": {
"correctness": 40.0,
"craft": 20.0,
"clean": 15.0,
"own_tests": 15.0,
"discipline": 0.0,
"total": 90.0,
"note": "own_tests: faulty-reference part not implemented in skeleton"
},
"hidden": "11/11",
"tool_calls": 24,
"seconds": 124.3,
"run_dir": "runs/emp/10020_G0102_llm_deepseek-v4.1-flash_cloud"
}
}

View File

@@ -0,0 +1,18 @@
{
"deepseek-v4.1-flash:cloud": {
"score": 100.0,
"parts": {
"correctness": 40.0,
"craft": 20.0,
"clean": 15.0,
"own_tests": 15.0,
"discipline": 10.0,
"total": 100.0,
"note": "own_tests: faulty-reference part not implemented in skeleton"
},
"hidden": "11/11",
"tool_calls": 7,
"seconds": 68.5,
"run_dir": "runs/emp/10021_G0103_llm_deepseek-v4.1-flash_cloud"
}
}

View File

@@ -6,8 +6,8 @@
"release_target": "v816", "release_target": "v816",
"expected_outcome": "implement", "expected_outcome": "implement",
"budget": { "budget": {
"max_tool_calls": 40, "max_tool_calls": 60,
"max_activations": 10 "max_activations": 15
}, },
"seed": [], "seed": [],
"contract": [ "contract": [

View File

@@ -0,0 +1,18 @@
{
"deepseek-v4.1-flash:cloud": {
"score": 100.0,
"parts": {
"correctness": 40.0,
"craft": 20.0,
"clean": 15.0,
"own_tests": 15.0,
"discipline": 10.0,
"total": 100.0,
"note": "own_tests: faulty-reference part not implemented in skeleton"
},
"hidden": "12/12",
"tool_calls": 11,
"seconds": 136.4,
"run_dir": "runs/emp/10022_G0104_llm_deepseek-v4.1-flash_cloud"
}
}

View File

@@ -6,8 +6,8 @@
"release_target": "v758", "release_target": "v758",
"expected_outcome": "implement", "expected_outcome": "implement",
"budget": { "budget": {
"max_tool_calls": 40, "max_tool_calls": 60,
"max_activations": 10 "max_activations": 15
}, },
"seed": [], "seed": [],
"contract": [ "contract": [

View File

@@ -0,0 +1,15 @@
{
"deepseek-v4.1-flash:cloud": {
"score": 0,
"parts": {
"total": 0,
"failed_gates": [
"G5_no_p1"
]
},
"hidden": "11/11",
"tool_calls": 44,
"seconds": 837.6,
"run_dir": "runs/emp/10023_G0105_llm_deepseek-v4.1-flash_cloud"
}
}

View File

@@ -6,8 +6,8 @@
"release_target": "v758", "release_target": "v758",
"expected_outcome": "implement", "expected_outcome": "implement",
"budget": { "budget": {
"max_tool_calls": 40, "max_tool_calls": 60,
"max_activations": 10 "max_activations": 15
}, },
"seed": [ "seed": [
{ {

View File

@@ -0,0 +1,18 @@
{
"deepseek-v4.1-flash:cloud": {
"score": 98.5,
"parts": {
"correctness": 40.0,
"craft": 20.0,
"clean": 13.5,
"own_tests": 15.0,
"discipline": 10.0,
"total": 98.5,
"note": "own_tests: faulty-reference part not implemented in skeleton"
},
"hidden": "11/11",
"tool_calls": 23,
"seconds": 109.6,
"run_dir": "runs/emp/10024_G0106_llm_deepseek-v4.1-flash_cloud"
}
}

View File

@@ -6,8 +6,8 @@
"release_target": "v816", "release_target": "v816",
"expected_outcome": "implement", "expected_outcome": "implement",
"budget": { "budget": {
"max_tool_calls": 40, "max_tool_calls": 60,
"max_activations": 10 "max_activations": 15
}, },
"seed": [ "seed": [
{ {

View File

@@ -0,0 +1,16 @@
{
"deepseek-v4.1-flash:cloud": {
"score": 0,
"parts": {
"total": 0,
"failed_gates": [
"G2_contract",
"G3_hidden_runs"
]
},
"hidden": "0/0",
"tool_calls": 31,
"seconds": 162.0,
"run_dir": "runs/emp/10025_G0107_llm_deepseek-v4.1-flash_cloud"
}
}

View File

@@ -6,8 +6,8 @@
"release_target": "v816", "release_target": "v816",
"expected_outcome": "implement", "expected_outcome": "implement",
"budget": { "budget": {
"max_tool_calls": 40, "max_tool_calls": 60,
"max_activations": 10 "max_activations": 15
}, },
"seed": [ "seed": [
{ {

View File

@@ -0,0 +1,18 @@
{
"deepseek-v4.1-flash:cloud": {
"score": 60.0,
"parts": {
"correctness": 20.0,
"craft": 20.0,
"clean": 15.0,
"own_tests": 0.0,
"discipline": 5.0,
"total": 60.0,
"note": "own_tests: faulty-reference part not implemented in skeleton"
},
"hidden": "5/10",
"tool_calls": 20,
"seconds": 711.8,
"run_dir": "runs/emp/10026_G0108_llm_deepseek-v4.1-flash_cloud"
}
}

View File

@@ -6,8 +6,8 @@
"release_target": "v816", "release_target": "v816",
"expected_outcome": "implement", "expected_outcome": "implement",
"budget": { "budget": {
"max_tool_calls": 40, "max_tool_calls": 60,
"max_activations": 10 "max_activations": 15
}, },
"seed": [ "seed": [
{ {

View File

@@ -0,0 +1,18 @@
{
"deepseek-v4.1-flash:cloud": {
"score": 80.0,
"parts": {
"correctness": 40.0,
"craft": 20.0,
"clean": 15.0,
"own_tests": 0.0,
"discipline": 5.0,
"total": 80.0,
"note": "own_tests: faulty-reference part not implemented in skeleton"
},
"hidden": "8/8",
"tool_calls": 33,
"seconds": 667.9,
"run_dir": "runs/emp/10027_G0109_llm_deepseek-v4.1-flash_cloud"
}
}

View File

@@ -6,8 +6,8 @@
"release_target": "v816", "release_target": "v816",
"expected_outcome": "implement", "expected_outcome": "implement",
"budget": { "budget": {
"max_tool_calls": 40, "max_tool_calls": 60,
"max_activations": 10 "max_activations": 15
}, },
"seed": [ "seed": [
{ {

View File

@@ -0,0 +1,18 @@
{
"deepseek-v4.1-flash:cloud": {
"score": 80.0,
"parts": {
"correctness": 40.0,
"craft": 20.0,
"clean": 15.0,
"own_tests": 0.0,
"discipline": 5.0,
"total": 80.0,
"note": "own_tests: faulty-reference part not implemented in skeleton"
},
"hidden": "6/6",
"tool_calls": 17,
"seconds": 557.9,
"run_dir": "runs/emp/10028_G0110_llm_deepseek-v4.1-flash_cloud"
}
}

View File

@@ -6,8 +6,8 @@
"release_target": "v758", "release_target": "v758",
"expected_outcome": "implement", "expected_outcome": "implement",
"budget": { "budget": {
"max_tool_calls": 40, "max_tool_calls": 60,
"max_activations": 10 "max_activations": 15
}, },
"seed": [ "seed": [
{ {

View File

@@ -0,0 +1,18 @@
{
"deepseek-v4.1-flash:cloud": {
"score": 100.0,
"parts": {
"correctness": 40.0,
"craft": 20.0,
"clean": 15.0,
"own_tests": 15.0,
"discipline": 10.0,
"total": 100.0,
"note": "own_tests: faulty-reference part not implemented in skeleton"
},
"hidden": "6/6",
"tool_calls": 21,
"seconds": 214.2,
"run_dir": "runs/emp/10029_G0111_llm_deepseek-v4.1-flash_cloud"
}
}

View File

@@ -6,8 +6,8 @@
"release_target": "v758", "release_target": "v758",
"expected_outcome": "implement", "expected_outcome": "implement",
"budget": { "budget": {
"max_tool_calls": 40, "max_tool_calls": 60,
"max_activations": 10 "max_activations": 15
}, },
"seed": [ "seed": [
{ {

View File

@@ -6,8 +6,8 @@
"release_target": "v816", "release_target": "v816",
"expected_outcome": "implement", "expected_outcome": "implement",
"budget": { "budget": {
"max_tool_calls": 40, "max_tool_calls": 60,
"max_activations": 10 "max_activations": 15
}, },
"seed": [ "seed": [
{ {

View File

@@ -6,8 +6,8 @@
"release_target": "v816", "release_target": "v816",
"expected_outcome": "implement", "expected_outcome": "implement",
"budget": { "budget": {
"max_tool_calls": 40, "max_tool_calls": 60,
"max_activations": 10 "max_activations": 15
}, },
"seed": [], "seed": [],
"contract": [ "contract": [

View File

@@ -6,8 +6,8 @@
"release_target": "v816", "release_target": "v816",
"expected_outcome": "implement", "expected_outcome": "implement",
"budget": { "budget": {
"max_tool_calls": 40, "max_tool_calls": 60,
"max_activations": 10 "max_activations": 15
}, },
"seed": [], "seed": [],
"contract": [ "contract": [

View File

@@ -6,8 +6,8 @@
"release_target": "v816", "release_target": "v816",
"expected_outcome": "implement", "expected_outcome": "implement",
"budget": { "budget": {
"max_tool_calls": 40, "max_tool_calls": 60,
"max_activations": 10 "max_activations": 15
}, },
"seed": [], "seed": [],
"contract": [ "contract": [

View File

@@ -6,8 +6,8 @@
"release_target": "v816", "release_target": "v816",
"expected_outcome": "implement", "expected_outcome": "implement",
"budget": { "budget": {
"max_tool_calls": 40, "max_tool_calls": 60,
"max_activations": 12 "max_activations": 15
}, },
"seed": [ "seed": [
{ {

View File

@@ -1,29 +0,0 @@
{
"id": "G0121",
"pool": "eval",
"object_type": "FUNC",
"category": "C",
"attempts": [
{
"stage": "validate",
"oracle": null,
"null": null
},
{
"stage": "validate",
"oracle": null,
"null": null
},
{
"stage": "validate",
"oracle": null,
"null": null
},
{
"stage": "validate",
"oracle": null,
"null": null
}
],
"accepted": false
}

View File

@@ -6,8 +6,8 @@
"release_target": "v758", "release_target": "v758",
"expected_outcome": "implement", "expected_outcome": "implement",
"budget": { "budget": {
"max_tool_calls": 40, "max_tool_calls": 60,
"max_activations": 10 "max_activations": 15
}, },
"seed": [ "seed": [
{ {

View File

@@ -6,8 +6,8 @@
"release_target": "v816", "release_target": "v816",
"expected_outcome": "implement", "expected_outcome": "implement",
"budget": { "budget": {
"max_tool_calls": 40, "max_tool_calls": 60,
"max_activations": 10 "max_activations": 15
}, },
"seed": [ "seed": [
{ {

View File

@@ -6,8 +6,8 @@
"release_target": "v816", "release_target": "v816",
"expected_outcome": "implement", "expected_outcome": "implement",
"budget": { "budget": {
"max_tool_calls": 40, "max_tool_calls": 60,
"max_activations": 10 "max_activations": 15
}, },
"seed": [ "seed": [
{ {

View File

@@ -1,38 +0,0 @@
{
"id": "G0124",
"pool": "eval",
"object_type": "PROG",
"category": "C",
"attempts": [
{
"stage": "validate",
"oracle": 100.0,
"null": 0,
"mutation": {
"valid": 0,
"killed": 0,
"ok": false
}
},
{
"stage": "validate",
"oracle": 80.6,
"null": 0
},
{
"stage": "bundle",
"errors": [
"seed: file seed/t20 seed.clas.abap missing"
],
"by_check": {
"structure": 1
}
},
{
"stage": "validate",
"oracle": 0,
"null": 0
}
],
"accepted": false
}

View File

@@ -6,8 +6,8 @@
"release_target": "v758", "release_target": "v758",
"expected_outcome": "implement", "expected_outcome": "implement",
"budget": { "budget": {
"max_tool_calls": 40, "max_tool_calls": 60,
"max_activations": 10 "max_activations": 15
}, },
"seed": [ "seed": [
{ {

View File

@@ -6,8 +6,8 @@
"release_target": "v816", "release_target": "v816",
"expected_outcome": "implement", "expected_outcome": "implement",
"budget": { "budget": {
"max_tool_calls": 40, "max_tool_calls": 60,
"max_activations": 10 "max_activations": 15
}, },
"seed": [ "seed": [
{ {

View File

@@ -0,0 +1,93 @@
CLASS {{p}}bag_drop DEFINITION PUBLIC FINAL CREATE PUBLIC.
PUBLIC SECTION.
TYPES:
ty_tag TYPE c LENGTH 10,
ty_weight TYPE p LENGTH 5 DECIMALS 2,
ty_size TYPE i,
ty_count TYPE i,
ty_minutes TYPE i.
METHODS accept_bag
IMPORTING
iv_tag TYPE ty_tag
iv_weight TYPE ty_weight
iv_length TYPE ty_size
iv_width TYPE ty_size
iv_height TYPE ty_size
iv_bags_checked TYPE ty_count
iv_min_to_dep TYPE ty_minutes
RAISING
{{p}}cx_bag_tag
{{p}}cx_bag_weight
{{p}}cx_bag_size
{{p}}cx_bag_limit
{{p}}cx_bag_late.
PRIVATE SECTION.
CONSTANTS:
c_max_weight TYPE ty_weight VALUE 23,
c_max_size TYPE ty_size VALUE 158,
c_max_bags TYPE ty_count VALUE 2,
c_min_minutes TYPE ty_minutes VALUE 40.
METHODS check_tag
IMPORTING iv_tag TYPE ty_tag
RAISING {{p}}cx_bag_tag.
METHODS check_weight
IMPORTING iv_weight TYPE ty_weight
RAISING {{p}}cx_bag_weight.
METHODS check_size
IMPORTING iv_length TYPE ty_size
iv_width TYPE ty_size
iv_height TYPE ty_size
RAISING {{p}}cx_bag_size.
METHODS check_bag_count
IMPORTING iv_bags_checked TYPE ty_count
RAISING {{p}}cx_bag_limit.
METHODS check_departure
IMPORTING iv_min_to_dep TYPE ty_minutes
RAISING {{p}}cx_bag_late.
ENDCLASS.
CLASS {{p}}bag_drop IMPLEMENTATION.
METHOD accept_bag.
check_tag( iv_tag ).
check_weight( iv_weight ).
check_size( iv_length = iv_length
iv_width = iv_width
iv_height = iv_height ).
check_bag_count( iv_bags_checked ).
check_departure( iv_min_to_dep ).
ENDMETHOD.
METHOD check_tag.
IF iv_tag CN '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'.
RAISE EXCEPTION TYPE {{p}}cx_bag_tag.
ENDIF.
ENDMETHOD.
METHOD check_weight.
IF iv_weight > c_max_weight.
RAISE EXCEPTION TYPE {{p}}cx_bag_weight.
ENDIF.
ENDMETHOD.
METHOD check_size.
IF iv_length - iv_width + iv_height > c_max_size.
RAISE EXCEPTION TYPE {{p}}cx_bag_size.
ENDIF.
ENDMETHOD.
METHOD check_bag_count.
IF iv_bags_checked >= c_max_bags.
RAISE EXCEPTION TYPE {{p}}cx_bag_limit.
ENDIF.
ENDMETHOD.
METHOD check_departure.
IF iv_min_to_dep < c_min_minutes.
RAISE EXCEPTION TYPE {{p}}cx_bag_late.
ENDIF.
ENDMETHOD.
ENDCLASS.

View File

@@ -0,0 +1,93 @@
CLASS {{p}}bag_drop DEFINITION PUBLIC FINAL CREATE PUBLIC.
PUBLIC SECTION.
TYPES:
ty_tag TYPE c LENGTH 10,
ty_weight TYPE p LENGTH 5 DECIMALS 2,
ty_size TYPE i,
ty_count TYPE i,
ty_minutes TYPE i.
METHODS accept_bag
IMPORTING
iv_tag TYPE ty_tag
iv_weight TYPE ty_weight
iv_length TYPE ty_size
iv_width TYPE ty_size
iv_height TYPE ty_size
iv_bags_checked TYPE ty_count
iv_min_to_dep TYPE ty_minutes
RAISING
{{p}}cx_bag_tag
{{p}}cx_bag_weight
{{p}}cx_bag_size
{{p}}cx_bag_limit
{{p}}cx_bag_late.
PRIVATE SECTION.
CONSTANTS:
c_max_weight TYPE ty_weight VALUE 23,
c_max_size TYPE ty_size VALUE 158,
c_max_bags TYPE ty_count VALUE 2,
c_min_minutes TYPE ty_minutes VALUE 40.
METHODS check_tag
IMPORTING iv_tag TYPE ty_tag
RAISING {{p}}cx_bag_tag.
METHODS check_weight
IMPORTING iv_weight TYPE ty_weight
RAISING {{p}}cx_bag_weight.
METHODS check_size
IMPORTING iv_length TYPE ty_size
iv_width TYPE ty_size
iv_height TYPE ty_size
RAISING {{p}}cx_bag_size.
METHODS check_bag_count
IMPORTING iv_bags_checked TYPE ty_count
RAISING {{p}}cx_bag_limit.
METHODS check_departure
IMPORTING iv_min_to_dep TYPE ty_minutes
RAISING {{p}}cx_bag_late.
ENDCLASS.
CLASS {{p}}bag_drop IMPLEMENTATION.
METHOD accept_bag.
check_tag( iv_tag ).
check_weight( iv_weight ).
check_size( iv_length = iv_length
iv_width = iv_width
iv_height = iv_height ).
check_bag_count( iv_bags_checked ).
check_departure( iv_min_to_dep ).
ENDMETHOD.
METHOD check_tag.
IF iv_tag CN '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'.
RAISE EXCEPTION TYPE {{p}}cx_bag_tag.
ENDIF.
ENDMETHOD.
METHOD check_weight.
IF iv_weight > c_max_weight.
RAISE EXCEPTION TYPE {{p}}cx_bag_weight.
ENDIF.
ENDMETHOD.
METHOD check_size.
IF iv_length + iv_width - iv_height > c_max_size.
RAISE EXCEPTION TYPE {{p}}cx_bag_size.
ENDIF.
ENDMETHOD.
METHOD check_bag_count.
IF iv_bags_checked >= c_max_bags.
RAISE EXCEPTION TYPE {{p}}cx_bag_limit.
ENDIF.
ENDMETHOD.
METHOD check_departure.
IF iv_min_to_dep < c_min_minutes.
RAISE EXCEPTION TYPE {{p}}cx_bag_late.
ENDIF.
ENDMETHOD.
ENDCLASS.

View File

@@ -0,0 +1,93 @@
CLASS {{p}}bag_drop DEFINITION PUBLIC FINAL CREATE PUBLIC.
PUBLIC SECTION.
TYPES:
ty_tag TYPE c LENGTH 10,
ty_weight TYPE p LENGTH 5 DECIMALS 2,
ty_size TYPE i,
ty_count TYPE i,
ty_minutes TYPE i.
METHODS accept_bag
IMPORTING
iv_tag TYPE ty_tag
iv_weight TYPE ty_weight
iv_length TYPE ty_size
iv_width TYPE ty_size
iv_height TYPE ty_size
iv_bags_checked TYPE ty_count
iv_min_to_dep TYPE ty_minutes
RAISING
{{p}}cx_bag_tag
{{p}}cx_bag_weight
{{p}}cx_bag_size
{{p}}cx_bag_limit
{{p}}cx_bag_late.
PRIVATE SECTION.
CONSTANTS:
c_max_weight TYPE ty_weight VALUE 23,
c_max_size TYPE ty_size VALUE 158,
c_max_bags TYPE ty_count VALUE 2,
c_min_minutes TYPE ty_minutes VALUE 40.
METHODS check_tag
IMPORTING iv_tag TYPE ty_tag
RAISING {{p}}cx_bag_tag.
METHODS check_weight
IMPORTING iv_weight TYPE ty_weight
RAISING {{p}}cx_bag_weight.
METHODS check_size
IMPORTING iv_length TYPE ty_size
iv_width TYPE ty_size
iv_height TYPE ty_size
RAISING {{p}}cx_bag_size.
METHODS check_bag_count
IMPORTING iv_bags_checked TYPE ty_count
RAISING {{p}}cx_bag_limit.
METHODS check_departure
IMPORTING iv_min_to_dep TYPE ty_minutes
RAISING {{p}}cx_bag_late.
ENDCLASS.
CLASS {{p}}bag_drop IMPLEMENTATION.
METHOD accept_bag.
check_tag( iv_tag ).
check_weight( iv_weight ).
check_size( iv_length = iv_length
iv_width = iv_width
iv_height = iv_height ).
check_bag_count( iv_bags_checked ).
check_departure( iv_min_to_dep ).
ENDMETHOD.
METHOD check_tag.
IF iv_tag CN '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'.
RAISE EXCEPTION TYPE {{p}}cx_bag_tag.
ENDIF.
ENDMETHOD.
METHOD check_weight.
IF iv_weight > c_max_weight.
RAISE EXCEPTION TYPE {{p}}cx_bag_weight.
ENDIF.
ENDMETHOD.
METHOD check_size.
IF iv_length + iv_width + iv_height <= c_max_size.
RAISE EXCEPTION TYPE {{p}}cx_bag_size.
ENDIF.
ENDMETHOD.
METHOD check_bag_count.
IF iv_bags_checked >= c_max_bags.
RAISE EXCEPTION TYPE {{p}}cx_bag_limit.
ENDIF.
ENDMETHOD.
METHOD check_departure.
IF iv_min_to_dep < c_min_minutes.
RAISE EXCEPTION TYPE {{p}}cx_bag_late.
ENDIF.
ENDMETHOD.
ENDCLASS.

View File

@@ -0,0 +1,93 @@
CLASS {{p}}bag_drop DEFINITION PUBLIC FINAL CREATE PUBLIC.
PUBLIC SECTION.
TYPES:
ty_tag TYPE c LENGTH 10,
ty_weight TYPE p LENGTH 5 DECIMALS 2,
ty_size TYPE i,
ty_count TYPE i,
ty_minutes TYPE i.
METHODS accept_bag
IMPORTING
iv_tag TYPE ty_tag
iv_weight TYPE ty_weight
iv_length TYPE ty_size
iv_width TYPE ty_size
iv_height TYPE ty_size
iv_bags_checked TYPE ty_count
iv_min_to_dep TYPE ty_minutes
RAISING
{{p}}cx_bag_tag
{{p}}cx_bag_weight
{{p}}cx_bag_size
{{p}}cx_bag_limit
{{p}}cx_bag_late.
PRIVATE SECTION.
CONSTANTS:
c_max_weight TYPE ty_weight VALUE 23,
c_max_size TYPE ty_size VALUE 158,
c_max_bags TYPE ty_count VALUE 2,
c_min_minutes TYPE ty_minutes VALUE 40.
METHODS check_tag
IMPORTING iv_tag TYPE ty_tag
RAISING {{p}}cx_bag_tag.
METHODS check_weight
IMPORTING iv_weight TYPE ty_weight
RAISING {{p}}cx_bag_weight.
METHODS check_size
IMPORTING iv_length TYPE ty_size
iv_width TYPE ty_size
iv_height TYPE ty_size
RAISING {{p}}cx_bag_size.
METHODS check_bag_count
IMPORTING iv_bags_checked TYPE ty_count
RAISING {{p}}cx_bag_limit.
METHODS check_departure
IMPORTING iv_min_to_dep TYPE ty_minutes
RAISING {{p}}cx_bag_late.
ENDCLASS.
CLASS {{p}}bag_drop IMPLEMENTATION.
METHOD accept_bag.
check_tag( iv_tag ).
check_weight( iv_weight ).
check_size( iv_length = iv_length
iv_width = iv_width
iv_height = iv_height ).
check_bag_count( iv_bags_checked ).
check_departure( iv_min_to_dep ).
ENDMETHOD.
METHOD check_tag.
IF iv_tag CN '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'.
RAISE EXCEPTION TYPE {{p}}cx_bag_tag.
ENDIF.
ENDMETHOD.
METHOD check_weight.
IF iv_weight > c_max_weight.
RAISE EXCEPTION TYPE {{p}}cx_bag_weight.
ENDIF.
ENDMETHOD.
METHOD check_size.
IF iv_length + iv_width + iv_height > c_max_size.
RAISE EXCEPTION TYPE {{p}}cx_bag_size.
ENDIF.
ENDMETHOD.
METHOD check_bag_count.
IF iv_bags_checked < c_max_bags.
RAISE EXCEPTION TYPE {{p}}cx_bag_limit.
ENDIF.
ENDMETHOD.
METHOD check_departure.
IF iv_min_to_dep < c_min_minutes.
RAISE EXCEPTION TYPE {{p}}cx_bag_late.
ENDIF.
ENDMETHOD.
ENDCLASS.

View File

@@ -0,0 +1,93 @@
CLASS {{p}}bag_drop DEFINITION PUBLIC FINAL CREATE PUBLIC.
PUBLIC SECTION.
TYPES:
ty_tag TYPE c LENGTH 10,
ty_weight TYPE p LENGTH 5 DECIMALS 2,
ty_size TYPE i,
ty_count TYPE i,
ty_minutes TYPE i.
METHODS accept_bag
IMPORTING
iv_tag TYPE ty_tag
iv_weight TYPE ty_weight
iv_length TYPE ty_size
iv_width TYPE ty_size
iv_height TYPE ty_size
iv_bags_checked TYPE ty_count
iv_min_to_dep TYPE ty_minutes
RAISING
{{p}}cx_bag_tag
{{p}}cx_bag_weight
{{p}}cx_bag_size
{{p}}cx_bag_limit
{{p}}cx_bag_late.
PRIVATE SECTION.
CONSTANTS:
c_max_weight TYPE ty_weight VALUE 23,
c_max_size TYPE ty_size VALUE 158,
c_max_bags TYPE ty_count VALUE 2,
c_min_minutes TYPE ty_minutes VALUE 40.
METHODS check_tag
IMPORTING iv_tag TYPE ty_tag
RAISING {{p}}cx_bag_tag.
METHODS check_weight
IMPORTING iv_weight TYPE ty_weight
RAISING {{p}}cx_bag_weight.
METHODS check_size
IMPORTING iv_length TYPE ty_size
iv_width TYPE ty_size
iv_height TYPE ty_size
RAISING {{p}}cx_bag_size.
METHODS check_bag_count
IMPORTING iv_bags_checked TYPE ty_count
RAISING {{p}}cx_bag_limit.
METHODS check_departure
IMPORTING iv_min_to_dep TYPE ty_minutes
RAISING {{p}}cx_bag_late.
ENDCLASS.
CLASS {{p}}bag_drop IMPLEMENTATION.
METHOD accept_bag.
check_tag( iv_tag ).
check_weight( iv_weight ).
check_size( iv_length = iv_length
iv_width = iv_width
iv_height = iv_height ).
check_bag_count( iv_bags_checked ).
check_departure( iv_min_to_dep ).
ENDMETHOD.
METHOD check_tag.
IF iv_tag CN '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'.
RAISE EXCEPTION TYPE {{p}}cx_bag_tag.
ENDIF.
ENDMETHOD.
METHOD check_weight.
IF iv_weight > c_max_weight.
RAISE EXCEPTION TYPE {{p}}cx_bag_weight.
ENDIF.
ENDMETHOD.
METHOD check_size.
IF iv_length + iv_width + iv_height > c_max_size.
RAISE EXCEPTION TYPE {{p}}cx_bag_size.
ENDIF.
ENDMETHOD.
METHOD check_bag_count.
IF iv_bags_checked >= c_max_bags.
RAISE EXCEPTION TYPE {{p}}cx_bag_limit.
ENDIF.
ENDMETHOD.
METHOD check_departure.
IF iv_min_to_dep >= c_min_minutes.
RAISE EXCEPTION TYPE {{p}}cx_bag_late.
ENDIF.
ENDMETHOD.
ENDCLASS.

View File

@@ -28,7 +28,19 @@
"stage": "validate", "stage": "validate",
"oracle": 92.5, "oracle": 92.5,
"null": 0 "null": 0
},
{
"stage": "revalidate",
"by": "harness fix 2026-10-03",
"change": "coverage with several contract classes (exception classes). Bundle not changed.",
"oracle": 100.0,
"null": 0,
"mutation": {
"valid": 5,
"killed": 5,
"ok": true
}
} }
], ],
"accepted": false "accepted": true
} }

View File

@@ -0,0 +1,72 @@
{
"task": "G0126",
"mutants": [
{
"object": "{{P}}BAG_DROP",
"mutant": "line 77: + -> - (arith)",
"status": "killed",
"hidden": "10/11",
"failed_tests": [
"REJECTS_OVERSIZE"
]
},
{
"object": "{{P}}BAG_DROP",
"mutant": "line 77: + -> - (arith)",
"status": "killed",
"hidden": "10/11",
"failed_tests": [
"REJECTS_OVERSIZE"
]
},
{
"object": "{{P}}BAG_DROP",
"mutant": "line 77: > -> <= (rel)",
"status": "killed",
"hidden": "3/11",
"failed_tests": [
"ACCEPTS_40_MINUTES",
"ACCEPTS_MAX_SIZE",
"ACCEPTS_MAX_WEIGHT",
"ACCEPTS_ONE_BAG",
"ACCEPTS_VALID_BAG",
"REJECTS_39_MINUTES",
"REJECTS_OVERSIZE",
"REJECTS_THIRD_BAG"
]
},
{
"object": "{{P}}BAG_DROP",
"mutant": "line 83: >= -> < (rel)",
"status": "killed",
"hidden": "4/11",
"failed_tests": [
"ACCEPTS_40_MINUTES",
"ACCEPTS_MAX_SIZE",
"ACCEPTS_MAX_WEIGHT",
"ACCEPTS_ONE_BAG",
"ACCEPTS_VALID_BAG",
"REJECTS_39_MINUTES",
"REJECTS_THIRD_BAG"
]
},
{
"object": "{{P}}BAG_DROP",
"mutant": "line 89: < -> >= (rel)",
"status": "killed",
"hidden": "5/11",
"failed_tests": [
"ACCEPTS_40_MINUTES",
"ACCEPTS_MAX_SIZE",
"ACCEPTS_MAX_WEIGHT",
"ACCEPTS_ONE_BAG",
"ACCEPTS_VALID_BAG",
"REJECTS_39_MINUTES"
]
}
],
"valid": 5,
"killed": 5,
"kill_rate": 1.0,
"ok": true
}

View File

@@ -6,8 +6,8 @@
"release_target": "v816", "release_target": "v816",
"expected_outcome": "implement", "expected_outcome": "implement",
"budget": { "budget": {
"max_tool_calls": 40, "max_tool_calls": 60,
"max_activations": 10 "max_activations": 15
}, },
"seed": [ "seed": [
{ {

View File

@@ -0,0 +1,69 @@
CLASS {{p}}crew_duty_check DEFINITION
PUBLIC
FINAL
CREATE PUBLIC.
PUBLIC SECTION.
TYPES ty_hours TYPE p LENGTH 4 DECIMALS 1.
TYPES:
BEGIN OF ty_duty,
crew_id TYPE c LENGTH 10,
licence_valid TYPE abap_bool,
type_rating TYPE c LENGTH 4,
aircraft_type TYPE c LENGTH 4,
rest_hours TYPE ty_hours,
duty_hours TYPE ty_hours,
month_hours TYPE ty_hours,
END OF ty_duty.
METHODS check
IMPORTING is_duty TYPE ty_duty
RAISING
{{p}}cx_licence_invalid
{{p}}cx_rating_missing
{{p}}cx_rest_too_short
{{p}}cx_duty_too_long
{{p}}cx_month_limit.
PRIVATE SECTION.
CONSTANTS:
c_min_rest_hours TYPE ty_hours VALUE '10.0',
c_max_duty_hours TYPE ty_hours VALUE '13.0',
c_max_month_hours TYPE ty_hours VALUE '100.0'.
ENDCLASS.
CLASS {{p}}crew_duty_check IMPLEMENTATION.
METHOD check.
IF is_duty-licence_valid <> abap_false.
RAISE EXCEPTION TYPE {{p}}cx_licence_invalid.
ENDIF.
IF is_duty-type_rating <> is_duty-aircraft_type.
RAISE EXCEPTION TYPE {{p}}cx_rating_missing
EXPORTING
iv_required = is_duty-aircraft_type
iv_held = is_duty-type_rating.
ENDIF.
IF is_duty-rest_hours < c_min_rest_hours.
RAISE EXCEPTION TYPE {{p}}cx_rest_too_short
EXPORTING
iv_rest_hours = is_duty-rest_hours.
ENDIF.
IF is_duty-duty_hours > c_max_duty_hours.
RAISE EXCEPTION TYPE {{p}}cx_duty_too_long
EXPORTING
iv_duty_hours = is_duty-duty_hours.
ENDIF.
DATA lv_total_hours TYPE ty_hours.
lv_total_hours = is_duty-month_hours + is_duty-duty_hours.
IF lv_total_hours > c_max_month_hours.
RAISE EXCEPTION TYPE {{p}}cx_month_limit
EXPORTING
iv_total_hours = lv_total_hours.
ENDIF.
ENDMETHOD.
ENDCLASS.

View File

@@ -0,0 +1,69 @@
CLASS {{p}}crew_duty_check DEFINITION
PUBLIC
FINAL
CREATE PUBLIC.
PUBLIC SECTION.
TYPES ty_hours TYPE p LENGTH 4 DECIMALS 1.
TYPES:
BEGIN OF ty_duty,
crew_id TYPE c LENGTH 10,
licence_valid TYPE abap_bool,
type_rating TYPE c LENGTH 4,
aircraft_type TYPE c LENGTH 4,
rest_hours TYPE ty_hours,
duty_hours TYPE ty_hours,
month_hours TYPE ty_hours,
END OF ty_duty.
METHODS check
IMPORTING is_duty TYPE ty_duty
RAISING
{{p}}cx_licence_invalid
{{p}}cx_rating_missing
{{p}}cx_rest_too_short
{{p}}cx_duty_too_long
{{p}}cx_month_limit.
PRIVATE SECTION.
CONSTANTS:
c_min_rest_hours TYPE ty_hours VALUE '10.0',
c_max_duty_hours TYPE ty_hours VALUE '13.0',
c_max_month_hours TYPE ty_hours VALUE '100.0'.
ENDCLASS.
CLASS {{p}}crew_duty_check IMPLEMENTATION.
METHOD check.
IF is_duty-licence_valid <> abap_true.
RAISE EXCEPTION TYPE {{p}}cx_licence_invalid.
ENDIF.
IF is_duty-type_rating = is_duty-aircraft_type.
RAISE EXCEPTION TYPE {{p}}cx_rating_missing
EXPORTING
iv_required = is_duty-aircraft_type
iv_held = is_duty-type_rating.
ENDIF.
IF is_duty-rest_hours < c_min_rest_hours.
RAISE EXCEPTION TYPE {{p}}cx_rest_too_short
EXPORTING
iv_rest_hours = is_duty-rest_hours.
ENDIF.
IF is_duty-duty_hours > c_max_duty_hours.
RAISE EXCEPTION TYPE {{p}}cx_duty_too_long
EXPORTING
iv_duty_hours = is_duty-duty_hours.
ENDIF.
DATA lv_total_hours TYPE ty_hours.
lv_total_hours = is_duty-month_hours + is_duty-duty_hours.
IF lv_total_hours > c_max_month_hours.
RAISE EXCEPTION TYPE {{p}}cx_month_limit
EXPORTING
iv_total_hours = lv_total_hours.
ENDIF.
ENDMETHOD.
ENDCLASS.

View File

@@ -0,0 +1,69 @@
CLASS {{p}}crew_duty_check DEFINITION
PUBLIC
FINAL
CREATE PUBLIC.
PUBLIC SECTION.
TYPES ty_hours TYPE p LENGTH 4 DECIMALS 1.
TYPES:
BEGIN OF ty_duty,
crew_id TYPE c LENGTH 10,
licence_valid TYPE abap_bool,
type_rating TYPE c LENGTH 4,
aircraft_type TYPE c LENGTH 4,
rest_hours TYPE ty_hours,
duty_hours TYPE ty_hours,
month_hours TYPE ty_hours,
END OF ty_duty.
METHODS check
IMPORTING is_duty TYPE ty_duty
RAISING
{{p}}cx_licence_invalid
{{p}}cx_rating_missing
{{p}}cx_rest_too_short
{{p}}cx_duty_too_long
{{p}}cx_month_limit.
PRIVATE SECTION.
CONSTANTS:
c_min_rest_hours TYPE ty_hours VALUE '10.0',
c_max_duty_hours TYPE ty_hours VALUE '13.0',
c_max_month_hours TYPE ty_hours VALUE '100.0'.
ENDCLASS.
CLASS {{p}}crew_duty_check IMPLEMENTATION.
METHOD check.
IF is_duty-licence_valid <> abap_true.
RAISE EXCEPTION TYPE {{p}}cx_licence_invalid.
ENDIF.
IF is_duty-type_rating <> is_duty-aircraft_type.
RAISE EXCEPTION TYPE {{p}}cx_rating_missing
EXPORTING
iv_required = is_duty-aircraft_type
iv_held = is_duty-type_rating.
ENDIF.
IF is_duty-rest_hours < c_min_rest_hours.
RAISE EXCEPTION TYPE {{p}}cx_rest_too_short
EXPORTING
iv_rest_hours = is_duty-rest_hours.
ENDIF.
IF is_duty-duty_hours <= c_max_duty_hours.
RAISE EXCEPTION TYPE {{p}}cx_duty_too_long
EXPORTING
iv_duty_hours = is_duty-duty_hours.
ENDIF.
DATA lv_total_hours TYPE ty_hours.
lv_total_hours = is_duty-month_hours + is_duty-duty_hours.
IF lv_total_hours > c_max_month_hours.
RAISE EXCEPTION TYPE {{p}}cx_month_limit
EXPORTING
iv_total_hours = lv_total_hours.
ENDIF.
ENDMETHOD.
ENDCLASS.

View File

@@ -0,0 +1,69 @@
CLASS {{p}}crew_duty_check DEFINITION
PUBLIC
FINAL
CREATE PUBLIC.
PUBLIC SECTION.
TYPES ty_hours TYPE p LENGTH 4 DECIMALS 1.
TYPES:
BEGIN OF ty_duty,
crew_id TYPE c LENGTH 10,
licence_valid TYPE abap_bool,
type_rating TYPE c LENGTH 4,
aircraft_type TYPE c LENGTH 4,
rest_hours TYPE ty_hours,
duty_hours TYPE ty_hours,
month_hours TYPE ty_hours,
END OF ty_duty.
METHODS check
IMPORTING is_duty TYPE ty_duty
RAISING
{{p}}cx_licence_invalid
{{p}}cx_rating_missing
{{p}}cx_rest_too_short
{{p}}cx_duty_too_long
{{p}}cx_month_limit.
PRIVATE SECTION.
CONSTANTS:
c_min_rest_hours TYPE ty_hours VALUE '10.0',
c_max_duty_hours TYPE ty_hours VALUE '13.0',
c_max_month_hours TYPE ty_hours VALUE '100.0'.
ENDCLASS.
CLASS {{p}}crew_duty_check IMPLEMENTATION.
METHOD check.
IF is_duty-licence_valid <> abap_true.
RAISE EXCEPTION TYPE {{p}}cx_licence_invalid.
ENDIF.
IF is_duty-type_rating <> is_duty-aircraft_type.
RAISE EXCEPTION TYPE {{p}}cx_rating_missing
EXPORTING
iv_required = is_duty-aircraft_type
iv_held = is_duty-type_rating.
ENDIF.
IF is_duty-rest_hours < c_min_rest_hours.
RAISE EXCEPTION TYPE {{p}}cx_rest_too_short
EXPORTING
iv_rest_hours = is_duty-rest_hours.
ENDIF.
IF is_duty-duty_hours > c_max_duty_hours.
RAISE EXCEPTION TYPE {{p}}cx_duty_too_long
EXPORTING
iv_duty_hours = is_duty-duty_hours.
ENDIF.
DATA lv_total_hours TYPE ty_hours.
lv_total_hours = is_duty-month_hours - is_duty-duty_hours.
IF lv_total_hours > c_max_month_hours.
RAISE EXCEPTION TYPE {{p}}cx_month_limit
EXPORTING
iv_total_hours = lv_total_hours.
ENDIF.
ENDMETHOD.
ENDCLASS.

View File

@@ -0,0 +1,69 @@
CLASS {{p}}crew_duty_check DEFINITION
PUBLIC
FINAL
CREATE PUBLIC.
PUBLIC SECTION.
TYPES ty_hours TYPE p LENGTH 4 DECIMALS 1.
TYPES:
BEGIN OF ty_duty,
crew_id TYPE c LENGTH 10,
licence_valid TYPE abap_bool,
type_rating TYPE c LENGTH 4,
aircraft_type TYPE c LENGTH 4,
rest_hours TYPE ty_hours,
duty_hours TYPE ty_hours,
month_hours TYPE ty_hours,
END OF ty_duty.
METHODS check
IMPORTING is_duty TYPE ty_duty
RAISING
{{p}}cx_licence_invalid
{{p}}cx_rating_missing
{{p}}cx_rest_too_short
{{p}}cx_duty_too_long
{{p}}cx_month_limit.
PRIVATE SECTION.
CONSTANTS:
c_min_rest_hours TYPE ty_hours VALUE '10.0',
c_max_duty_hours TYPE ty_hours VALUE '13.0',
c_max_month_hours TYPE ty_hours VALUE '100.0'.
ENDCLASS.
CLASS {{p}}crew_duty_check IMPLEMENTATION.
METHOD check.
IF is_duty-licence_valid <> abap_true.
RAISE EXCEPTION TYPE {{p}}cx_licence_invalid.
ENDIF.
IF is_duty-type_rating <> is_duty-aircraft_type.
RAISE EXCEPTION TYPE {{p}}cx_rating_missing
EXPORTING
iv_required = is_duty-aircraft_type
iv_held = is_duty-type_rating.
ENDIF.
IF is_duty-rest_hours < c_min_rest_hours.
RAISE EXCEPTION TYPE {{p}}cx_rest_too_short
EXPORTING
iv_rest_hours = is_duty-rest_hours.
ENDIF.
IF is_duty-duty_hours > c_max_duty_hours.
RAISE EXCEPTION TYPE {{p}}cx_duty_too_long
EXPORTING
iv_duty_hours = is_duty-duty_hours.
ENDIF.
DATA lv_total_hours TYPE ty_hours.
lv_total_hours = is_duty-month_hours + is_duty-duty_hours.
IF lv_total_hours <= c_max_month_hours.
RAISE EXCEPTION TYPE {{p}}cx_month_limit
EXPORTING
iv_total_hours = lv_total_hours.
ENDIF.
ENDMETHOD.
ENDCLASS.

View File

@@ -23,7 +23,19 @@
"stage": "validate", "stage": "validate",
"oracle": 92.5, "oracle": 92.5,
"null": 0 "null": 0
},
{
"stage": "revalidate",
"by": "harness fix 2026-10-03",
"change": "coverage with several contract classes (exception classes). Bundle not changed.",
"oracle": 100.0,
"null": 0,
"mutation": {
"valid": 5,
"killed": 5,
"ok": true
}
} }
], ],
"accepted": false "accepted": true
} }

View File

@@ -1,66 +1,72 @@
{ {
"task": "T30", "task": "G0128",
"mutants": [ "mutants": [
{ {
"object": "{{P}}CREW_DUTY_CHECK", "object": "{{P}}CREW_DUTY_CHECK",
"mutant": "line 38: <> -> = (rel)", "mutant": "line 38: abap_true -> abap_false (bool)",
"status": "killed", "status": "killed",
"hidden": "10/10", "hidden": "0/10",
"failed_tests": [ "failed_tests": [
"VALID_DUTY_PASSES", "BOUNDARY_VALUES",
"DUTY_TOO_LONG",
"FIRST_RULE_WINS",
"LICENCE_INVALID", "LICENCE_INVALID",
"MONTH_LIMIT",
"MONTH_LIMIT_EXACT",
"RATING_BEFORE_REST",
"RATING_MISSING", "RATING_MISSING",
"REST_TOO_SHORT", "REST_TOO_SHORT",
"DUTY_TOO_LONG", "VALID_DUTY_PASSES"
"MONTH_LIMIT",
"FIRST_RULE_WINS",
"RATING_BEFORE_REST",
"BOUNDARY_VALUES",
"MONTH_LIMIT_EXACT"
] ]
}, },
{ {
"object": "{{P}}CREW_DUTY_CHECK", "object": "{{P}}CREW_DUTY_CHECK",
"mutant": "line 42: <> -> = (rel)", "mutant": "line 42: <> -> = (rel)",
"status": "killed", "status": "killed",
"hidden": "8/10",
"failed_tests": [
"VALID_DUTY_PASSES",
"RATING_MISSING",
"REST_TOO_SHORT",
"DUTY_TOO_LONG",
"MONTH_LIMIT",
"RATING_BEFORE_REST",
"BOUNDARY_VALUES",
"MONTH_LIMIT_EXACT"
]
},
{
"object": "{{P}}CREW_DUTY_CHECK",
"mutant": "line 49: < -> <= (rel)",
"status": "killed",
"hidden": "1/10",
"failed_tests": [
"BOUNDARY_VALUES"
]
},
{
"object": "{{P}}CREW_DUTY_CHECK",
"mutant": "line 55: > -> >= (rel)",
"status": "killed",
"hidden": "1/10",
"failed_tests": [
"BOUNDARY_VALUES"
]
},
{
"object": "{{P}}CREW_DUTY_CHECK",
"mutant": "line 63: > -> >= (rel)",
"status": "killed",
"hidden": "2/10", "hidden": "2/10",
"failed_tests": [ "failed_tests": [
"BOUNDARY_VALUES", "BOUNDARY_VALUES",
"MONTH_LIMIT_EXACT" "DUTY_TOO_LONG",
"MONTH_LIMIT",
"MONTH_LIMIT_EXACT",
"RATING_BEFORE_REST",
"RATING_MISSING",
"REST_TOO_SHORT",
"VALID_DUTY_PASSES"
]
},
{
"object": "{{P}}CREW_DUTY_CHECK",
"mutant": "line 55: > -> <= (rel)",
"status": "killed",
"hidden": "5/10",
"failed_tests": [
"BOUNDARY_VALUES",
"DUTY_TOO_LONG",
"MONTH_LIMIT",
"MONTH_LIMIT_EXACT",
"VALID_DUTY_PASSES"
]
},
{
"object": "{{P}}CREW_DUTY_CHECK",
"mutant": "line 62: + -> - (arith)",
"status": "killed",
"hidden": "9/10",
"failed_tests": [
"MONTH_LIMIT"
]
},
{
"object": "{{P}}CREW_DUTY_CHECK",
"mutant": "line 63: > -> <= (rel)",
"status": "killed",
"hidden": "6/10",
"failed_tests": [
"BOUNDARY_VALUES",
"MONTH_LIMIT",
"MONTH_LIMIT_EXACT",
"VALID_DUTY_PASSES"
] ]
} }
], ],

View File

@@ -1,69 +0,0 @@
{
"id": "G0129",
"pool": "eval",
"object_type": "CLAS",
"category": "D",
"attempts": [
{
"stage": "bundle",
"errors": [
"hidden/t_print_hidden.clas.abap line 72: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"assert_price\"",
"hidden/t_print_hidden.clas.abap line 72: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"00\"",
"hidden/t_print_hidden.clas.abap line 77: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"assert_price\"",
"hidden/t_print_hidden.clas.abap line 77: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"00\"",
"hidden/t_print_hidden.clas.abap line 82: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"assert_price\"",
"hidden/t_print_hidden.clas.abap line 82: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"00\"",
"hidden/t_print_hidden.clas.abap line 84: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"assert_price\"",
"hidden/t_print_hidden.clas.abap line 84: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"00\"",
"hidden/t_print_hidden.clas.abap line 89: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"assert_price\"",
"hidden/t_print_hidden.clas.abap line 89: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"50\"",
"hidden/t_print_hidden.clas.abap line 91: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"assert_price\"",
"hidden/t_print_hidden.clas.abap line 91: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"75\"",
"hidden/t_print_hidden.clas.abap line 96: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"assert_price\"",
"hidden/t_print_hidden.clas.abap line 96: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"00\"",
"hidden/t_print_hidden.clas.abap line 101: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"assert_price\"",
"hidden/t_print_hidden.clas.abap line 101: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"00\"",
"hidden/t_print_hidden.clas.abap line 106: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"assert_price\"",
"hidden/t_print_hidden.clas.abap line 106: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"00\"",
"hidden/t_print_hidden.clas.abap line 144: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"assert_price\"",
"hidden/t_print_hidden.clas.abap line 144: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"00\""
],
"by_check": {
"abaplint": 20
}
},
{
"stage": "bundle",
"errors": [
"reference/print_job_pricer.testclasses.abap line 42: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"cl_abap_unit_assert\"",
"reference/print_job_pricer.testclasses.abap line 43: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"00\"",
"reference/print_job_pricer.testclasses.abap line 49: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"cl_abap_unit_assert\"",
"reference/print_job_pricer.testclasses.abap line 50: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"00\"",
"reference/print_job_pricer.testclasses.abap line 56: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"cl_abap_unit_assert\"",
"reference/print_job_pricer.testclasses.abap line 57: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"50\"",
"reference/print_job_pricer.testclasses.abap line 63: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"cl_abap_unit_assert\"",
"reference/print_job_pricer.testclasses.abap line 64: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"00\"",
"reference/print_job_pricer.clas.abap line 26: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"00\"",
"reference/print_job_pricer.clas.abap line 28: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"05\"",
"reference/print_job_pricer.clas.abap line 29: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"10\"",
"reference/print_job_pricer.clas.abap line 123: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"03\"",
"reference/print_job_pricer.clas.abap line 125: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"05\"",
"reference/print_job_pricer.clas.abap line 127: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"09\""
],
"by_check": {
"abaplint": 14
}
},
{
"stage": "validate",
"oracle": 0,
"null": 0
},
{
"stage": "validate",
"oracle": 0,
"null": 0
}
],
"accepted": false
}

View File

@@ -1,33 +0,0 @@
{
"id": "G0130",
"pool": "eval",
"object_type": "CLAS",
"category": "D",
"attempts": [
{
"stage": "bundle",
"errors": [
"seed/drug_master.clas.abap line 15: syntax error for release v758 (abaplint): Statement does not exist in the configured ABAP version(or a parser error), \"METHODS\""
],
"by_check": {
"abaplint": 1
}
},
{
"stage": "validate",
"oracle": 0,
"null": 0
},
{
"stage": "validate",
"oracle": 0,
"null": 0
},
{
"stage": "validate",
"oracle": 0,
"null": 0
}
],
"accepted": false
}

View File

@@ -0,0 +1,71 @@
CLASS {{p}}driving_test_check DEFINITION PUBLIC FINAL CREATE PUBLIC.
PUBLIC SECTION.
TYPES ty_pupil_id TYPE c LENGTH 10.
TYPES ty_date TYPE d.
METHODS check
IMPORTING iv_pupil_id TYPE ty_pupil_id
iv_test_date TYPE ty_date
RAISING {{p}}cx_pupil_unknown
{{p}}cx_theory_missing
{{p}}cx_lessons_missing
{{p}}cx_fee_unpaid
{{p}}cx_recent_failure.
PRIVATE SECTION.
CONSTANTS c_min_lessons TYPE i VALUE 12.
CONSTANTS c_wait_days TYPE i VALUE 14.
CONSTANTS c_done TYPE c LENGTH 1 VALUE 'X'.
TYPES: BEGIN OF ty_pupil,
pupil_id TYPE {{p}}pupil-pupil_id,
theory_done TYPE {{p}}pupil-theory_done,
lessons_done TYPE {{p}}pupil-lessons_done,
fee_paid TYPE {{p}}pupil-fee_paid,
last_failed TYPE {{p}}pupil-last_failed,
END OF ty_pupil.
METHODS read_pupil
IMPORTING iv_pupil_id TYPE ty_pupil_id
RETURNING VALUE(rs_pupil) TYPE ty_pupil
RAISING {{p}}cx_pupil_unknown.
ENDCLASS.
CLASS {{p}}driving_test_check IMPLEMENTATION.
METHOD check.
DATA(ls_pupil) = read_pupil( iv_pupil_id ).
IF ls_pupil-theory_done = c_done.
RAISE EXCEPTION TYPE {{p}}cx_theory_missing.
ENDIF.
IF ls_pupil-lessons_done < c_min_lessons.
RAISE EXCEPTION TYPE {{p}}cx_lessons_missing
EXPORTING iv_missing = c_min_lessons - ls_pupil-lessons_done.
ENDIF.
IF ls_pupil-fee_paid <> c_done.
RAISE EXCEPTION TYPE {{p}}cx_fee_unpaid.
ENDIF.
IF ls_pupil-last_failed IS NOT INITIAL.
DATA(lv_days) = iv_test_date - ls_pupil-last_failed.
IF lv_days < c_wait_days.
RAISE EXCEPTION TYPE {{p}}cx_recent_failure
EXPORTING iv_days_left = c_wait_days - lv_days.
ENDIF.
ENDIF.
ENDMETHOD.
METHOD read_pupil.
SELECT SINGLE
FROM {{p}}pupil
FIELDS pupil_id, theory_done, lessons_done, fee_paid, last_failed
WHERE pupil_id = @iv_pupil_id
INTO CORRESPONDING FIELDS OF @rs_pupil.
IF sy-subrc <> 0.
RAISE EXCEPTION TYPE {{p}}cx_pupil_unknown.
ENDIF.
ENDMETHOD.
ENDCLASS.

View File

@@ -0,0 +1,71 @@
CLASS {{p}}driving_test_check DEFINITION PUBLIC FINAL CREATE PUBLIC.
PUBLIC SECTION.
TYPES ty_pupil_id TYPE c LENGTH 10.
TYPES ty_date TYPE d.
METHODS check
IMPORTING iv_pupil_id TYPE ty_pupil_id
iv_test_date TYPE ty_date
RAISING {{p}}cx_pupil_unknown
{{p}}cx_theory_missing
{{p}}cx_lessons_missing
{{p}}cx_fee_unpaid
{{p}}cx_recent_failure.
PRIVATE SECTION.
CONSTANTS c_min_lessons TYPE i VALUE 12.
CONSTANTS c_wait_days TYPE i VALUE 14.
CONSTANTS c_done TYPE c LENGTH 1 VALUE 'X'.
TYPES: BEGIN OF ty_pupil,
pupil_id TYPE {{p}}pupil-pupil_id,
theory_done TYPE {{p}}pupil-theory_done,
lessons_done TYPE {{p}}pupil-lessons_done,
fee_paid TYPE {{p}}pupil-fee_paid,
last_failed TYPE {{p}}pupil-last_failed,
END OF ty_pupil.
METHODS read_pupil
IMPORTING iv_pupil_id TYPE ty_pupil_id
RETURNING VALUE(rs_pupil) TYPE ty_pupil
RAISING {{p}}cx_pupil_unknown.
ENDCLASS.
CLASS {{p}}driving_test_check IMPLEMENTATION.
METHOD check.
DATA(ls_pupil) = read_pupil( iv_pupil_id ).
IF ls_pupil-theory_done <> c_done.
RAISE EXCEPTION TYPE {{p}}cx_theory_missing.
ENDIF.
IF ls_pupil-lessons_done >= c_min_lessons.
RAISE EXCEPTION TYPE {{p}}cx_lessons_missing
EXPORTING iv_missing = c_min_lessons - ls_pupil-lessons_done.
ENDIF.
IF ls_pupil-fee_paid <> c_done.
RAISE EXCEPTION TYPE {{p}}cx_fee_unpaid.
ENDIF.
IF ls_pupil-last_failed IS NOT INITIAL.
DATA(lv_days) = iv_test_date - ls_pupil-last_failed.
IF lv_days < c_wait_days.
RAISE EXCEPTION TYPE {{p}}cx_recent_failure
EXPORTING iv_days_left = c_wait_days - lv_days.
ENDIF.
ENDIF.
ENDMETHOD.
METHOD read_pupil.
SELECT SINGLE
FROM {{p}}pupil
FIELDS pupil_id, theory_done, lessons_done, fee_paid, last_failed
WHERE pupil_id = @iv_pupil_id
INTO CORRESPONDING FIELDS OF @rs_pupil.
IF sy-subrc <> 0.
RAISE EXCEPTION TYPE {{p}}cx_pupil_unknown.
ENDIF.
ENDMETHOD.
ENDCLASS.

View File

@@ -0,0 +1,71 @@
CLASS {{p}}driving_test_check DEFINITION PUBLIC FINAL CREATE PUBLIC.
PUBLIC SECTION.
TYPES ty_pupil_id TYPE c LENGTH 10.
TYPES ty_date TYPE d.
METHODS check
IMPORTING iv_pupil_id TYPE ty_pupil_id
iv_test_date TYPE ty_date
RAISING {{p}}cx_pupil_unknown
{{p}}cx_theory_missing
{{p}}cx_lessons_missing
{{p}}cx_fee_unpaid
{{p}}cx_recent_failure.
PRIVATE SECTION.
CONSTANTS c_min_lessons TYPE i VALUE 12.
CONSTANTS c_wait_days TYPE i VALUE 14.
CONSTANTS c_done TYPE c LENGTH 1 VALUE 'X'.
TYPES: BEGIN OF ty_pupil,
pupil_id TYPE {{p}}pupil-pupil_id,
theory_done TYPE {{p}}pupil-theory_done,
lessons_done TYPE {{p}}pupil-lessons_done,
fee_paid TYPE {{p}}pupil-fee_paid,
last_failed TYPE {{p}}pupil-last_failed,
END OF ty_pupil.
METHODS read_pupil
IMPORTING iv_pupil_id TYPE ty_pupil_id
RETURNING VALUE(rs_pupil) TYPE ty_pupil
RAISING {{p}}cx_pupil_unknown.
ENDCLASS.
CLASS {{p}}driving_test_check IMPLEMENTATION.
METHOD check.
DATA(ls_pupil) = read_pupil( iv_pupil_id ).
IF ls_pupil-theory_done <> c_done.
RAISE EXCEPTION TYPE {{p}}cx_theory_missing.
ENDIF.
IF ls_pupil-lessons_done < c_min_lessons.
RAISE EXCEPTION TYPE {{p}}cx_lessons_missing
EXPORTING iv_missing = c_min_lessons - ls_pupil-lessons_done.
ENDIF.
IF ls_pupil-fee_paid = c_done.
RAISE EXCEPTION TYPE {{p}}cx_fee_unpaid.
ENDIF.
IF ls_pupil-last_failed IS NOT INITIAL.
DATA(lv_days) = iv_test_date - ls_pupil-last_failed.
IF lv_days < c_wait_days.
RAISE EXCEPTION TYPE {{p}}cx_recent_failure
EXPORTING iv_days_left = c_wait_days - lv_days.
ENDIF.
ENDIF.
ENDMETHOD.
METHOD read_pupil.
SELECT SINGLE
FROM {{p}}pupil
FIELDS pupil_id, theory_done, lessons_done, fee_paid, last_failed
WHERE pupil_id = @iv_pupil_id
INTO CORRESPONDING FIELDS OF @rs_pupil.
IF sy-subrc <> 0.
RAISE EXCEPTION TYPE {{p}}cx_pupil_unknown.
ENDIF.
ENDMETHOD.
ENDCLASS.

View File

@@ -0,0 +1,71 @@
CLASS {{p}}driving_test_check DEFINITION PUBLIC FINAL CREATE PUBLIC.
PUBLIC SECTION.
TYPES ty_pupil_id TYPE c LENGTH 10.
TYPES ty_date TYPE d.
METHODS check
IMPORTING iv_pupil_id TYPE ty_pupil_id
iv_test_date TYPE ty_date
RAISING {{p}}cx_pupil_unknown
{{p}}cx_theory_missing
{{p}}cx_lessons_missing
{{p}}cx_fee_unpaid
{{p}}cx_recent_failure.
PRIVATE SECTION.
CONSTANTS c_min_lessons TYPE i VALUE 12.
CONSTANTS c_wait_days TYPE i VALUE 14.
CONSTANTS c_done TYPE c LENGTH 1 VALUE 'X'.
TYPES: BEGIN OF ty_pupil,
pupil_id TYPE {{p}}pupil-pupil_id,
theory_done TYPE {{p}}pupil-theory_done,
lessons_done TYPE {{p}}pupil-lessons_done,
fee_paid TYPE {{p}}pupil-fee_paid,
last_failed TYPE {{p}}pupil-last_failed,
END OF ty_pupil.
METHODS read_pupil
IMPORTING iv_pupil_id TYPE ty_pupil_id
RETURNING VALUE(rs_pupil) TYPE ty_pupil
RAISING {{p}}cx_pupil_unknown.
ENDCLASS.
CLASS {{p}}driving_test_check IMPLEMENTATION.
METHOD check.
DATA(ls_pupil) = read_pupil( iv_pupil_id ).
IF ls_pupil-theory_done <> c_done.
RAISE EXCEPTION TYPE {{p}}cx_theory_missing.
ENDIF.
IF ls_pupil-lessons_done < c_min_lessons.
RAISE EXCEPTION TYPE {{p}}cx_lessons_missing
EXPORTING iv_missing = c_min_lessons - ls_pupil-lessons_done.
ENDIF.
IF ls_pupil-fee_paid <> c_done.
RAISE EXCEPTION TYPE {{p}}cx_fee_unpaid.
ENDIF.
IF ls_pupil-last_failed IS NOT INITIAL.
DATA(lv_days) = iv_test_date - ls_pupil-last_failed.
IF lv_days >= c_wait_days.
RAISE EXCEPTION TYPE {{p}}cx_recent_failure
EXPORTING iv_days_left = c_wait_days - lv_days.
ENDIF.
ENDIF.
ENDMETHOD.
METHOD read_pupil.
SELECT SINGLE
FROM {{p}}pupil
FIELDS pupil_id, theory_done, lessons_done, fee_paid, last_failed
WHERE pupil_id = @iv_pupil_id
INTO CORRESPONDING FIELDS OF @rs_pupil.
IF sy-subrc <> 0.
RAISE EXCEPTION TYPE {{p}}cx_pupil_unknown.
ENDIF.
ENDMETHOD.
ENDCLASS.

View File

@@ -0,0 +1,71 @@
CLASS {{p}}driving_test_check DEFINITION PUBLIC FINAL CREATE PUBLIC.
PUBLIC SECTION.
TYPES ty_pupil_id TYPE c LENGTH 10.
TYPES ty_date TYPE d.
METHODS check
IMPORTING iv_pupil_id TYPE ty_pupil_id
iv_test_date TYPE ty_date
RAISING {{p}}cx_pupil_unknown
{{p}}cx_theory_missing
{{p}}cx_lessons_missing
{{p}}cx_fee_unpaid
{{p}}cx_recent_failure.
PRIVATE SECTION.
CONSTANTS c_min_lessons TYPE i VALUE 12.
CONSTANTS c_wait_days TYPE i VALUE 14.
CONSTANTS c_done TYPE c LENGTH 1 VALUE 'X'.
TYPES: BEGIN OF ty_pupil,
pupil_id TYPE {{p}}pupil-pupil_id,
theory_done TYPE {{p}}pupil-theory_done,
lessons_done TYPE {{p}}pupil-lessons_done,
fee_paid TYPE {{p}}pupil-fee_paid,
last_failed TYPE {{p}}pupil-last_failed,
END OF ty_pupil.
METHODS read_pupil
IMPORTING iv_pupil_id TYPE ty_pupil_id
RETURNING VALUE(rs_pupil) TYPE ty_pupil
RAISING {{p}}cx_pupil_unknown.
ENDCLASS.
CLASS {{p}}driving_test_check IMPLEMENTATION.
METHOD check.
DATA(ls_pupil) = read_pupil( iv_pupil_id ).
IF ls_pupil-theory_done <> c_done.
RAISE EXCEPTION TYPE {{p}}cx_theory_missing.
ENDIF.
IF ls_pupil-lessons_done < c_min_lessons.
RAISE EXCEPTION TYPE {{p}}cx_lessons_missing
EXPORTING iv_missing = c_min_lessons - ls_pupil-lessons_done.
ENDIF.
IF ls_pupil-fee_paid <> c_done.
RAISE EXCEPTION TYPE {{p}}cx_fee_unpaid.
ENDIF.
IF ls_pupil-last_failed IS NOT INITIAL.
DATA(lv_days) = iv_test_date - ls_pupil-last_failed.
IF lv_days < c_wait_days.
RAISE EXCEPTION TYPE {{p}}cx_recent_failure
EXPORTING iv_days_left = c_wait_days - lv_days.
ENDIF.
ENDIF.
ENDMETHOD.
METHOD read_pupil.
SELECT SINGLE
FROM {{p}}pupil
FIELDS pupil_id, theory_done, lessons_done, fee_paid, last_failed
WHERE pupil_id <> @iv_pupil_id
INTO CORRESPONDING FIELDS OF @rs_pupil.
IF sy-subrc <> 0.
RAISE EXCEPTION TYPE {{p}}cx_pupil_unknown.
ENDIF.
ENDMETHOD.
ENDCLASS.

View File

@@ -0,0 +1,34 @@
{
"id": "G0131",
"pool": "eval",
"object_type": "CLAS",
"category": "D",
"attempts": [
{
"stage": "bundle",
"errors": [
"seed/pupil.tabl.abap: a table needs the annotation @AbapCatalog.tableCategory (for example #TRANSPARENT, #A)",
"seed/pupil.tabl.abap: a table needs the annotation @AbapCatalog.deliveryClass (for example #TRANSPARENT, #A)"
],
"by_check": {
"static": 2
}
},
{
"stage": "validate",
"oracle": 0,
"null": 0
},
{
"stage": "validate",
"oracle": 100.0,
"null": 0,
"mutation": {
"valid": 5,
"killed": 5,
"ok": true
}
}
],
"accepted": true
}

View File

@@ -0,0 +1,167 @@
CLASS {{p}}t_driving_check DEFINITION PUBLIC FINAL CREATE PUBLIC
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
PRIVATE SECTION.
DATA mo_cut TYPE REF TO {{p}}driving_test_check.
DATA mo_env TYPE REF TO if_osql_test_environment.
METHODS setup.
METHODS teardown.
METHODS add_pupil
IMPORTING iv_id TYPE string
iv_theory TYPE abap_bool
iv_lessons TYPE i
iv_fee TYPE abap_bool
iv_last_failed TYPE d.
METHODS rejects_unknown_pupil FOR TESTING.
METHODS rejects_missing_theory FOR TESTING.
METHODS rejects_too_few_lessons FOR TESTING.
METHODS rejects_unpaid_fee FOR TESTING.
METHODS rejects_recent_failure FOR TESTING.
METHODS accepts_ready_pupil FOR TESTING.
METHODS first_failure_wins FOR TESTING.
METHODS failure_14_days_ago_ok FOR TESTING.
METHODS lessons_12_ok FOR TESTING.
METHODS failure_13_days_rejected FOR TESTING.
ENDCLASS.
CLASS {{p}}t_driving_check IMPLEMENTATION.
METHOD setup.
mo_env = cl_osql_test_environment=>create( VALUE #( ( '{{P}}PUPIL' ) ) ).
mo_cut = NEW {{p}}driving_test_check( ).
ENDMETHOD.
METHOD teardown.
mo_env->destroy( ).
ENDMETHOD.
METHOD add_pupil.
DATA ls_pupil TYPE {{p}}pupil.
ls_pupil-client = sy-mandt.
ls_pupil-pupil_id = iv_id.
ls_pupil-pupil_name = iv_id.
IF iv_theory = abap_true.
ls_pupil-theory_done = 'X'.
ENDIF.
ls_pupil-lessons_done = iv_lessons.
IF iv_fee = abap_true.
ls_pupil-fee_paid = 'X'.
ENDIF.
ls_pupil-last_failed = iv_last_failed.
INSERT {{p}}pupil FROM @ls_pupil.
ENDMETHOD.
METHOD rejects_unknown_pupil.
TRY.
mo_cut->check( iv_pupil_id = 'P999' iv_test_date = '20250201' ).
cl_abap_unit_assert=>fail( msg = 'CX_PUPIL_UNKNOWN expected' ).
CATCH {{p}}cx_pupil_unknown.
CATCH cx_root INTO DATA(lx_wrong).
cl_abap_unit_assert=>fail( msg = lx_wrong->get_text( ) ).
ENDTRY.
ENDMETHOD.
METHOD rejects_missing_theory.
add_pupil( iv_id = 'P001' iv_theory = abap_false iv_lessons = 20
iv_fee = abap_true iv_last_failed = '00000000' ).
TRY.
mo_cut->check( iv_pupil_id = 'P001' iv_test_date = '20250201' ).
cl_abap_unit_assert=>fail( msg = 'CX_THEORY_MISSING expected' ).
CATCH {{p}}cx_theory_missing.
CATCH cx_root INTO DATA(lx_wrong).
cl_abap_unit_assert=>fail( msg = lx_wrong->get_text( ) ).
ENDTRY.
ENDMETHOD.
METHOD rejects_too_few_lessons.
add_pupil( iv_id = 'P002' iv_theory = abap_true iv_lessons = 9
iv_fee = abap_true iv_last_failed = '00000000' ).
TRY.
mo_cut->check( iv_pupil_id = 'P002' iv_test_date = '20250201' ).
cl_abap_unit_assert=>fail( msg = 'CX_LESSONS_MISSING expected' ).
CATCH {{p}}cx_lessons_missing INTO DATA(lx_lessons).
cl_abap_unit_assert=>assert_equals( exp = 3 act = lx_lessons->mv_missing ).
CATCH cx_root INTO DATA(lx_wrong).
cl_abap_unit_assert=>fail( msg = lx_wrong->get_text( ) ).
ENDTRY.
ENDMETHOD.
METHOD rejects_unpaid_fee.
add_pupil( iv_id = 'P003' iv_theory = abap_true iv_lessons = 18
iv_fee = abap_false iv_last_failed = '00000000' ).
TRY.
mo_cut->check( iv_pupil_id = 'P003' iv_test_date = '20250201' ).
cl_abap_unit_assert=>fail( msg = 'CX_FEE_UNPAID expected' ).
CATCH {{p}}cx_fee_unpaid.
CATCH cx_root INTO DATA(lx_wrong).
cl_abap_unit_assert=>fail( msg = lx_wrong->get_text( ) ).
ENDTRY.
ENDMETHOD.
METHOD rejects_recent_failure.
add_pupil( iv_id = 'P004' iv_theory = abap_true iv_lessons = 20
iv_fee = abap_true iv_last_failed = '20250127' ).
TRY.
mo_cut->check( iv_pupil_id = 'P004' iv_test_date = '20250201' ).
cl_abap_unit_assert=>fail( msg = 'CX_RECENT_FAILURE expected' ).
CATCH {{p}}cx_recent_failure INTO DATA(lx_recent).
cl_abap_unit_assert=>assert_equals( exp = 9 act = lx_recent->mv_days_left ).
CATCH cx_root INTO DATA(lx_wrong).
cl_abap_unit_assert=>fail( msg = lx_wrong->get_text( ) ).
ENDTRY.
ENDMETHOD.
METHOD accepts_ready_pupil.
add_pupil( iv_id = 'P005' iv_theory = abap_true iv_lessons = 20
iv_fee = abap_true iv_last_failed = '00000000' ).
TRY.
mo_cut->check( iv_pupil_id = 'P005' iv_test_date = '20250201' ).
CATCH cx_root INTO DATA(lx_error).
cl_abap_unit_assert=>fail( msg = lx_error->get_text( ) ).
ENDTRY.
ENDMETHOD.
METHOD first_failure_wins.
add_pupil( iv_id = 'P006' iv_theory = abap_false iv_lessons = 5
iv_fee = abap_false iv_last_failed = '00000000' ).
TRY.
mo_cut->check( iv_pupil_id = 'P006' iv_test_date = '20250201' ).
cl_abap_unit_assert=>fail( msg = 'CX_THEORY_MISSING expected' ).
CATCH {{p}}cx_theory_missing.
CATCH cx_root INTO DATA(lx_wrong).
cl_abap_unit_assert=>fail( msg = lx_wrong->get_text( ) ).
ENDTRY.
ENDMETHOD.
METHOD failure_14_days_ago_ok.
add_pupil( iv_id = 'P007' iv_theory = abap_true iv_lessons = 20
iv_fee = abap_true iv_last_failed = '20250118' ).
TRY.
mo_cut->check( iv_pupil_id = 'P007' iv_test_date = '20250201' ).
CATCH cx_root INTO DATA(lx_error).
cl_abap_unit_assert=>fail( msg = lx_error->get_text( ) ).
ENDTRY.
ENDMETHOD.
METHOD lessons_12_ok.
add_pupil( iv_id = 'P008' iv_theory = abap_true iv_lessons = 12
iv_fee = abap_true iv_last_failed = '00000000' ).
TRY.
mo_cut->check( iv_pupil_id = 'P008' iv_test_date = '20250201' ).
CATCH cx_root INTO DATA(lx_error).
cl_abap_unit_assert=>fail( msg = lx_error->get_text( ) ).
ENDTRY.
ENDMETHOD.
METHOD failure_13_days_rejected.
add_pupil( iv_id = 'P009' iv_theory = abap_true iv_lessons = 20
iv_fee = abap_true iv_last_failed = '20250119' ).
TRY.
mo_cut->check( iv_pupil_id = 'P009' iv_test_date = '20250201' ).
cl_abap_unit_assert=>fail( msg = 'CX_RECENT_FAILURE expected' ).
CATCH {{p}}cx_recent_failure INTO DATA(lx_recent).
cl_abap_unit_assert=>assert_equals( exp = 1 act = lx_recent->mv_days_left ).
CATCH cx_root INTO DATA(lx_wrong).
cl_abap_unit_assert=>fail( msg = lx_wrong->get_text( ) ).
ENDTRY.
ENDMETHOD.
ENDCLASS.

View File

@@ -0,0 +1,83 @@
{
"task": "G0131",
"mutants": [
{
"object": "{{P}}DRIVING_TEST_CHECK",
"mutant": "line 39: <> -> = (rel)",
"status": "killed",
"hidden": "1/10",
"failed_tests": [
"ACCEPTS_READY_PUPIL",
"FAILURE_13_DAYS_REJECTED",
"FAILURE_14_DAYS_AGO_OK",
"FIRST_FAILURE_WINS",
"LESSONS_12_OK",
"REJECTS_MISSING_THEORY",
"REJECTS_RECENT_FAILURE",
"REJECTS_TOO_FEW_LESSONS",
"REJECTS_UNPAID_FEE"
]
},
{
"object": "{{P}}DRIVING_TEST_CHECK",
"mutant": "line 43: < -> >= (rel)",
"status": "killed",
"hidden": "3/10",
"failed_tests": [
"ACCEPTS_READY_PUPIL",
"FAILURE_13_DAYS_REJECTED",
"FAILURE_14_DAYS_AGO_OK",
"LESSONS_12_OK",
"REJECTS_RECENT_FAILURE",
"REJECTS_TOO_FEW_LESSONS",
"REJECTS_UNPAID_FEE"
]
},
{
"object": "{{P}}DRIVING_TEST_CHECK",
"mutant": "line 48: <> -> = (rel)",
"status": "killed",
"hidden": "4/10",
"failed_tests": [
"ACCEPTS_READY_PUPIL",
"FAILURE_13_DAYS_REJECTED",
"FAILURE_14_DAYS_AGO_OK",
"LESSONS_12_OK",
"REJECTS_RECENT_FAILURE",
"REJECTS_UNPAID_FEE"
]
},
{
"object": "{{P}}DRIVING_TEST_CHECK",
"mutant": "line 54: < -> >= (rel)",
"status": "killed",
"hidden": "7/10",
"failed_tests": [
"FAILURE_13_DAYS_REJECTED",
"FAILURE_14_DAYS_AGO_OK",
"REJECTS_RECENT_FAILURE"
]
},
{
"object": "{{P}}DRIVING_TEST_CHECK",
"mutant": "line 65: = -> <> (eq)",
"status": "killed",
"hidden": "1/10",
"failed_tests": [
"ACCEPTS_READY_PUPIL",
"FAILURE_13_DAYS_REJECTED",
"FAILURE_14_DAYS_AGO_OK",
"FIRST_FAILURE_WINS",
"LESSONS_12_OK",
"REJECTS_MISSING_THEORY",
"REJECTS_RECENT_FAILURE",
"REJECTS_TOO_FEW_LESSONS",
"REJECTS_UNPAID_FEE"
]
}
],
"valid": 5,
"killed": 5,
"kill_rate": 1.0,
"ok": true
}

View File

@@ -0,0 +1,7 @@
CLASS {{p}}cx_fee_unpaid DEFINITION PUBLIC FINAL CREATE PUBLIC INHERITING FROM cx_static_check.
PUBLIC SECTION.
ENDCLASS.
CLASS {{p}}cx_fee_unpaid IMPLEMENTATION.
ENDCLASS.

Some files were not shown because too many files have changed in this diff Show More