diff --git a/experiments/EXPERIMENT_LOG.md b/experiments/EXPERIMENT_LOG.md index b8ec2e0..f9acd98 100644 --- a/experiments/EXPERIMENT_LOG.md +++ b/experiments/EXPERIMENT_LOG.md @@ -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 diff --git a/experiments/coarsen_eval.py b/experiments/coarsen_eval.py index a53fedd..654ded8 100644 --- a/experiments/coarsen_eval.py +++ b/experiments/coarsen_eval.py @@ -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"}, } diff --git a/experiments/results/coarsen_coroutines.json b/experiments/results/coarsen_coroutines.json new file mode 100644 index 0000000..71c691a --- /dev/null +++ b/experiments/results/coarsen_coroutines.json @@ -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 + } + ] + } + } +} \ No newline at end of file diff --git a/experiments/results/coarsen_fastapi.json b/experiments/results/coarsen_fastapi.json new file mode 100644 index 0000000..cd85f25 --- /dev/null +++ b/experiments/results/coarsen_fastapi.json @@ -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 + } + ] + } + } +} \ No newline at end of file diff --git a/experiments/results/coarsen_flask.json b/experiments/results/coarsen_flask.json index 26a61e8..8d814b8 100644 --- a/experiments/results/coarsen_flask.json +++ b/experiments/results/coarsen_flask.json @@ -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 }, { diff --git a/experiments/results/coarsen_ragsak.json b/experiments/results/coarsen_ragsak.json index 277cf99..ac827cd 100644 --- a/experiments/results/coarsen_ragsak.json +++ b/experiments/results/coarsen_ragsak.json @@ -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 }, {