fix: bare Kotlin captures + minimal coarsening (RETURN/IF/EXCEPTION/LOOP only)

- Added bare Kotlin captures to BEHAVIORAL_PREFIXES: conditional, exception, repeat, property, type
- Dropped variable (too noisy), kept only 4 high-signal categories in coarsen_token
- RAGSAK: 87 cross-package contexts (up from 69), real null-check patterns
- Flask: k=2 coverage 4.5% -> 15.8%, cross-package rendering conventions
This commit is contained in:
tobjend 2026-07-12 01:04:51 +02:00
parent 592974f039
commit d65b78bdf1
3 changed files with 596 additions and 608 deletions

View file

@ -49,6 +49,14 @@ BEHAVIORAL_PREFIXES = (
"label",
"type.definition",
"module",
# Bare captures from Kotlin highlights.scm
# (Kotlin uses "conditional" not "keyword.conditional", etc.)
# Excluded: "variable" (too noisy — every identifier reference)
"conditional",
"exception",
"repeat",
"property",
"type",
)
CALL_PREFIXES = ("function.call", "function.method.call", "reference.call", "reference.class", "constructor", "function")
@ -59,7 +67,9 @@ def coarsen_token(capname):
Uses capture names from highlights.scm same across all languages.
Function calls are kept as raw text (they ARE the behavioral content).
Only structural tokens (keywords, types) are coarsened.
Only the 4 highest-signal structural tokens are coarsened:
RETURN, IF, EXCEPTION, LOOP. Everything else kept raw.
Handles both dotted (keyword.conditional) and bare (conditional) captures.
"""
if capname.startswith("function.call") or capname.startswith("reference.call"):
return None # keep raw
@ -69,41 +79,19 @@ def coarsen_token(capname):
return None # keep raw
if capname.startswith("function"):
return None # keep raw (bare @function in Kotlin etc.)
if capname.startswith("keyword.return"):
if capname.startswith("keyword.return") or capname == "return":
return "RETURN"
if capname.startswith("keyword.raise") or capname.startswith("keyword.throw"):
if capname.startswith("keyword.raise") or capname.startswith("keyword.throw") or capname == "raise":
return "RAISE"
if capname.startswith("keyword.yield"):
if capname.startswith("keyword.yield") or capname == "yield":
return "YIELD"
if capname.startswith("keyword.exception"):
if capname.startswith("keyword.exception") or capname == "exception":
return "EXCEPTION"
if capname.startswith("keyword.conditional"):
if capname.startswith("keyword.conditional") or capname == "conditional":
return "IF"
if capname.startswith("keyword.repeat"):
if capname.startswith("keyword.repeat") or capname == "repeat":
return "LOOP"
if capname.startswith("keyword.function"):
return "FUN"
if capname.startswith("keyword"):
return "KW"
if capname.startswith("type.definition"):
return "TYPE"
if capname.startswith("type"):
return "TYPE"
if capname.startswith("variable.builtin"):
return "BUILTIN"
if capname.startswith("variable"):
return "VAR"
if capname.startswith("constant"):
return "CONST"
if capname.startswith("string"):
return "STR"
if capname.startswith("number"):
return "NUM"
if capname.startswith("boolean"):
return "BOOL"
if capname.startswith("attribute"):
return "ATTR"
return "OTHER"
return None # keep everything else raw
def _extract_coarsened_tokens(seq):

View file

@ -1,7 +1,7 @@
{
"name": "Flask",
"raw": {
"seq_count": 1391,
"seq_count": 1424,
"alphabet_size": 1055,
"alphabet_sample": [
"",
@ -38,18 +38,18 @@
"k1": {
"contexts": 373,
"sore_successes": 22,
"total_methods": 1391,
"total_methods": 1424,
"methods_in_good": 64,
"coverage": 4.6,
"coverage": 4.5,
"cross_package_contexts": 58,
"elapsed": 0.0,
"elapsed": 0.001,
"top_groups": [
{
"context": "('_eps',)",
"label": "raw_k1",
"methods": 282,
"methods": 315,
"unique": 1,
"unique_ratio": 0.004,
"unique_ratio": 0.003,
"alphabet_size": 0,
"sore": null,
"sore_success": false
@ -148,7 +148,7 @@
"cross_pkg_examples": [
{
"context": "('_eps',)",
"packages": 9
"packages": 10
},
{
"context": "('get',)",
@ -175,7 +175,7 @@
"packages": 4
},
{
"context": "('post',)",
"context": "('test_client',)",
"packages": 3
},
{
@ -183,7 +183,7 @@
"packages": 3
},
{
"context": "('test_client',)",
"context": "('post',)",
"packages": 3
}
]
@ -191,18 +191,18 @@
"k2": {
"contexts": 389,
"sore_successes": 22,
"total_methods": 1391,
"total_methods": 1424,
"methods_in_good": 64,
"coverage": 4.6,
"coverage": 4.5,
"cross_package_contexts": 54,
"elapsed": 0.001,
"elapsed": 0.002,
"top_groups": [
{
"context": "('_eps',)",
"label": "raw_k2",
"methods": 282,
"methods": 315,
"unique": 1,
"unique_ratio": 0.004,
"unique_ratio": 0.003,
"alphabet_size": 0,
"sore": null,
"sore_success": false
@ -301,7 +301,7 @@
"cross_pkg_examples": [
{
"context": "('_eps',)",
"packages": 9
"packages": 10
},
{
"context": "('get', 'get')",
@ -328,7 +328,7 @@
"packages": 4
},
{
"context": "('post', 'post')",
"context": "('test_client', 'test_client')",
"packages": 3
},
{
@ -336,7 +336,7 @@
"packages": 3
},
{
"context": "('test_client', 'test_client')",
"context": "('post', 'post')",
"packages": 3
}
]
@ -344,18 +344,18 @@
"k3": {
"contexts": 599,
"sore_successes": 43,
"total_methods": 1391,
"total_methods": 1424,
"methods_in_good": 243,
"coverage": 17.5,
"coverage": 17.1,
"cross_package_contexts": 40,
"elapsed": 0.001,
"top_groups": [
{
"context": "('_eps',)",
"label": "raw_k3",
"methods": 282,
"methods": 315,
"unique": 1,
"unique_ratio": 0.004,
"unique_ratio": 0.003,
"alphabet_size": 0,
"sore": null,
"sore_success": false
@ -454,7 +454,7 @@
"cross_pkg_examples": [
{
"context": "('_eps',)",
"packages": 9
"packages": 10
},
{
"context": "('render_template', 'render_template')",
@ -469,11 +469,11 @@
"packages": 4
},
{
"context": "('Flask', 'Flask', 'from_mapping')",
"context": "('test_client', 'test_client')",
"packages": 3
},
{
"context": "('test_client', 'test_client')",
"context": "('Flask', 'Flask', 'from_mapping')",
"packages": 3
},
{
@ -496,146 +496,146 @@
}
},
"coarsened": {
"seq_count": 1391,
"alphabet_size": 1063,
"seq_count": 1424,
"alphabet_size": 2569,
"alphabet_sample": [
"",
"!r",
"\"",
"\" * 100)",
"\")",
"\",",
"\", \"index\",",
"\", 301)\n\n wi",
"\", de",
"\", su",
"\"/\")",
"\"/t",
"\"Conten",
"\"X-Bar\"",
"\"X-Foo\"",
"\"]\n wea",
"\"about\"",
"\"ba",
"\"cus",
"\"def",
"\"f",
"\"fake a",
"\"fo",
"\"foo.vi",
"\"h",
"\"hello\"",
"\"in",
"\"lat",
"\"mer",
"\"nes",
"\"someth",
"\"spam\")",
"\"static",
"# ip addre",
"(\"\"), 40",
"(\"\", hea",
"()",
"(test",
"({\"msg\":"
"\"nes"
],
"k1": {
"contexts": 166,
"sore_successes": 3,
"total_methods": 1391,
"methods_in_good": 20,
"coverage": 1.4,
"cross_package_contexts": 22,
"contexts": 205,
"sore_successes": 2,
"total_methods": 1424,
"methods_in_good": 4,
"coverage": 0.3,
"cross_package_contexts": 27,
"elapsed": 0.0,
"top_groups": [
{
"context": "('RETURN',)",
"label": "coarsened_k1",
"methods": 448,
"unique": 101,
"unique_ratio": 0.225,
"alphabet_size": 97,
"sore": null,
"sore_success": false
},
{
"context": "('ATTR',)",
"label": "coarsened_k1",
"methods": 120,
"unique": 112,
"unique_ratio": 0.933,
"alphabet_size": 296,
"methods": 420,
"unique": 170,
"unique_ratio": 0.405,
"alphabet_size": 243,
"sore": null,
"sore_success": false
},
{
"context": "('IF',)",
"label": "coarsened_k1",
"methods": 117,
"unique": 109,
"unique_ratio": 0.932,
"alphabet_size": 209,
"methods": 94,
"unique": 92,
"unique_ratio": 0.979,
"alphabet_size": 447,
"sore": null,
"sore_success": false
},
{
"context": "('KW',)",
"context": "('app',)",
"label": "coarsened_k1",
"methods": 91,
"unique": 80,
"unique_ratio": 0.879,
"alphabet_size": 246,
"methods": 79,
"unique": 79,
"unique_ratio": 1.0,
"alphabet_size": 353,
"sore": null,
"sore_success": false
},
{
"context": "('EXCEPTION',)",
"label": "coarsened_k1",
"methods": 78,
"unique": 43,
"unique_ratio": 0.551,
"alphabet_size": 83,
"methods": 74,
"unique": 49,
"unique_ratio": 0.662,
"alphabet_size": 190,
"sore": null,
"sore_success": false
},
{
"context": "('append',)",
"context": "('@',)",
"label": "coarsened_k1",
"methods": 51,
"unique": 3,
"unique_ratio": 0.059,
"alphabet_size": 4,
"methods": 69,
"unique": 68,
"unique_ratio": 0.986,
"alphabet_size": 336,
"sore": null,
"sore_success": false
},
{
"context": "('FUN',)",
"context": "('self',)",
"label": "coarsened_k1",
"methods": 48,
"unique": 46,
"unique_ratio": 0.958,
"alphabet_size": 127,
"sore": null,
"sore_success": false
},
{
"context": "('Blueprint',)",
"label": "coarsened_k1",
"methods": 40,
"unique": 36,
"unique_ratio": 0.9,
"alphabet_size": 119,
"sore": null,
"sore_success": false
},
{
"context": "('get',)",
"label": "coarsened_k1",
"methods": 25,
"unique": 24,
"unique_ratio": 0.96,
"alphabet_size": 61,
"sore": null,
"sore_success": false
},
{
"context": "('Flask',)",
"label": "coarsened_k1",
"methods": 23,
"unique": 23,
"methods": 65,
"unique": 65,
"unique_ratio": 1.0,
"alphabet_size": 69,
"alphabet_size": 209,
"sore": null,
"sore_success": false
},
{
"context": "('flask',)",
"label": "coarsened_k1",
"methods": 62,
"unique": 26,
"unique_ratio": 0.419,
"alphabet_size": 59,
"sore": null,
"sore_success": false
},
{
"context": "('class',)",
"label": "coarsened_k1",
"methods": 42,
"unique": 42,
"unique_ratio": 1.0,
"alphabet_size": 300,
"sore": null,
"sore_success": false
},
{
"context": "('def',)",
"label": "coarsened_k1",
"methods": 32,
"unique": 31,
"unique_ratio": 0.969,
"alphabet_size": 169,
"sore": null,
"sore_success": false
},
{
"context": "('bp',)",
"label": "coarsened_k1",
"methods": 31,
"unique": 29,
"unique_ratio": 0.935,
"alphabet_size": 134,
"sore": null,
"sore_success": false
}
@ -646,7 +646,7 @@
"packages": 14
},
{
"context": "('get',)",
"context": "('app',)",
"packages": 7
},
{
@ -654,19 +654,19 @@
"packages": 6
},
{
"context": "('IF',)",
"context": "('self',)",
"packages": 6
},
{
"context": "('FUN',)",
"context": "('IF',)",
"packages": 5
},
{
"context": "('KW',)",
"context": "('def',)",
"packages": 5
},
{
"context": "('pop',)",
"context": "('response',)",
"packages": 4
},
{
@ -674,91 +674,61 @@
"packages": 4
},
{
"context": "('setdefault',)",
"packages": 4
"context": "('class',)",
"packages": 3
},
{
"context": "('Flask',)",
"context": "('@',)",
"packages": 3
}
]
},
"k2": {
"contexts": 353,
"sore_successes": 23,
"total_methods": 1391,
"methods_in_good": 346,
"coverage": 24.9,
"cross_package_contexts": 49,
"elapsed": 0.0,
"contexts": 570,
"sore_successes": 18,
"total_methods": 1424,
"methods_in_good": 225,
"coverage": 15.8,
"cross_package_contexts": 35,
"elapsed": 0.002,
"top_groups": [
{
"context": "('RETURN',)",
"label": "coarsened_k2",
"methods": 234,
"methods": 127,
"unique": 1,
"unique_ratio": 0.004,
"unique_ratio": 0.008,
"alphabet_size": 1,
"sore": "RETURN",
"sore_success": true
},
{
"context": "('ATTR', 'ATTR')",
"context": "('RETURN', 'flask')",
"label": "coarsened_k2",
"methods": 80,
"unique": 74,
"unique_ratio": 0.925,
"alphabet_size": 171,
"methods": 79,
"unique": 30,
"unique_ratio": 0.38,
"alphabet_size": 38,
"sore": null,
"sore_success": false
},
{
"context": "('IF', 'KW')",
"context": "('@', 'app')",
"label": "coarsened_k2",
"methods": 67,
"unique": 60,
"unique_ratio": 0.896,
"alphabet_size": 134,
"methods": 65,
"unique": 64,
"unique_ratio": 0.985,
"alphabet_size": 319,
"sore": null,
"sore_success": false
},
{
"context": "('append', 'append')",
"label": "coarsened_k2",
"methods": 51,
"unique": 3,
"unique_ratio": 0.059,
"alphabet_size": 4,
"sore": null,
"sore_success": false
},
{
"context": "('Blueprint', 'Blueprint')",
"label": "coarsened_k2",
"methods": 40,
"unique": 36,
"unique_ratio": 0.9,
"alphabet_size": 119,
"sore": null,
"sore_success": false
},
{
"context": "('RETURN', 'render_template')",
"label": "coarsened_k2",
"methods": 33,
"unique": 2,
"unique_ratio": 0.061,
"alphabet_size": 3,
"sore": null,
"sore_success": false
},
{
"context": "('KW', 'FUN')",
"context": "('RETURN', 'self')",
"label": "coarsened_k2",
"methods": 32,
"unique": 30,
"unique_ratio": 0.938,
"alphabet_size": 122,
"unique": 27,
"unique_ratio": 0.844,
"alphabet_size": 56,
"sore": null,
"sore_success": false
},
@ -766,225 +736,255 @@
"context": "('RETURN', 'isinstance')",
"label": "coarsened_k2",
"methods": 32,
"unique": 2,
"unique_ratio": 0.062,
"alphabet_size": 6,
"unique": 10,
"unique_ratio": 0.312,
"alphabet_size": 21,
"sore": null,
"sore_success": false
},
{
"context": "('get', 'get')",
"context": "('bp', 'flask')",
"label": "coarsened_k2",
"methods": 25,
"unique": 24,
"unique_ratio": 0.96,
"alphabet_size": 61,
"methods": 31,
"unique": 29,
"unique_ratio": 0.935,
"alphabet_size": 134,
"sore": null,
"sore_success": false
},
{
"context": "('ATTR', 'route')",
"context": "('RETURN', 's')",
"label": "coarsened_k2",
"methods": 24,
"methods": 23,
"unique": 1,
"unique_ratio": 0.043,
"alphabet_size": 2,
"sore": "RETURN.s",
"sore_success": true
},
{
"context": "('IF', 'self')",
"label": "coarsened_k2",
"methods": 22,
"unique": 22,
"unique_ratio": 0.917,
"alphabet_size": 103,
"unique_ratio": 1.0,
"alphabet_size": 145,
"sore": null,
"sore_success": false
},
{
"context": "('flask', 'g')",
"label": "coarsened_k2",
"methods": 20,
"unique": 8,
"unique_ratio": 0.4,
"alphabet_size": 29,
"sore": null,
"sore_success": false
},
{
"context": "('flask', 'session')",
"label": "coarsened_k2",
"methods": 20,
"unique": 11,
"unique_ratio": 0.55,
"alphabet_size": 30,
"sore": null,
"sore_success": false
}
],
"cross_pkg_examples": [
{
"context": "('RETURN',)",
"packages": 9
},
{
"context": "('get', 'get')",
"packages": 7
},
{
"context": "('RETURN', 'render_template')",
"packages": 6
},
{
"context": "('LOOP', 'KW')",
"packages": 6
},
{
"context": "('IF', 'KW')",
"packages": 5
},
{
"context": "('KW', 'FUN')",
"context": "('RETURN', 'self')",
"packages": 5
},
{
"context": "('RETURN', 'app')",
"packages": 4
},
{
"context": "('pop', 'pop')",
"context": "('RETURN',)",
"packages": 4
},
{
"context": "('setdefault', 'setdefault')",
"packages": 4
"context": "('app', 'Flask')",
"packages": 3
},
{
"context": "('app', 'app_context')",
"packages": 3
},
{
"context": "('IF', 'isinstance')",
"packages": 4
"packages": 3
},
{
"context": "('Flask', 'Flask')",
"context": "('self', 'app')",
"packages": 3
},
{
"context": "('EXCEPTION', 'NotImplementedError')",
"packages": 3
},
{
"context": "('RETURN', 'isinstance')",
"packages": 3
}
]
},
"k3": {
"contexts": 529,
"sore_successes": 30,
"total_methods": 1391,
"methods_in_good": 400,
"coverage": 28.8,
"cross_package_contexts": 47,
"elapsed": 0.0,
"contexts": 699,
"sore_successes": 23,
"total_methods": 1424,
"methods_in_good": 247,
"coverage": 17.3,
"cross_package_contexts": 28,
"elapsed": 0.001,
"top_groups": [
{
"context": "('RETURN',)",
"label": "coarsened_k3",
"methods": 234,
"methods": 127,
"unique": 1,
"unique_ratio": 0.004,
"unique_ratio": 0.008,
"alphabet_size": 1,
"sore": "RETURN",
"sore_success": true
},
{
"context": "('IF', 'KW', 'KW')",
"context": "('@', 'app', 'route')",
"label": "coarsened_k3",
"methods": 34,
"unique": 29,
"unique_ratio": 0.853,
"alphabet_size": 73,
"methods": 44,
"unique": 44,
"unique_ratio": 1.0,
"alphabet_size": 257,
"sore": null,
"sore_success": false
},
{
"context": "('ATTR', 'ATTR', 'route')",
"label": "coarsened_k3",
"methods": 34,
"unique": 31,
"unique_ratio": 0.912,
"alphabet_size": 74,
"sore": null,
"sore_success": false
},
{
"context": "('RETURN', 'render_template', 'render_template')",
"label": "coarsened_k3",
"methods": 33,
"unique": 2,
"unique_ratio": 0.061,
"alphabet_size": 3,
"sore": null,
"sore_success": false
},
{
"context": "('append', 'append')",
"label": "coarsened_k3",
"methods": 33,
"unique": 1,
"unique_ratio": 0.03,
"alphabet_size": 1,
"sore": "(append)+",
"sore_success": true
},
{
"context": "('RETURN', 'isinstance', 'isinstance')",
"label": "coarsened_k3",
"methods": 32,
"unique": 2,
"unique_ratio": 0.062,
"alphabet_size": 6,
"unique": 10,
"unique_ratio": 0.312,
"alphabet_size": 21,
"sore": null,
"sore_success": false
},
{
"context": "('ATTR', 'ATTR', 'FUN')",
"context": "('bp', 'flask', 'Blueprint')",
"label": "coarsened_k3",
"methods": 31,
"unique": 28,
"unique_ratio": 0.903,
"alphabet_size": 92,
"unique": 29,
"unique_ratio": 0.935,
"alphabet_size": 134,
"sore": null,
"sore_success": false
},
{
"context": "('ATTR', 'route', 'route')",
"context": "('RETURN', 'flask', 'request')",
"label": "coarsened_k3",
"methods": 24,
"unique": 22,
"unique_ratio": 0.917,
"alphabet_size": 103,
"methods": 25,
"unique": 8,
"unique_ratio": 0.32,
"alphabet_size": 12,
"sore": null,
"sore_success": false
},
{
"context": "('EXCEPTION',)",
"context": "('RETURN', 'flask', 'render_template')",
"label": "coarsened_k3",
"methods": 21,
"methods": 25,
"unique": 4,
"unique_ratio": 0.16,
"alphabet_size": 8,
"sore": null,
"sore_success": false
},
{
"context": "('RETURN', 's')",
"label": "coarsened_k3",
"methods": 23,
"unique": 1,
"unique_ratio": 0.048,
"alphabet_size": 1,
"sore": "EXCEPTION",
"unique_ratio": 0.043,
"alphabet_size": 2,
"sore": "RETURN.s",
"sore_success": true
},
{
"context": "('Blueprint', 'Blueprint', 'ATTR')",
"context": "('app', 'flask', 'Flask')",
"label": "coarsened_k3",
"methods": 21,
"unique": 20,
"unique_ratio": 0.952,
"alphabet_size": 76,
"methods": 18,
"unique": 18,
"unique_ratio": 1.0,
"alphabet_size": 111,
"sore": null,
"sore_success": false
},
{
"context": "('flask', 'abort', 'abort')",
"label": "coarsened_k3",
"methods": 16,
"unique": 1,
"unique_ratio": 0.062,
"alphabet_size": 2,
"sore": "flask.(abort)+",
"sore_success": true
},
{
"context": "('isinstance', 'isinstance', 'isinstance')",
"label": "coarsened_k3",
"methods": 16,
"unique": 13,
"unique_ratio": 0.812,
"alphabet_size": 26,
"sore": null,
"sore_success": false
}
],
"cross_pkg_examples": [
{
"context": "('RETURN',)",
"packages": 9
},
{
"context": "('RETURN', 'render_template', 'render_template')",
"packages": 6
"packages": 5
},
{
"context": "('get', 'get', 'get')",
"context": "('RETURN',)",
"packages": 4
},
{
"context": "('IF', 'KW', 'RETURN')",
"packages": 4
"context": "('RETURN', 'app', 'test_client')",
"packages": 3
},
{
"context": "('get', 'get', 'IF')",
"packages": 4
"context": "('app', 'Flask', 'Flask')",
"packages": 3
},
{
"context": "('IF', 'KW', 'KW')",
"packages": 4
"context": "('app', 'app_context', 'app_context')",
"packages": 3
},
{
"context": "('IF', 'isinstance', 'isinstance')",
"packages": 4
},
{
"context": "('Flask', 'Flask', 'from_mapping')",
"packages": 3
},
{
"context": "('RETURN', 'test_client', 'test_client')",
"context": "('self', 'app', 'app')",
"packages": 3
},
{
"context": "('RETURN', 'get', 'get')",
"context": "('EXCEPTION', 'NotImplementedError', 'NotImplementedError')",
"packages": 3
},
{
"context": "('RETURN', 'isinstance', 'isinstance')",
"packages": 3
},
{
"context": "('kwargs', 'setdefault', 'setdefault')",
"packages": 3
}
]

View file

@ -1,7 +1,7 @@
{
"name": "RAGSAK",
"raw": {
"seq_count": 1594,
"seq_count": 1609,
"alphabet_size": 1724,
"alphabet_sample": [
"",
@ -38,7 +38,7 @@
"k1": {
"contexts": 510,
"sore_successes": 39,
"total_methods": 1594,
"total_methods": 1609,
"methods_in_good": 125,
"coverage": 7.8,
"cross_package_contexts": 145,
@ -74,6 +74,16 @@
"sore": null,
"sore_success": false
},
{
"context": "('_eps',)",
"label": "raw_k1",
"methods": 31,
"unique": 1,
"unique_ratio": 0.032,
"alphabet_size": 0,
"sore": null,
"sore_success": false
},
{
"context": "('mockk',)",
"label": "raw_k1",
@ -133,16 +143,6 @@
"alphabet_size": 73,
"sore": null,
"sore_success": false
},
{
"context": "('parse',)",
"label": "raw_k1",
"methods": 18,
"unique": 18,
"unique_ratio": 1.0,
"alphabet_size": 49,
"sore": null,
"sore_success": false
}
],
"cross_pkg_examples": [
@ -150,6 +150,10 @@
"context": "('every',)",
"packages": 18
},
{
"context": "('_eps',)",
"packages": 18
},
{
"context": "('builder',)",
"packages": 16
@ -178,10 +182,6 @@
"context": "('isEmpty',)",
"packages": 9
},
{
"context": "('_eps',)",
"packages": 9
},
{
"context": "('debug',)",
"packages": 9
@ -191,9 +191,9 @@
"k2": {
"contexts": 918,
"sore_successes": 76,
"total_methods": 1594,
"total_methods": 1609,
"methods_in_good": 249,
"coverage": 15.6,
"coverage": 15.5,
"cross_package_contexts": 100,
"elapsed": 0.001,
"top_groups": [
@ -207,6 +207,16 @@
"sore": null,
"sore_success": false
},
{
"context": "('_eps',)",
"label": "raw_k2",
"methods": 31,
"unique": 1,
"unique_ratio": 0.032,
"alphabet_size": 0,
"sore": null,
"sore_success": false
},
{
"context": "('warn', 'status')",
"label": "raw_k2",
@ -217,16 +227,6 @@
"sore": "warn.status.body.ErrorResponse",
"sore_success": true
},
{
"context": "('_eps',)",
"label": "raw_k2",
"methods": 16,
"unique": 1,
"unique_ratio": 0.062,
"alphabet_size": 0,
"sore": null,
"sore_success": false
},
{
"context": "('VectorChunk', 'mapOf')",
"label": "raw_k2",
@ -300,12 +300,12 @@
],
"cross_pkg_examples": [
{
"context": "('listOf', 'listOf')",
"packages": 13
"context": "('_eps',)",
"packages": 18
},
{
"context": "('_eps',)",
"packages": 9
"context": "('listOf', 'listOf')",
"packages": 13
},
{
"context": "('trim', 'lowercase')",
@ -344,12 +344,22 @@
"k3": {
"contexts": 1066,
"sore_successes": 89,
"total_methods": 1594,
"total_methods": 1609,
"methods_in_good": 297,
"coverage": 18.6,
"coverage": 18.5,
"cross_package_contexts": 69,
"elapsed": 0.0,
"elapsed": 0.001,
"top_groups": [
{
"context": "('_eps',)",
"label": "raw_k3",
"methods": 31,
"unique": 1,
"unique_ratio": 0.032,
"alphabet_size": 0,
"sore": null,
"sore_success": false
},
{
"context": "('warn', 'status', 'body')",
"label": "raw_k3",
@ -360,16 +370,6 @@
"sore": "warn.status.body.ErrorResponse",
"sore_success": true
},
{
"context": "('_eps',)",
"label": "raw_k3",
"methods": 16,
"unique": 1,
"unique_ratio": 0.062,
"alphabet_size": 0,
"sore": null,
"sore_success": false
},
{
"context": "('VectorChunk', 'mapOf', 'mapOf')",
"label": "raw_k3",
@ -441,20 +441,20 @@
"sore_success": true
},
{
"context": "('assertEquals', 'of', 'assertFailsWith')",
"context": "('of',)",
"label": "raw_k3",
"methods": 7,
"unique": 3,
"unique_ratio": 0.429,
"alphabet_size": 3,
"sore": "assertEquals.(of.(assertFailsWith)?)+",
"unique": 1,
"unique_ratio": 0.143,
"alphabet_size": 1,
"sore": "of",
"sore_success": true
}
],
"cross_pkg_examples": [
{
"context": "('_eps',)",
"packages": 9
"packages": 18
},
{
"context": "('defaultCapabilityId',)",
@ -496,66 +496,76 @@
}
},
"coarsened": {
"seq_count": 1594,
"alphabet_size": 1728,
"seq_count": 1609,
"alphabet_size": 2468,
"alphabet_sample": [
"",
"\" }",
"\"Cann",
"\"Fail",
"\"k",
"\"una",
"(",
"(\"",
"()",
"(documen",
"(val scores: List<Double> = emptyList())",
")",
") && s3",
") return",
")) {",
",",
".con",
".end",
".jo",
".lin",
".mapInde",
".size).t",
".va",
"ATTR",
"Acti",
"AgentCapabilityDescriptor",
"AgentDecision",
"AgentExecutionContext",
"AndServerWebExchangeMatcher",
"Any",
"AssertionError",
"AssistantMessage",
"AtomicLong",
"AtomicReference",
"AuthController",
"BCryptPasswordEncoder",
"BatchId",
"BatchJobController",
"BatchJobListener"
": 0",
"==",
"> 5",
"?.na",
"?:",
"@",
"ABANDONED"
],
"k1": {
"contexts": 474,
"sore_successes": 33,
"total_methods": 1594,
"methods_in_good": 107,
"coverage": 6.7,
"cross_package_contexts": 128,
"contexts": 476,
"sore_successes": 16,
"total_methods": 1609,
"methods_in_good": 51,
"coverage": 3.2,
"cross_package_contexts": 123,
"elapsed": 0.0,
"top_groups": [
{
"context": "('IF',)",
"label": "coarsened_k1",
"methods": 104,
"unique": 98,
"unique_ratio": 0.942,
"alphabet_size": 463,
"sore": null,
"sore_success": false
},
{
"context": "('every',)",
"label": "coarsened_k1",
"methods": 102,
"unique": 93,
"unique_ratio": 0.912,
"alphabet_size": 232,
"unique": 95,
"unique_ratio": 0.931,
"alphabet_size": 304,
"sore": null,
"sore_success": false
},
{
"context": "('RETURN',)",
"label": "coarsened_k1",
"methods": 91,
"unique": 75,
"unique_ratio": 0.824,
"alphabet_size": 186,
"methods": 61,
"unique": 51,
"unique_ratio": 0.836,
"alphabet_size": 210,
"sore": null,
"sore_success": false
},
@ -565,27 +575,27 @@
"methods": 59,
"unique": 54,
"unique_ratio": 0.915,
"alphabet_size": 131,
"alphabet_size": 171,
"sore": null,
"sore_success": false
},
{
"context": "('listOf',)",
"label": "coarsened_k1",
"methods": 36,
"unique": 27,
"unique_ratio": 0.75,
"alphabet_size": 95,
"methods": 33,
"unique": 25,
"unique_ratio": 0.758,
"alphabet_size": 111,
"sore": null,
"sore_success": false
},
{
"context": "('mockk',)",
"label": "coarsened_k1",
"methods": 31,
"unique": 21,
"unique_ratio": 0.677,
"alphabet_size": 100,
"methods": 30,
"unique": 20,
"unique_ratio": 0.667,
"alphabet_size": 129,
"sore": null,
"sore_success": false
},
@ -595,55 +605,49 @@
"methods": 29,
"unique": 28,
"unique_ratio": 0.966,
"alphabet_size": 117,
"sore": null,
"sore_success": false
},
{
"context": "('trim',)",
"label": "coarsened_k1",
"methods": 26,
"unique": 23,
"unique_ratio": 0.885,
"alphabet_size": 57,
"sore": null,
"sore_success": false
},
{
"context": "('warn',)",
"label": "coarsened_k1",
"methods": 26,
"unique": 4,
"unique_ratio": 0.154,
"alphabet_size": 11,
"alphabet_size": 165,
"sore": null,
"sore_success": false
},
{
"context": "('builder',)",
"label": "coarsened_k1",
"methods": 24,
"methods": 23,
"unique": 23,
"unique_ratio": 0.958,
"alphabet_size": 126,
"unique_ratio": 1.0,
"alphabet_size": 164,
"sore": null,
"sore_success": false
},
{
"context": "('warn',)",
"label": "coarsened_k1",
"methods": 23,
"unique": 14,
"unique_ratio": 0.609,
"alphabet_size": 23,
"sore": null,
"sore_success": false
},
{
"context": "('info',)",
"label": "coarsened_k1",
"methods": 23,
"unique": 19,
"unique_ratio": 0.826,
"alphabet_size": 74,
"methods": 19,
"unique": 15,
"unique_ratio": 0.789,
"alphabet_size": 88,
"sore": null,
"sore_success": false
}
],
"cross_pkg_examples": [
{
"context": "('IF',)",
"packages": 34
},
{
"context": "('RETURN',)",
"packages": 36
"packages": 26
},
{
"context": "('every',)",
@ -657,70 +661,96 @@
"context": "('runTest',)",
"packages": 12
},
{
"context": "('listOf',)",
"packages": 12
},
{
"context": "('info',)",
"packages": 11
},
{
"context": "('mockk',)",
"packages": 11
},
{
"context": "('trim',)",
"context": "('listOf',)",
"packages": 11
},
{
"context": "('info',)",
"packages": 10
},
{
"context": "('isEmpty',)",
"packages": 9
"context": "('get',)",
"packages": 8
},
{
"context": "('debug',)",
"packages": 9
"packages": 8
}
]
},
"k2": {
"contexts": 883,
"sore_successes": 69,
"total_methods": 1594,
"methods_in_good": 225,
"coverage": 14.1,
"cross_package_contexts": 108,
"contexts": 782,
"sore_successes": 25,
"total_methods": 1609,
"methods_in_good": 82,
"coverage": 5.1,
"cross_package_contexts": 123,
"elapsed": 0.001,
"top_groups": [
{
"context": "('listOf', 'listOf')",
"label": "coarsened_k2",
"methods": 36,
"unique": 27,
"unique_ratio": 0.75,
"alphabet_size": 95,
"methods": 33,
"unique": 25,
"unique_ratio": 0.758,
"alphabet_size": 111,
"sore": null,
"sore_success": false
},
{
"context": "('warn', 'RETURN')",
"context": "('builder', 'builder')",
"label": "coarsened_k2",
"methods": 23,
"unique": 2,
"unique_ratio": 0.087,
"alphabet_size": 7,
"unique": 23,
"unique_ratio": 1.0,
"alphabet_size": 164,
"sore": null,
"sore_success": false
},
{
"context": "('RETURN',)",
"context": "('warn', 'warn')",
"label": "coarsened_k2",
"methods": 13,
"unique": 1,
"unique_ratio": 0.077,
"alphabet_size": 1,
"sore": "RETURN",
"sore_success": true
"methods": 23,
"unique": 14,
"unique_ratio": 0.609,
"alphabet_size": 23,
"sore": null,
"sore_success": false
},
{
"context": "('info', 'info')",
"label": "coarsened_k2",
"methods": 19,
"unique": 15,
"unique_ratio": 0.789,
"alphabet_size": 88,
"sore": null,
"sore_success": false
},
{
"context": "('parse', 'parse')",
"label": "coarsened_k2",
"methods": 18,
"unique": 18,
"unique_ratio": 1.0,
"alphabet_size": 70,
"sore": null,
"sore_success": false
},
{
"context": "('trim', 'trim')",
"label": "coarsened_k2",
"methods": 15,
"unique": 15,
"unique_ratio": 1.0,
"alphabet_size": 54,
"sore": null,
"sore_success": false
},
{
"context": "('VectorChunk', 'mapOf')",
@ -728,7 +758,7 @@
"methods": 13,
"unique": 11,
"unique_ratio": 0.846,
"alphabet_size": 42,
"alphabet_size": 57,
"sore": null,
"sore_success": false
},
@ -738,7 +768,17 @@
"methods": 13,
"unique": 5,
"unique_ratio": 0.385,
"alphabet_size": 13,
"alphabet_size": 19,
"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
},
@ -748,122 +788,72 @@
"methods": 13,
"unique": 13,
"unique_ratio": 1.0,
"alphabet_size": 16,
"sore": null,
"sore_success": false
},
{
"context": "('isEmpty', 'RETURN')",
"label": "coarsened_k2",
"methods": 12,
"unique": 12,
"unique_ratio": 1.0,
"alphabet_size": 59,
"sore": null,
"sore_success": false
},
{
"context": "('mockk',)",
"label": "coarsened_k2",
"methods": 11,
"unique": 1,
"unique_ratio": 0.091,
"alphabet_size": 1,
"sore": "mockk",
"sore_success": true
},
{
"context": "('filesIn', 'assertTrue')",
"label": "coarsened_k2",
"methods": 11,
"unique": 5,
"unique_ratio": 0.455,
"alphabet_size": 4,
"sore": null,
"sore_success": false
},
{
"context": "('RETURN', 'RETURN')",
"label": "coarsened_k2",
"methods": 10,
"unique": 10,
"unique_ratio": 1.0,
"alphabet_size": 15,
"alphabet_size": 28,
"sore": null,
"sore_success": false
}
],
"cross_pkg_examples": [
{
"context": "('builder', 'builder')",
"packages": 15
},
{
"context": "('listOf', 'listOf')",
"packages": 12
"packages": 11
},
{
"context": "('isEmpty', 'RETURN')",
"packages": 9
"context": "('info', 'info')",
"packages": 10
},
{
"context": "('RETURN',)",
"packages": 9
"context": "('IF', 'isEmpty')",
"packages": 8
},
{
"context": "('RETURN', 'RETURN')",
"context": "('IF', 'RETURN')",
"packages": 8
},
{
"context": "('get', 'get')",
"packages": 8
},
{
"context": "('debug', 'debug')",
"packages": 8
},
{
"context": "('trim', 'trim')",
"packages": 7
},
{
"context": "('trim', 'lowercase')",
"packages": 5
"context": "('IF', 'isNullOrBlank')",
"packages": 6
},
{
"context": "('mutableListOf', 'mutableListOf')",
"packages": 5
},
{
"context": "('defaultCapabilityId',)",
"packages": 4
},
{
"context": "('every', 'defaultCapabilityId')",
"packages": 4
},
{
"context": "('clearAllMocks',)",
"packages": 4
},
{
"context": "('VectorChunk', 'mapOf')",
"packages": 4
"context": "('run', 'run')",
"packages": 6
}
]
},
"k3": {
"contexts": 1062,
"sore_successes": 82,
"total_methods": 1594,
"methods_in_good": 292,
"coverage": 18.3,
"cross_package_contexts": 74,
"elapsed": 0.0,
"contexts": 992,
"sore_successes": 29,
"total_methods": 1609,
"methods_in_good": 97,
"coverage": 6.0,
"cross_package_contexts": 87,
"elapsed": 0.001,
"top_groups": [
{
"context": "('warn', 'RETURN', 'status')",
"context": "('warn', 'warn', 'message')",
"label": "coarsened_k3",
"methods": 22,
"unique": 1,
"unique_ratio": 0.045,
"alphabet_size": 5,
"sore": "warn.RETURN.status.body.ErrorResponse",
"sore_success": true
},
{
"context": "('RETURN',)",
"label": "coarsened_k3",
"methods": 13,
"unique": 1,
"unique_ratio": 0.077,
"alphabet_size": 1,
"sore": "RETURN",
"sore_success": true
"methods": 20,
"unique": 11,
"unique_ratio": 0.55,
"alphabet_size": 13,
"sore": null,
"sore_success": false
},
{
"context": "('VectorChunk', 'mapOf', 'mapOf')",
@ -871,19 +861,29 @@
"methods": 13,
"unique": 11,
"unique_ratio": 0.846,
"alphabet_size": 42,
"alphabet_size": 57,
"sore": null,
"sore_success": false
},
{
"context": "('ery {', 'stKnowledgeBases()', 'gRequest(m')",
"context": "('ery {', 'stKnowledgeBases()', 'stKnowledgeBases()')",
"label": "coarsened_k3",
"methods": 12,
"unique": 4,
"unique_ratio": 0.333,
"alphabet_size": 11,
"sore": "ery {.stKnowledgeBases().gRequest(m.(ckKnowledgeBase(re.ertEquals(Kn.\"k|eckKnowledgeBase(r.(sertEquals(K.(\"|(sertEquals(t|sertNull(o)))",
"sore_success": true
"methods": 13,
"unique": 5,
"unique_ratio": 0.385,
"alphabet_size": 19,
"sore": null,
"sore_success": false
},
{
"context": "('productionClasses', 'filter', 'filter')",
"label": "coarsened_k3",
"methods": 13,
"unique": 13,
"unique_ratio": 1.0,
"alphabet_size": 28,
"sore": null,
"sore_success": false
},
{
"context": "('listOf', 'listOf', 'productionFiles')",
@ -891,7 +891,17 @@
"methods": 12,
"unique": 6,
"unique_ratio": 0.5,
"alphabet_size": 9,
"alphabet_size": 13,
"sore": null,
"sore_success": false
},
{
"context": "('IF', 'isEmpty', 'isEmpty')",
"label": "coarsened_k3",
"methods": 11,
"unique": 11,
"unique_ratio": 1.0,
"alphabet_size": 69,
"sore": null,
"sore_success": false
},
@ -906,53 +916,51 @@
"sore_success": true
},
{
"context": "('parseStorageUri', 'RETURN', 'RETURN')",
"context": "('filesIn', 'assertTrue', 'assertTrue')",
"label": "coarsened_k3",
"methods": 8,
"methods": 11,
"unique": 5,
"unique_ratio": 0.625,
"alphabet_size": 14,
"unique_ratio": 0.455,
"alphabet_size": 5,
"sore": null,
"sore_success": false
},
{
"context": "('File', 'writeBytes', 'byteArrayOf')",
"context": "('IF', 'isNullOrBlank', 'isNullOrBlank')",
"label": "coarsened_k3",
"methods": 8,
"methods": 9,
"unique": 7,
"unique_ratio": 0.875,
"alphabet_size": 25,
"unique_ratio": 0.778,
"alphabet_size": 49,
"sore": null,
"sore_success": false
},
{
"context": "('runTest', 'ChatResponse', 'emptyList')",
"context": "('parseStorageUri', 'value', 'RETURN')",
"label": "coarsened_k3",
"methods": 7,
"unique": 7,
"unique_ratio": 1.0,
"alphabet_size": 33,
"methods": 9,
"unique": 6,
"unique_ratio": 0.667,
"alphabet_size": 20,
"sore": null,
"sore_success": false
},
{
"context": "('filesIn', 'assertTrue', 'hasImport')",
"label": "coarsened_k3",
"methods": 7,
"unique": 2,
"unique_ratio": 0.286,
"alphabet_size": 3,
"sore": "filesIn.assertTrue.(hasImport)+",
"sore_success": true
}
],
"cross_pkg_examples": [
{
"context": "('RETURN',)",
"packages": 9
"context": "('IF', 'isEmpty', 'isEmpty')",
"packages": 8
},
{
"context": "('defaultCapabilityId',)",
"context": "('IF', 'isNullOrBlank', 'isNullOrBlank')",
"packages": 6
},
{
"context": "('IF', 'isBlank', 'isBlank')",
"packages": 5
},
{
"context": "('every', 'defaultCapabilityId', 'defaultCapabilityId')",
"packages": 4
},
{
@ -972,19 +980,11 @@
"packages": 4
},
{
"context": "('get',)",
"context": "('get', 'get')",
"packages": 4
},
{
"context": "('registerProperties',)",
"packages": 4
},
{
"context": "('assumeTrue', 'isDockerAvailable', 'start')",
"packages": 4
},
{
"context": "('listOf', 'listOf', 'forEach')",
"context": "('registerProperties', 'registerProperties')",
"packages": 4
}
]