grammar-inference-engine/experiments/results/freq_coroutines.json
tobjend 8028570ceb feat: frequency threshold sweep — 0.01-0.20 across 4 codebases
Sweet spot: 0.01-0.05. At 0.01 RAGSAK gets 61 SOREs (26.1% cov) with
real conventions like warn.status.body.ErrorResponse. At 0.05 coverage
jumps to 45.4% but that pattern disappears. Flask dies at 0.15+.

Current default min_coverage=0.2 is too aggressive for most codebases.
2026-07-12 01:26:45 +02:00

302 lines
No EOL
6.9 KiB
JSON

{
"codebase": "Kotlin Coroutines",
"results": [
{
"threshold": 0.0,
"symbols_total": 2962,
"symbols_kept": 2962,
"seqs_total": 6720,
"seqs_surviving": 6559,
"contexts": 3433,
"sore_successes": 207,
"total_methods": 6559,
"methods_in_good": 1384,
"coverage": 21.1,
"top_patterns": [
{
"context": "('expectUnreached',)",
"methods": 76,
"unique": 1,
"sore": "expectUnreached"
},
{
"context": "('test', 'main', 'verifyLines')",
"methods": 56,
"unique": 1,
"sore": "test.main.verifyLines"
},
{
"context": "('expect',)",
"methods": 42,
"unique": 1,
"sore": "expect"
},
{
"context": "('close',)",
"methods": 40,
"unique": 1,
"sore": "close"
},
{
"context": "('noImpl',)",
"methods": 34,
"unique": 1,
"sore": "noImpl"
}
],
"elapsed": 0.82
},
{
"threshold": 0.01,
"symbols_total": 2962,
"symbols_kept": 76,
"seqs_total": 6720,
"seqs_surviving": 4802,
"contexts": 1297,
"sore_successes": 175,
"total_methods": 4802,
"methods_in_good": 1939,
"coverage": 40.4,
"top_patterns": [
{
"context": "('test', 'main')",
"methods": 85,
"unique": 1,
"sore": "test.main"
},
{
"context": "('expectUnreached',)",
"methods": 81,
"unique": 1,
"sore": "expectUnreached"
},
{
"context": "('expect',)",
"methods": 73,
"unique": 1,
"sore": "expect"
},
{
"context": "('block',)",
"methods": 59,
"unique": 1,
"sore": "block"
},
{
"context": "('compareAndSet',)",
"methods": 55,
"unique": 1,
"sore": "compareAndSet"
}
],
"elapsed": 0.85
},
{
"threshold": 0.02,
"symbols_total": 2962,
"symbols_kept": 38,
"seqs_total": 6720,
"seqs_surviving": 3954,
"contexts": 826,
"sore_successes": 148,
"total_methods": 3954,
"methods_in_good": 1635,
"coverage": 41.4,
"top_patterns": [
{
"context": "('expectUnreached',)",
"methods": 92,
"unique": 1,
"sore": "expectUnreached"
},
{
"context": "('runTest',)",
"methods": 82,
"unique": 1,
"sore": "runTest"
},
{
"context": "('error', 'error')",
"methods": 80,
"unique": 1,
"sore": "(error)+"
},
{
"context": "('expect',)",
"methods": 75,
"unique": 1,
"sore": "expect"
},
{
"context": "('assertEquals',)",
"methods": 73,
"unique": 1,
"sore": "assertEquals"
}
],
"elapsed": 0.72
},
{
"threshold": 0.05,
"symbols_total": 2962,
"symbols_kept": 17,
"seqs_total": 6720,
"seqs_surviving": 3511,
"contexts": 430,
"sore_successes": 104,
"total_methods": 3511,
"methods_in_good": 1674,
"coverage": 47.7,
"top_patterns": [
{
"context": "('runTest',)",
"methods": 220,
"unique": 1,
"sore": "runTest"
},
{
"context": "('expectUnreached',)",
"methods": 99,
"unique": 1,
"sore": "expectUnreached"
},
{
"context": "('assertEquals',)",
"methods": 91,
"unique": 1,
"sore": "assertEquals"
},
{
"context": "('runTest', 'assertEquals')",
"methods": 88,
"unique": 1,
"sore": "runTest.assertEquals"
},
{
"context": "('expect',)",
"methods": 81,
"unique": 1,
"sore": "expect"
}
],
"elapsed": 0.36
},
{
"threshold": 0.1,
"symbols_total": 2962,
"symbols_kept": 5,
"seqs_total": 6720,
"seqs_surviving": 2675,
"contexts": 61,
"sore_successes": 28,
"total_methods": 2675,
"methods_in_good": 1633,
"coverage": 61.0,
"top_patterns": [
{
"context": "('runTest',)",
"methods": 428,
"unique": 1,
"sore": "runTest"
},
{
"context": "('assertEquals',)",
"methods": 236,
"unique": 1,
"sore": "assertEquals"
},
{
"context": "('runTest', 'assertEquals')",
"methods": 197,
"unique": 1,
"sore": "runTest.assertEquals"
},
{
"context": "('runTest', 'expect', 'launch')",
"methods": 197,
"unique": 72,
"sore": "runTest.((expect)+|((assertEquals)+|(finish|(launch)+))+)+"
},
{
"context": "('launch',)",
"methods": 145,
"unique": 1,
"sore": "launch"
}
],
"elapsed": 0.09
},
{
"threshold": 0.15,
"symbols_total": 2962,
"symbols_kept": 4,
"seqs_total": 6720,
"seqs_surviving": 2499,
"contexts": 34,
"sore_successes": 19,
"total_methods": 2499,
"methods_in_good": 1309,
"coverage": 52.4,
"top_patterns": [
{
"context": "('runTest',)",
"methods": 549,
"unique": 1,
"sore": "runTest"
},
{
"context": "('assertEquals',)",
"methods": 253,
"unique": 1,
"sore": "assertEquals"
},
{
"context": "('runTest', 'assertEquals')",
"methods": 233,
"unique": 1,
"sore": "runTest.assertEquals"
},
{
"context": "('expect',)",
"methods": 102,
"unique": 1,
"sore": "expect"
},
{
"context": "('assertEquals', 'assertEquals')",
"methods": 55,
"unique": 1,
"sore": "(assertEquals)+"
}
],
"elapsed": 0.05
},
{
"threshold": 0.2,
"symbols_total": 2962,
"symbols_kept": 1,
"seqs_total": 6720,
"seqs_surviving": 1736,
"contexts": 3,
"sore_successes": 2,
"total_methods": 1736,
"methods_in_good": 1734,
"coverage": 99.9,
"top_patterns": [
{
"context": "('runTest',)",
"methods": 1728,
"unique": 1,
"sore": "runTest"
},
{
"context": "('runTest', 'runTest')",
"methods": 6,
"unique": 1,
"sore": "(runTest)+"
}
],
"elapsed": 0.03
}
]
}