feature/treesitter-tag-queries #2

Open
tobi wants to merge 78 commits from feature/treesitter-tag-queries into main
6 changed files with 2074 additions and 59 deletions
Showing only changes of commit dd183f6241 - Show all commits

View file

@ -183,6 +183,33 @@ cross-package reach. Whether this is useful depends on the use case:
---
## Round 7: Four-Codebase Evaluation
**Method:** Run raw vs coarsened on RAGSAK (Kotlin), Flask (Python),
kotlinx.coroutines (Kotlin), FastAPI (Python).
**Results (k=3):**
| Codebase | Raw cov | Coarse cov | Raw xpkg | Coarse xpkg | Δ |
|----------|---------|------------|----------|-------------|---|
| RAGSAK | 18.5% | 6.0% | 69 | 87 | +18 |
| Flask | 17.1% | 17.3% | 40 | 27 | -13 |
| Coroutines | 30.7% | 19.1% | 524 | 539 | +15 |
| FastAPI | 12.4% | 20.7% | 82 | 97 | +15 |
Cross-package patterns discovered:
- FastAPI: `('response', 'client', 'get')` — 72 packages (HTTP request pattern)
- Coroutines: `('RETURN', 'EXCEPTION', 'UnsupportedOperationException')` — 13 packages
- RAGSAK: `('IF', 'isEmpty', 'isEmpty')` — 8 packages (null-check)
- Flask: `('RETURN', 'render_template', 'render_template')` — 5 packages
**Verdict:** The conventions vs completions tradeoff is real and measurable.
Coarsening consistently trades per-package coverage for cross-package reach.
FastAPI is the exception: coverage improves (12.4% → 20.7%) because its
structural tokens (response/client patterns) are highly repetitive.
---
## What We Learned (Summary)
1. **Per-package grouping is too sparse.** 1-3 sequences per package isn't

View file

@ -25,6 +25,8 @@ RESULTS_DIR = Path(__file__).parent / "results"
CODEBASES = {
"ragsak": {"name": "RAGSAK", "path": "/home/tobi/Desktop/kesai/RAGSAK", "ext": ".kt"},
"flask": {"name": "Flask", "path": "/home/tobi/Desktop/dervish/external_refs/flask", "ext": ".py"},
"coroutines": {"name": "Kotlin Coroutines", "path": "/home/tobi/Desktop/dervish/projects/grammar-inference-engine/external_refs/kotlinx.coroutines", "ext": ".kt"},
"fastapi": {"name": "FastAPI", "path": "/home/tobi/Desktop/dervish/projects/grammar-inference-engine/external_refs/fastapi", "ext": ".py"},
}

View file

@ -0,0 +1,993 @@
{
"name": "Kotlin Coroutines",
"raw": {
"seq_count": 6720,
"alphabet_size": 2962,
"alphabet_sample": [
"",
"(\n val data: String\n )",
"(\"un",
"()",
"() }",
"() } }",
"())",
"()) }",
"(),",
"(), 1.1)",
"(), self",
"().availab",
"(0)",
"(0),",
"(0, 100)",
"(0, 1024",
"(1)",
"(2)",
"(3)",
"(Bal",
"(Sta",
"(Sto",
"(Thread",
"(Uni",
"(actorSta",
"(block: Runnable)",
"(cou",
"(data: String)",
"(e: Throwable",
"(initial: T)"
],
"k1": {
"contexts": 1128,
"sore_successes": 217,
"total_methods": 6720,
"methods_in_good": 1048,
"coverage": 15.6,
"cross_package_contexts": 347,
"elapsed": 0.009,
"top_groups": [
{
"context": "('runTest',)",
"label": "raw_k1",
"methods": 1693,
"unique": 1483,
"unique_ratio": 0.876,
"alphabet_size": 747,
"sore": null,
"sore_success": false
},
{
"context": "('runBlocking',)",
"label": "raw_k1",
"methods": 367,
"unique": 281,
"unique_ratio": 0.766,
"alphabet_size": 373,
"sore": null,
"sore_success": false
},
{
"context": "('_eps',)",
"label": "raw_k1",
"methods": 161,
"unique": 1,
"unique_ratio": 0.006,
"alphabet_size": 0,
"sore": null,
"sore_success": false
},
{
"context": "('expect',)",
"label": "raw_k1",
"methods": 120,
"unique": 42,
"unique_ratio": 0.35,
"alphabet_size": 69,
"sore": null,
"sore_success": false
},
{
"context": "('test',)",
"label": "raw_k1",
"methods": 88,
"unique": 10,
"unique_ratio": 0.114,
"alphabet_size": 16,
"sore": null,
"sore_success": false
},
{
"context": "('expectUnreached',)",
"label": "raw_k1",
"methods": 76,
"unique": 1,
"unique_ratio": 0.013,
"alphabet_size": 1,
"sore": "expectUnreached",
"sore_success": true
},
{
"context": "('flow',)",
"label": "raw_k1",
"methods": 58,
"unique": 34,
"unique_ratio": 0.586,
"alphabet_size": 79,
"sore": null,
"sore_success": false
},
{
"context": "('launch',)",
"label": "raw_k1",
"methods": 54,
"unique": 34,
"unique_ratio": 0.63,
"alphabet_size": 94,
"sore": null,
"sore_success": false
},
{
"context": "('close',)",
"label": "raw_k1",
"methods": 51,
"unique": 9,
"unique_ratio": 0.176,
"alphabet_size": 11,
"sore": null,
"sore_success": false
},
{
"context": "('rxObservable',)",
"label": "raw_k1",
"methods": 47,
"unique": 22,
"unique_ratio": 0.468,
"alphabet_size": 34,
"sore": null,
"sore_success": false
}
],
"cross_pkg_examples": [
{
"context": "('_eps',)",
"packages": 48
},
{
"context": "('runTest',)",
"packages": 46
},
{
"context": "('runBlocking',)",
"packages": 41
},
{
"context": "('block',)",
"packages": 31
},
{
"context": "('close',)",
"packages": 20
},
{
"context": "('suspendCancellableCoroutine',)",
"packages": 20
},
{
"context": "('error',)",
"packages": 18
},
{
"context": "('cancel',)",
"packages": 17
},
{
"context": "('launch',)",
"packages": 16
},
{
"context": "('require',)",
"packages": 15
}
]
},
"k2": {
"contexts": 2455,
"sore_successes": 431,
"total_methods": 6720,
"methods_in_good": 1704,
"coverage": 25.4,
"cross_package_contexts": 461,
"elapsed": 0.007,
"top_groups": [
{
"context": "('runTest', 'expect')",
"label": "raw_k2",
"methods": 397,
"unique": 331,
"unique_ratio": 0.834,
"alphabet_size": 272,
"sore": null,
"sore_success": false
},
{
"context": "('_eps',)",
"label": "raw_k2",
"methods": 161,
"unique": 1,
"unique_ratio": 0.006,
"alphabet_size": 0,
"sore": null,
"sore_success": false
},
{
"context": "('runTest', 'flow')",
"label": "raw_k2",
"methods": 143,
"unique": 140,
"unique_ratio": 0.979,
"alphabet_size": 103,
"sore": null,
"sore_success": false
},
{
"context": "('runTest', 'Channel')",
"label": "raw_k2",
"methods": 120,
"unique": 109,
"unique_ratio": 0.908,
"alphabet_size": 107,
"sore": null,
"sore_success": false
},
{
"context": "('test', 'main')",
"label": "raw_k2",
"methods": 88,
"unique": 10,
"unique_ratio": 0.114,
"alphabet_size": 16,
"sore": null,
"sore_success": false
},
{
"context": "('runTest', 'flowOf')",
"label": "raw_k2",
"methods": 80,
"unique": 74,
"unique_ratio": 0.925,
"alphabet_size": 102,
"sore": null,
"sore_success": false
},
{
"context": "('runBlocking', 'expect')",
"label": "raw_k2",
"methods": 76,
"unique": 55,
"unique_ratio": 0.724,
"alphabet_size": 75,
"sore": null,
"sore_success": false
},
{
"context": "('expectUnreached',)",
"label": "raw_k2",
"methods": 76,
"unique": 1,
"unique_ratio": 0.013,
"alphabet_size": 1,
"sore": "expectUnreached",
"sore_success": true
},
{
"context": "('runTest', 'launch')",
"label": "raw_k2",
"methods": 50,
"unique": 47,
"unique_ratio": 0.94,
"alphabet_size": 73,
"sore": null,
"sore_success": false
},
{
"context": "('check', 'check')",
"label": "raw_k2",
"methods": 45,
"unique": 40,
"unique_ratio": 0.889,
"alphabet_size": 87,
"sore": null,
"sore_success": false
}
],
"cross_pkg_examples": [
{
"context": "('_eps',)",
"packages": 48
},
{
"context": "('runTest', 'expect')",
"packages": 26
},
{
"context": "('error', 'error')",
"packages": 18
},
{
"context": "('close',)",
"packages": 16
},
{
"context": "('block',)",
"packages": 16
},
{
"context": "('runTest', 'launch')",
"packages": 16
},
{
"context": "('require', 'require')",
"packages": 15
},
{
"context": "('check', 'check')",
"packages": 15
},
{
"context": "('repeat', 'repeat')",
"packages": 14
},
{
"context": "('runBlocking', 'expect')",
"packages": 13
}
]
},
"k3": {
"contexts": 3434,
"sore_successes": 546,
"total_methods": 6720,
"methods_in_good": 2062,
"coverage": 30.7,
"cross_package_contexts": 524,
"elapsed": 0.013,
"top_groups": [
{
"context": "('_eps',)",
"label": "raw_k3",
"methods": 161,
"unique": 1,
"unique_ratio": 0.006,
"alphabet_size": 0,
"sore": null,
"sore_success": false
},
{
"context": "('expectUnreached',)",
"label": "raw_k3",
"methods": 76,
"unique": 1,
"unique_ratio": 0.013,
"alphabet_size": 1,
"sore": "expectUnreached",
"sore_success": true
},
{
"context": "('runTest', 'expect', 'launch')",
"label": "raw_k3",
"methods": 72,
"unique": 67,
"unique_ratio": 0.931,
"alphabet_size": 64,
"sore": null,
"sore_success": false
},
{
"context": "('runTest', 'flow', 'emit')",
"label": "raw_k3",
"methods": 58,
"unique": 58,
"unique_ratio": 1.0,
"alphabet_size": 65,
"sore": null,
"sore_success": false
},
{
"context": "('test', 'main', 'verifyLines')",
"label": "raw_k3",
"methods": 56,
"unique": 1,
"unique_ratio": 0.018,
"alphabet_size": 3,
"sore": "test.main.verifyLines",
"sore_success": true
},
{
"context": "('runTest', 'flow', 'expect')",
"label": "raw_k3",
"methods": 52,
"unique": 49,
"unique_ratio": 0.942,
"alphabet_size": 68,
"sore": null,
"sore_success": false
},
{
"context": "('runTest', 'listOf', 'listOf')",
"label": "raw_k3",
"methods": 44,
"unique": 41,
"unique_ratio": 0.932,
"alphabet_size": 73,
"sore": null,
"sore_success": false
},
{
"context": "('expect',)",
"label": "raw_k3",
"methods": 42,
"unique": 1,
"unique_ratio": 0.024,
"alphabet_size": 1,
"sore": "expect",
"sore_success": true
},
{
"context": "('close',)",
"label": "raw_k3",
"methods": 40,
"unique": 1,
"unique_ratio": 0.025,
"alphabet_size": 1,
"sore": "close",
"sore_success": true
},
{
"context": "('runTest', 'currentDispatcher', 'asScheduler')",
"label": "raw_k3",
"methods": 40,
"unique": 16,
"unique_ratio": 0.4,
"alphabet_size": 17,
"sore": null,
"sore_success": false
}
],
"cross_pkg_examples": [
{
"context": "('_eps',)",
"packages": 48
},
{
"context": "('close',)",
"packages": 16
},
{
"context": "('block',)",
"packages": 16
},
{
"context": "('error', 'error')",
"packages": 13
},
{
"context": "('UnsupportedOperationException',)",
"packages": 13
},
{
"context": "('cancel',)",
"packages": 11
},
{
"context": "('toString',)",
"packages": 11
},
{
"context": "('dispatch',)",
"packages": 11
},
{
"context": "('runTest', 'listOf', 'listOf')",
"packages": 11
},
{
"context": "('runTest', 'repeat', 'repeat')",
"packages": 9
}
]
}
},
"coarsened": {
"seq_count": 6720,
"alphabet_size": 3759,
"alphabet_sample": [
"",
"(\n val data: String\n )",
"(\"un",
"()",
"() }",
"() } }",
"())",
"()) }",
"(),",
"(), 1.1)",
"(), self",
"().availab",
"(0)",
"(0),",
"(0, 100)",
"(0, 1024",
"(1)",
"(2)",
"(2,",
"(3)",
"(Bal",
"(Ch",
"(Sta",
"(Sto",
"(Thread",
"(Uni",
"(actorSta",
"(block: Runnable)",
"(clauseObje",
"(cou"
],
"k1": {
"contexts": 985,
"sore_successes": 118,
"total_methods": 6720,
"methods_in_good": 472,
"coverage": 7.0,
"cross_package_contexts": 320,
"elapsed": 0.008,
"top_groups": [
{
"context": "('runTest',)",
"label": "coarsened_k1",
"methods": 1691,
"unique": 1561,
"unique_ratio": 0.923,
"alphabet_size": 923,
"sore": null,
"sore_success": false
},
{
"context": "('runBlocking',)",
"label": "coarsened_k1",
"methods": 363,
"unique": 290,
"unique_ratio": 0.799,
"alphabet_size": 434,
"sore": null,
"sore_success": false
},
{
"context": "('IF',)",
"label": "coarsened_k1",
"methods": 351,
"unique": 309,
"unique_ratio": 0.88,
"alphabet_size": 727,
"sore": null,
"sore_success": false
},
{
"context": "('RETURN',)",
"label": "coarsened_k1",
"methods": 182,
"unique": 114,
"unique_ratio": 0.626,
"alphabet_size": 282,
"sore": null,
"sore_success": false
},
{
"context": "('expect',)",
"label": "coarsened_k1",
"methods": 117,
"unique": 45,
"unique_ratio": 0.385,
"alphabet_size": 95,
"sore": null,
"sore_success": false
},
{
"context": "('LOOP',)",
"label": "coarsened_k1",
"methods": 91,
"unique": 82,
"unique_ratio": 0.901,
"alphabet_size": 227,
"sore": null,
"sore_success": false
},
{
"context": "('EXCEPTION',)",
"label": "coarsened_k1",
"methods": 90,
"unique": 72,
"unique_ratio": 0.8,
"alphabet_size": 197,
"sore": null,
"sore_success": false
},
{
"context": "('test',)",
"label": "coarsened_k1",
"methods": 88,
"unique": 88,
"unique_ratio": 1.0,
"alphabet_size": 108,
"sore": null,
"sore_success": false
},
{
"context": "('expectUnreached',)",
"label": "coarsened_k1",
"methods": 76,
"unique": 3,
"unique_ratio": 0.039,
"alphabet_size": 2,
"sore": null,
"sore_success": false
},
{
"context": "('flow',)",
"label": "coarsened_k1",
"methods": 57,
"unique": 34,
"unique_ratio": 0.596,
"alphabet_size": 64,
"sore": null,
"sore_success": false
}
],
"cross_pkg_examples": [
{
"context": "('IF',)",
"packages": 71
},
{
"context": "('RETURN',)",
"packages": 54
},
{
"context": "('runTest',)",
"packages": 45
},
{
"context": "('EXCEPTION',)",
"packages": 41
},
{
"context": "('runBlocking',)",
"packages": 39
},
{
"context": "('LOOP',)",
"packages": 32
},
{
"context": "('value',)",
"packages": 21
},
{
"context": "('close',)",
"packages": 20
},
{
"context": "('suspendCancellableCoroutine',)",
"packages": 19
},
{
"context": "('block',)",
"packages": 18
}
]
},
"k2": {
"contexts": 2270,
"sore_successes": 256,
"total_methods": 6720,
"methods_in_good": 952,
"coverage": 14.2,
"cross_package_contexts": 493,
"elapsed": 0.008,
"top_groups": [
{
"context": "('runTest', 'expect')",
"label": "coarsened_k2",
"methods": 356,
"unique": 325,
"unique_ratio": 0.913,
"alphabet_size": 348,
"sore": null,
"sore_success": false
},
{
"context": "('runTest', 'flow')",
"label": "coarsened_k2",
"methods": 138,
"unique": 135,
"unique_ratio": 0.978,
"alphabet_size": 127,
"sore": null,
"sore_success": false
},
{
"context": "('runTest', 'Channel')",
"label": "coarsened_k2",
"methods": 112,
"unique": 108,
"unique_ratio": 0.964,
"alphabet_size": 152,
"sore": null,
"sore_success": false
},
{
"context": "('test', 'coroutines')",
"label": "coarsened_k2",
"methods": 88,
"unique": 88,
"unique_ratio": 1.0,
"alphabet_size": 108,
"sore": null,
"sore_success": false
},
{
"context": "('runBlocking', 'Unit')",
"label": "coarsened_k2",
"methods": 80,
"unique": 63,
"unique_ratio": 0.787,
"alphabet_size": 141,
"sore": null,
"sore_success": false
},
{
"context": "('runTest', 'flowOf')",
"label": "coarsened_k2",
"methods": 80,
"unique": 77,
"unique_ratio": 0.963,
"alphabet_size": 125,
"sore": null,
"sore_success": false
},
{
"context": "('IF', 'RETURN')",
"label": "coarsened_k2",
"methods": 75,
"unique": 70,
"unique_ratio": 0.933,
"alphabet_size": 211,
"sore": null,
"sore_success": false
},
{
"context": "('runBlocking', 'expect')",
"label": "coarsened_k2",
"methods": 75,
"unique": 55,
"unique_ratio": 0.733,
"alphabet_size": 98,
"sore": null,
"sore_success": false
},
{
"context": "('expectUnreached',)",
"label": "coarsened_k2",
"methods": 67,
"unique": 1,
"unique_ratio": 0.015,
"alphabet_size": 1,
"sore": "expectUnreached",
"sore_success": true
},
{
"context": "('RETURN', 'EXCEPTION')",
"label": "coarsened_k2",
"methods": 51,
"unique": 15,
"unique_ratio": 0.294,
"alphabet_size": 39,
"sore": null,
"sore_success": false
}
],
"cross_pkg_examples": [
{
"context": "('IF', 'RETURN')",
"packages": 27
},
{
"context": "('runTest', 'expect')",
"packages": 25
},
{
"context": "('RETURN', 'EXCEPTION')",
"packages": 24
},
{
"context": "('close', 'close')",
"packages": 19
},
{
"context": "('runTest', 'launch')",
"packages": 16
},
{
"context": "('require', 'require')",
"packages": 15
},
{
"context": "('IF', 'IF')",
"packages": 15
},
{
"context": "('runBlocking', 'expect')",
"packages": 13
},
{
"context": "('error', 'error')",
"packages": 13
},
{
"context": "('cancel', 'cancel')",
"packages": 13
}
]
},
"k3": {
"contexts": 3414,
"sore_successes": 326,
"total_methods": 6720,
"methods_in_good": 1282,
"coverage": 19.1,
"cross_package_contexts": 539,
"elapsed": 0.004,
"top_groups": [
{
"context": "('test', 'coroutines', 'guide')",
"label": "coarsened_k3",
"methods": 81,
"unique": 81,
"unique_ratio": 1.0,
"alphabet_size": 100,
"sore": null,
"sore_success": false
},
{
"context": "('runTest', 'Channel', 'Int')",
"label": "coarsened_k3",
"methods": 68,
"unique": 64,
"unique_ratio": 0.941,
"alphabet_size": 87,
"sore": null,
"sore_success": false
},
{
"context": "('expectUnreached',)",
"label": "coarsened_k3",
"methods": 67,
"unique": 1,
"unique_ratio": 0.015,
"alphabet_size": 1,
"sore": "expectUnreached",
"sore_success": true
},
{
"context": "('runTest', 'expect', 'launch')",
"label": "coarsened_k3",
"methods": 50,
"unique": 50,
"unique_ratio": 1.0,
"alphabet_size": 61,
"sore": null,
"sore_success": false
},
{
"context": "('runTest', 'flow', 'emit')",
"label": "coarsened_k3",
"methods": 46,
"unique": 46,
"unique_ratio": 1.0,
"alphabet_size": 66,
"sore": null,
"sore_success": false
},
{
"context": "('runTest', 'currentDispatcher', 'CoroutineDispatcher')",
"label": "coarsened_k3",
"methods": 40,
"unique": 16,
"unique_ratio": 0.4,
"alphabet_size": 22,
"sore": null,
"sore_success": false
},
{
"context": "('expect',)",
"label": "coarsened_k3",
"methods": 39,
"unique": 1,
"unique_ratio": 0.026,
"alphabet_size": 1,
"sore": "expect",
"sore_success": true
},
{
"context": "('runTest', 'flow', 'expect')",
"label": "coarsened_k3",
"methods": 38,
"unique": 36,
"unique_ratio": 0.947,
"alphabet_size": 78,
"sore": null,
"sore_success": false
},
{
"context": "('runTest', 'listOf', 'listOf')",
"label": "coarsened_k3",
"methods": 37,
"unique": 34,
"unique_ratio": 0.919,
"alphabet_size": 90,
"sore": null,
"sore_success": false
},
{
"context": "('noImpl',)",
"label": "coarsened_k3",
"methods": 34,
"unique": 1,
"unique_ratio": 0.029,
"alphabet_size": 1,
"sore": "noImpl",
"sore_success": true
}
],
"cross_pkg_examples": [
{
"context": "('close', 'close')",
"packages": 14
},
{
"context": "('RETURN', 'EXCEPTION', 'UnsupportedOperationException')",
"packages": 13
},
{
"context": "('error', 'error')",
"packages": 12
},
{
"context": "('value',)",
"packages": 12
},
{
"context": "('dispatch', 'dispatch')",
"packages": 11
},
{
"context": "('runTest', 'listOf', 'listOf')",
"packages": 11
},
{
"context": "('RETURN',)",
"packages": 10
},
{
"context": "('IF', 'RETURN', 'EXCEPTION')",
"packages": 10
},
{
"context": "('runTest', 'repeat', 'repeat')",
"packages": 9
},
{
"context": "('IF', 'IF')",
"packages": 9
}
]
}
}
}

View file

@ -0,0 +1,993 @@
{
"name": "FastAPI",
"raw": {
"seq_count": 4811,
"alphabet_size": 1503,
"alphabet_sample": [
"",
"!r",
"\")",
"\")]",
"\", \"\",",
"\"Path must b",
"\"_{v}\"):",
"\"site",
"#",
"', '',",
"(",
"(\"do",
"(\"r",
"(\"s",
"(\"u",
"():",
"(1)",
"([\"",
"(ap",
"(banne",
"(content_f",
"(en_docs_path",
"(f\"U",
"(new_conte",
"(pro",
"(s",
"(scope",
"(upd",
"({\"lin",
"({code"
],
"k1": {
"contexts": 520,
"sore_successes": 53,
"total_methods": 4811,
"methods_in_good": 245,
"coverage": 5.1,
"cross_package_contexts": 88,
"elapsed": 0.005,
"top_groups": [
{
"context": "('_eps',)",
"label": "raw_k1",
"methods": 1154,
"unique": 1,
"unique_ratio": 0.001,
"alphabet_size": 0,
"sore": null,
"sore_success": false
},
{
"context": "('get',)",
"label": "raw_k1",
"methods": 1082,
"unique": 54,
"unique_ratio": 0.05,
"alphabet_size": 130,
"sore": null,
"sore_success": false
},
{
"context": "('TestClient',)",
"label": "raw_k1",
"methods": 408,
"unique": 33,
"unique_ratio": 0.081,
"alphabet_size": 26,
"sore": null,
"sore_success": false
},
{
"context": "('post',)",
"label": "raw_k1",
"methods": 196,
"unique": 16,
"unique_ratio": 0.082,
"alphabet_size": 15,
"sore": null,
"sore_success": false
},
{
"context": "('import_module',)",
"label": "raw_k1",
"methods": 151,
"unique": 4,
"unique_ratio": 0.026,
"alphabet_size": 6,
"sore": null,
"sore_success": false
},
{
"context": "('openapi',)",
"label": "raw_k1",
"methods": 90,
"unique": 4,
"unique_ratio": 0.044,
"alphabet_size": 10,
"sore": null,
"sore_success": false
},
{
"context": "('put',)",
"label": "raw_k1",
"methods": 72,
"unique": 4,
"unique_ratio": 0.056,
"alphabet_size": 4,
"sore": null,
"sore_success": false
},
{
"context": "('raises',)",
"label": "raw_k1",
"methods": 64,
"unique": 20,
"unique_ratio": 0.312,
"alphabet_size": 25,
"sore": null,
"sore_success": false
},
{
"context": "('FastAPI',)",
"label": "raw_k1",
"methods": 59,
"unique": 50,
"unique_ratio": 0.847,
"alphabet_size": 131,
"sore": null,
"sore_success": false
},
{
"context": "('HTTPException',)",
"label": "raw_k1",
"methods": 49,
"unique": 7,
"unique_ratio": 0.143,
"alphabet_size": 9,
"sore": null,
"sore_success": false
}
],
"cross_pkg_examples": [
{
"context": "('_eps',)",
"packages": 93
},
{
"context": "('get',)",
"packages": 86
},
{
"context": "('import_module',)",
"packages": 51
},
{
"context": "('post',)",
"packages": 29
},
{
"context": "('TestClient',)",
"packages": 25
},
{
"context": "('put',)",
"packages": 12
},
{
"context": "('HTTPException',)",
"packages": 10
},
{
"context": "('len',)",
"packages": 8
},
{
"context": "('openapi',)",
"packages": 8
},
{
"context": "('JSONResponse',)",
"packages": 7
}
]
},
"k2": {
"contexts": 536,
"sore_successes": 53,
"total_methods": 4811,
"methods_in_good": 245,
"coverage": 5.1,
"cross_package_contexts": 87,
"elapsed": 0.011,
"top_groups": [
{
"context": "('_eps',)",
"label": "raw_k2",
"methods": 1154,
"unique": 1,
"unique_ratio": 0.001,
"alphabet_size": 0,
"sore": null,
"sore_success": false
},
{
"context": "('get', 'get')",
"label": "raw_k2",
"methods": 1082,
"unique": 54,
"unique_ratio": 0.05,
"alphabet_size": 130,
"sore": null,
"sore_success": false
},
{
"context": "('TestClient', 'TestClient')",
"label": "raw_k2",
"methods": 408,
"unique": 33,
"unique_ratio": 0.081,
"alphabet_size": 26,
"sore": null,
"sore_success": false
},
{
"context": "('post', 'post')",
"label": "raw_k2",
"methods": 196,
"unique": 16,
"unique_ratio": 0.082,
"alphabet_size": 15,
"sore": null,
"sore_success": false
},
{
"context": "('import_module', 'import_module')",
"label": "raw_k2",
"methods": 151,
"unique": 4,
"unique_ratio": 0.026,
"alphabet_size": 6,
"sore": null,
"sore_success": false
},
{
"context": "('openapi', 'openapi')",
"label": "raw_k2",
"methods": 90,
"unique": 4,
"unique_ratio": 0.044,
"alphabet_size": 10,
"sore": null,
"sore_success": false
},
{
"context": "('put', 'put')",
"label": "raw_k2",
"methods": 72,
"unique": 4,
"unique_ratio": 0.056,
"alphabet_size": 4,
"sore": null,
"sore_success": false
},
{
"context": "('raises', 'raises')",
"label": "raw_k2",
"methods": 64,
"unique": 20,
"unique_ratio": 0.312,
"alphabet_size": 25,
"sore": null,
"sore_success": false
},
{
"context": "('FastAPI', 'FastAPI')",
"label": "raw_k2",
"methods": 59,
"unique": 50,
"unique_ratio": 0.847,
"alphabet_size": 131,
"sore": null,
"sore_success": false
},
{
"context": "('HTTPException', 'HTTPException')",
"label": "raw_k2",
"methods": 49,
"unique": 7,
"unique_ratio": 0.143,
"alphabet_size": 9,
"sore": null,
"sore_success": false
}
],
"cross_pkg_examples": [
{
"context": "('_eps',)",
"packages": 93
},
{
"context": "('get', 'get')",
"packages": 86
},
{
"context": "('import_module', 'import_module')",
"packages": 51
},
{
"context": "('post', 'post')",
"packages": 29
},
{
"context": "('TestClient', 'TestClient')",
"packages": 25
},
{
"context": "('put', 'put')",
"packages": 12
},
{
"context": "('HTTPException', 'HTTPException')",
"packages": 10
},
{
"context": "('len', 'len')",
"packages": 8
},
{
"context": "('openapi', 'openapi')",
"packages": 8
},
{
"context": "('JSONResponse', 'JSONResponse')",
"packages": 7
}
]
},
"k3": {
"contexts": 796,
"sore_successes": 92,
"total_methods": 4811,
"methods_in_good": 596,
"coverage": 12.4,
"cross_package_contexts": 82,
"elapsed": 0.005,
"top_groups": [
{
"context": "('_eps',)",
"label": "raw_k3",
"methods": 1154,
"unique": 1,
"unique_ratio": 0.001,
"alphabet_size": 0,
"sore": null,
"sore_success": false
},
{
"context": "('get', 'get', 'json')",
"label": "raw_k3",
"methods": 900,
"unique": 14,
"unique_ratio": 0.016,
"alphabet_size": 12,
"sore": null,
"sore_success": false
},
{
"context": "('TestClient', 'TestClient', 'get')",
"label": "raw_k3",
"methods": 179,
"unique": 11,
"unique_ratio": 0.061,
"alphabet_size": 9,
"sore": null,
"sore_success": false
},
{
"context": "('TestClient', 'TestClient', 'post')",
"label": "raw_k3",
"methods": 168,
"unique": 4,
"unique_ratio": 0.024,
"alphabet_size": 5,
"sore": null,
"sore_success": false
},
{
"context": "('post', 'post', 'json')",
"label": "raw_k3",
"methods": 155,
"unique": 6,
"unique_ratio": 0.039,
"alphabet_size": 6,
"sore": null,
"sore_success": false
},
{
"context": "('import_module', 'import_module', 'TestClient')",
"label": "raw_k3",
"methods": 129,
"unique": 2,
"unique_ratio": 0.016,
"alphabet_size": 3,
"sore": null,
"sore_success": false
},
{
"context": "('get', 'get')",
"label": "raw_k3",
"methods": 89,
"unique": 1,
"unique_ratio": 0.011,
"alphabet_size": 1,
"sore": "(get)+",
"sore_success": true
},
{
"context": "('put', 'put', 'json')",
"label": "raw_k3",
"methods": 65,
"unique": 2,
"unique_ratio": 0.031,
"alphabet_size": 3,
"sore": null,
"sore_success": false
},
{
"context": "('openapi', 'openapi', 'get_body_model_name')",
"label": "raw_k3",
"methods": 48,
"unique": 1,
"unique_ratio": 0.021,
"alphabet_size": 2,
"sore": null,
"sore_success": false
},
{
"context": "('openapi', 'openapi', 'snapshot')",
"label": "raw_k3",
"methods": 41,
"unique": 2,
"unique_ratio": 0.049,
"alphabet_size": 3,
"sore": null,
"sore_success": false
}
],
"cross_pkg_examples": [
{
"context": "('_eps',)",
"packages": 93
},
{
"context": "('get', 'get', 'json')",
"packages": 70
},
{
"context": "('import_module', 'import_module', 'TestClient')",
"packages": 42
},
{
"context": "('post', 'post', 'json')",
"packages": 27
},
{
"context": "('get', 'get')",
"packages": 18
},
{
"context": "('TestClient', 'TestClient', 'get')",
"packages": 15
},
{
"context": "('import_module', 'import_module')",
"packages": 13
},
{
"context": "('put', 'put', 'json')",
"packages": 10
},
{
"context": "('HTTPException', 'HTTPException')",
"packages": 8
},
{
"context": "('len', 'len', 'len')",
"packages": 8
}
]
}
},
"coarsened": {
"seq_count": 4811,
"alphabet_size": 6036,
"alphabet_sample": [
"",
"!=",
"!= M",
"!r",
"\"",
"\" and",
"\"\"",
"\")",
"\")]",
"\", \"\",",
"\"Alread",
"\"Marked",
"\"Notifi",
"\"Path must b",
"\"_{v}\"):",
"\"docs\")",
"\"docs\"):",
"\"en\"",
"\"site",
"\"start",
"\"unk",
"\"{pare",
"\"})",
"#",
"# Ha",
"', '',",
"'/'\"",
"(",
"(\n se",
"(\n self,\n pat"
],
"k1": {
"contexts": 383,
"sore_successes": 10,
"total_methods": 4811,
"methods_in_good": 29,
"coverage": 0.6,
"cross_package_contexts": 59,
"elapsed": 0.005,
"top_groups": [
{
"context": "('RETURN',)",
"label": "coarsened_k1",
"methods": 1274,
"unique": 335,
"unique_ratio": 0.263,
"alphabet_size": 663,
"sore": null,
"sore_success": false
},
{
"context": "('response',)",
"label": "coarsened_k1",
"methods": 1242,
"unique": 199,
"unique_ratio": 0.16,
"alphabet_size": 428,
"sore": null,
"sore_success": false
},
{
"context": "('client',)",
"label": "coarsened_k1",
"methods": 454,
"unique": 119,
"unique_ratio": 0.262,
"alphabet_size": 111,
"sore": null,
"sore_success": false
},
{
"context": "('IF',)",
"label": "coarsened_k1",
"methods": 185,
"unique": 133,
"unique_ratio": 0.719,
"alphabet_size": 1082,
"sore": null,
"sore_success": false
},
{
"context": "('mod',)",
"label": "coarsened_k1",
"methods": 150,
"unique": 14,
"unique_ratio": 0.093,
"alphabet_size": 27,
"sore": null,
"sore_success": false
},
{
"context": "('app',)",
"label": "coarsened_k1",
"methods": 107,
"unique": 57,
"unique_ratio": 0.533,
"alphabet_size": 275,
"sore": null,
"sore_success": false
},
{
"context": "('pytest',)",
"label": "coarsened_k1",
"methods": 66,
"unique": 48,
"unique_ratio": 0.727,
"alphabet_size": 98,
"sore": null,
"sore_success": false
},
{
"context": "('results',)",
"label": "coarsened_k1",
"methods": 58,
"unique": 8,
"unique_ratio": 0.138,
"alphabet_size": 10,
"sore": null,
"sore_success": false
},
{
"context": "('self',)",
"label": "coarsened_k1",
"methods": 52,
"unique": 38,
"unique_ratio": 0.731,
"alphabet_size": 154,
"sore": null,
"sore_success": false
},
{
"context": "('openapi',)",
"label": "coarsened_k1",
"methods": 48,
"unique": 1,
"unique_ratio": 0.021,
"alphabet_size": 5,
"sore": null,
"sore_success": false
}
],
"cross_pkg_examples": [
{
"context": "('RETURN',)",
"packages": 91
},
{
"context": "('response',)",
"packages": 80
},
{
"context": "('mod',)",
"packages": 49
},
{
"context": "('IF',)",
"packages": 34
},
{
"context": "('client',)",
"packages": 25
},
{
"context": "('LOOP',)",
"packages": 12
},
{
"context": "('result',)",
"packages": 9
},
{
"context": "('self',)",
"packages": 9
},
{
"context": "('data',)",
"packages": 9
},
{
"context": "('EXCEPTION',)",
"packages": 7
}
]
},
"k2": {
"contexts": 888,
"sore_successes": 76,
"total_methods": 4811,
"methods_in_good": 776,
"coverage": 16.1,
"cross_package_contexts": 101,
"elapsed": 0.005,
"top_groups": [
{
"context": "('response', 'client')",
"label": "coarsened_k2",
"methods": 1202,
"unique": 176,
"unique_ratio": 0.146,
"alphabet_size": 101,
"sore": null,
"sore_success": false
},
{
"context": "('client', 'TestClient')",
"label": "coarsened_k2",
"methods": 392,
"unique": 91,
"unique_ratio": 0.232,
"alphabet_size": 88,
"sore": null,
"sore_success": false
},
{
"context": "('RETURN',)",
"label": "coarsened_k2",
"methods": 288,
"unique": 1,
"unique_ratio": 0.003,
"alphabet_size": 1,
"sore": "RETURN",
"sore_success": true
},
{
"context": "('RETURN', 'p')",
"label": "coarsened_k2",
"methods": 156,
"unique": 4,
"unique_ratio": 0.026,
"alphabet_size": 4,
"sore": null,
"sore_success": false
},
{
"context": "('mod', 'importlib')",
"label": "coarsened_k2",
"methods": 143,
"unique": 10,
"unique_ratio": 0.07,
"alphabet_size": 22,
"sore": null,
"sore_success": false
},
{
"context": "('RETURN', 'value')",
"label": "coarsened_k2",
"methods": 66,
"unique": 2,
"unique_ratio": 0.03,
"alphabet_size": 2,
"sore": "RETURN.(value)+",
"sore_success": true
},
{
"context": "('pytest', 'raises')",
"label": "coarsened_k2",
"methods": 61,
"unique": 43,
"unique_ratio": 0.705,
"alphabet_size": 82,
"sore": null,
"sore_success": false
},
{
"context": "('openapi', 'app')",
"label": "coarsened_k2",
"methods": 48,
"unique": 1,
"unique_ratio": 0.021,
"alphabet_size": 5,
"sore": null,
"sore_success": false
},
{
"context": "('dist', 'tmp_path')",
"label": "coarsened_k2",
"methods": 46,
"unique": 41,
"unique_ratio": 0.891,
"alphabet_size": 131,
"sore": null,
"sore_success": false
},
{
"context": "('app', 'FastAPI')",
"label": "coarsened_k2",
"methods": 45,
"unique": 45,
"unique_ratio": 1.0,
"alphabet_size": 251,
"sore": null,
"sore_success": false
}
],
"cross_pkg_examples": [
{
"context": "('response', 'client')",
"packages": 76
},
{
"context": "('mod', 'importlib')",
"packages": 47
},
{
"context": "('RETURN',)",
"packages": 34
},
{
"context": "('client', 'TestClient')",
"packages": 22
},
{
"context": "('RETURN', 'item')",
"packages": 10
},
{
"context": "('IF', 'not')",
"packages": 10
},
{
"context": "('RETURN', 'username')",
"packages": 7
},
{
"context": "('browser', 'playwright')",
"packages": 7
},
{
"context": "('RETURN', 'p')",
"packages": 7
},
{
"context": "('IF', 'item_id')",
"packages": 6
}
]
},
"k3": {
"contexts": 1047,
"sore_successes": 108,
"total_methods": 4811,
"methods_in_good": 995,
"coverage": 20.7,
"cross_package_contexts": 97,
"elapsed": 0.006,
"top_groups": [
{
"context": "('response', 'client', 'get')",
"label": "coarsened_k3",
"methods": 964,
"unique": 122,
"unique_ratio": 0.127,
"alphabet_size": 82,
"sore": null,
"sore_success": false
},
{
"context": "('client', 'TestClient', 'TestClient')",
"label": "coarsened_k3",
"methods": 392,
"unique": 91,
"unique_ratio": 0.232,
"alphabet_size": 88,
"sore": null,
"sore_success": false
},
{
"context": "('RETURN',)",
"label": "coarsened_k3",
"methods": 288,
"unique": 1,
"unique_ratio": 0.003,
"alphabet_size": 1,
"sore": "RETURN",
"sore_success": true
},
{
"context": "('response', 'client', 'post')",
"label": "coarsened_k3",
"methods": 162,
"unique": 37,
"unique_ratio": 0.228,
"alphabet_size": 42,
"sore": null,
"sore_success": false
},
{
"context": "('mod', 'importlib', 'import_module')",
"label": "coarsened_k3",
"methods": 143,
"unique": 10,
"unique_ratio": 0.07,
"alphabet_size": 22,
"sore": null,
"sore_success": false
},
{
"context": "('RETURN', 'p')",
"label": "coarsened_k3",
"methods": 76,
"unique": 1,
"unique_ratio": 0.013,
"alphabet_size": 2,
"sore": "RETURN.p",
"sore_success": true
},
{
"context": "('RETURN', 'p', 'p')",
"label": "coarsened_k3",
"methods": 72,
"unique": 1,
"unique_ratio": 0.014,
"alphabet_size": 2,
"sore": "RETURN.p+",
"sore_success": true
},
{
"context": "('response', 'client', 'put')",
"label": "coarsened_k3",
"methods": 68,
"unique": 10,
"unique_ratio": 0.147,
"alphabet_size": 12,
"sore": null,
"sore_success": false
},
{
"context": "('RETURN', 'value')",
"label": "coarsened_k3",
"methods": 64,
"unique": 1,
"unique_ratio": 0.016,
"alphabet_size": 2,
"sore": "RETURN.value",
"sore_success": true
},
{
"context": "('pytest', 'raises', 'raises')",
"label": "coarsened_k3",
"methods": 61,
"unique": 43,
"unique_ratio": 0.705,
"alphabet_size": 82,
"sore": null,
"sore_success": false
}
],
"cross_pkg_examples": [
{
"context": "('response', 'client', 'get')",
"packages": 72
},
{
"context": "('mod', 'importlib', 'import_module')",
"packages": 47
},
{
"context": "('RETURN',)",
"packages": 34
},
{
"context": "('response', 'client', 'post')",
"packages": 28
},
{
"context": "('client', 'TestClient', 'TestClient')",
"packages": 22
},
{
"context": "('response', 'client', 'put')",
"packages": 11
},
{
"context": "('RETURN', 'item')",
"packages": 10
},
{
"context": "('RETURN', 'username')",
"packages": 7
},
{
"context": "('browser', 'playwright', 'chromium')",
"packages": 7
},
{
"context": "('RETURN', 'settings', 'app_name')",
"packages": 6
}
]
}
}
}

View file

@ -135,12 +135,12 @@
"sore_success": false
},
{
"context": "('super',)",
"context": "('setdefault',)",
"label": "raw_k1",
"methods": 16,
"unique": 12,
"unique_ratio": 0.75,
"alphabet_size": 33,
"unique": 5,
"unique_ratio": 0.312,
"alphabet_size": 6,
"sore": null,
"sore_success": false
}
@ -179,11 +179,11 @@
"packages": 3
},
{
"context": "('app_context',)",
"context": "('post',)",
"packages": 3
},
{
"context": "('post',)",
"context": "('app_context',)",
"packages": 3
}
]
@ -288,12 +288,12 @@
"sore_success": false
},
{
"context": "('super', 'super')",
"context": "('setdefault', 'setdefault')",
"label": "raw_k2",
"methods": 16,
"unique": 12,
"unique_ratio": 0.75,
"alphabet_size": 33,
"unique": 5,
"unique_ratio": 0.312,
"alphabet_size": 6,
"sore": null,
"sore_success": false
}
@ -332,11 +332,11 @@
"packages": 3
},
{
"context": "('app_context', 'app_context')",
"context": "('post', 'post')",
"packages": 3
},
{
"context": "('post', 'post')",
"context": "('app_context', 'app_context')",
"packages": 3
}
]
@ -469,11 +469,11 @@
"packages": 4
},
{
"context": "('test_client', 'test_client')",
"context": "('Flask', 'Flask', 'from_mapping')",
"packages": 3
},
{
"context": "('Flask', 'Flask', 'from_mapping')",
"context": "('test_client', 'test_client')",
"packages": 3
},
{
@ -481,11 +481,11 @@
"packages": 3
},
{
"context": "('super', 'super', 'super')",
"context": "('type', 'type', 'type')",
"packages": 3
},
{
"context": "('type', 'type', 'type')",
"context": "('super', 'super', 'super')",
"packages": 3
},
{
@ -537,7 +537,7 @@
"methods_in_good": 4,
"coverage": 0.3,
"cross_package_contexts": 27,
"elapsed": 0.0,
"elapsed": 0.001,
"top_groups": [
{
"context": "('RETURN',)",
@ -553,8 +553,8 @@
"context": "('IF',)",
"label": "coarsened_k1",
"methods": 94,
"unique": 92,
"unique_ratio": 0.979,
"unique": 91,
"unique_ratio": 0.968,
"alphabet_size": 447,
"sore": null,
"sore_success": false
@ -674,11 +674,11 @@
"packages": 4
},
{
"context": "('class',)",
"context": "('@',)",
"packages": 3
},
{
"context": "('@',)",
"context": "('class',)",
"packages": 3
}
]
@ -689,8 +689,8 @@
"total_methods": 1424,
"methods_in_good": 225,
"coverage": 15.8,
"cross_package_contexts": 35,
"elapsed": 0.002,
"cross_package_contexts": 34,
"elapsed": 0.001,
"top_groups": [
{
"context": "('RETURN',)",
@ -803,11 +803,11 @@
"packages": 5
},
{
"context": "('RETURN', 'app')",
"context": "('RETURN',)",
"packages": 4
},
{
"context": "('RETURN',)",
"context": "('RETURN', 'app')",
"packages": 4
},
{
@ -819,11 +819,7 @@
"packages": 3
},
{
"context": "('IF', 'isinstance')",
"packages": 3
},
{
"context": "('self', 'app')",
"context": "('RETURN', 'isinstance')",
"packages": 3
},
{
@ -831,7 +827,11 @@
"packages": 3
},
{
"context": "('RETURN', 'isinstance')",
"context": "('self', 'app')",
"packages": 3
},
{
"context": "('IF', 'isinstance')",
"packages": 3
}
]
@ -842,7 +842,7 @@
"total_methods": 1424,
"methods_in_good": 247,
"coverage": 17.3,
"cross_package_contexts": 28,
"cross_package_contexts": 27,
"elapsed": 0.001,
"top_groups": [
{
@ -956,11 +956,11 @@
"packages": 4
},
{
"context": "('RETURN', 'app', 'test_client')",
"context": "('app', 'Flask', 'Flask')",
"packages": 3
},
{
"context": "('app', 'Flask', 'Flask')",
"context": "('RETURN', 'app', 'test_client')",
"packages": 3
},
{
@ -968,11 +968,7 @@
"packages": 3
},
{
"context": "('IF', 'isinstance', 'isinstance')",
"packages": 3
},
{
"context": "('self', 'app', 'app')",
"context": "('RETURN', 'isinstance', 'isinstance')",
"packages": 3
},
{
@ -980,7 +976,11 @@
"packages": 3
},
{
"context": "('RETURN', 'isinstance', 'isinstance')",
"context": "('self', 'app', 'app')",
"packages": 3
},
{
"context": "('IF', 'isinstance', 'isinstance')",
"packages": 3
},
{

View file

@ -195,7 +195,7 @@
"methods_in_good": 249,
"coverage": 15.5,
"cross_package_contexts": 100,
"elapsed": 0.001,
"elapsed": 0.002,
"top_groups": [
{
"context": "('listOf', 'listOf')",
@ -320,7 +320,7 @@
"packages": 4
},
{
"context": "('every', 'defaultCapabilityId')",
"context": "('VectorChunk', 'mapOf')",
"packages": 4
},
{
@ -328,7 +328,7 @@
"packages": 4
},
{
"context": "('VectorChunk', 'mapOf')",
"context": "('every', 'defaultCapabilityId')",
"packages": 4
},
{
@ -461,11 +461,11 @@
"packages": 4
},
{
"context": "('clearAllMocks',)",
"context": "('VectorChunk', 'mapOf', 'mapOf')",
"packages": 4
},
{
"context": "('VectorChunk', 'mapOf', 'mapOf')",
"context": "('clearAllMocks',)",
"packages": 4
},
{
@ -537,7 +537,7 @@
"methods_in_good": 51,
"coverage": 3.2,
"cross_package_contexts": 123,
"elapsed": 0.0,
"elapsed": 0.001,
"top_groups": [
{
"context": "('IF',)",
@ -690,7 +690,7 @@
"methods_in_good": 82,
"coverage": 5.1,
"cross_package_contexts": 123,
"elapsed": 0.001,
"elapsed": 0.002,
"top_groups": [
{
"context": "('listOf', 'listOf')",
@ -772,16 +772,6 @@
"sore": null,
"sore_success": false
},
{
"context": "('of', 'of')",
"label": "coarsened_k2",
"methods": 13,
"unique": 7,
"unique_ratio": 0.538,
"alphabet_size": 40,
"sore": null,
"sore_success": false
},
{
"context": "('productionClasses', 'filter')",
"label": "coarsened_k2",
@ -791,6 +781,16 @@
"alphabet_size": 28,
"sore": null,
"sore_success": false
},
{
"context": "('of', 'of')",
"label": "coarsened_k2",
"methods": 13,
"unique": 7,
"unique_ratio": 0.538,
"alphabet_size": 40,
"sore": null,
"sore_success": false
}
],
"cross_pkg_examples": [
@ -960,7 +960,7 @@
"packages": 5
},
{
"context": "('every', 'defaultCapabilityId', 'defaultCapabilityId')",
"context": "('VectorChunk', 'mapOf', 'mapOf')",
"packages": 4
},
{
@ -968,7 +968,7 @@
"packages": 4
},
{
"context": "('VectorChunk', 'mapOf', 'mapOf')",
"context": "('every', 'defaultCapabilityId', 'defaultCapabilityId')",
"packages": 4
},
{