{"id":"a45764d8-7774-47ab-928e-4826ad8ef965","kind":"codai.resolve.attestation.v0","repo_url":"https://github.com/dragoscv/resolve-smoke-jslib","base_commit":"c2ab7ca6bd40e2c1c6fa150047ddda7d34789183","patch":"diff --git a/src/stats.js b/src/stats.js\nindex 4dc9f4a..9f306b7 100644\n--- a/src/stats.js\n+++ b/src/stats.js\n@@ -4,8 +4,9 @@ export function median(values) {\n   }\n   const sorted = [...values].sort((a, b) => a - b);\n   const mid = Math.floor(sorted.length / 2);\n-  // BUG: even-length arrays should average the two middle elements.\n-  return sorted[mid];\n+  return sorted.length % 2 === 0\n+    ? (sorted[mid - 1] + sorted[mid]) / 2\n+    : sorted[mid];\n }\n \n export function mean(values) {\n","repro_test":{"path":"codai_repro_test.test.mjs","content":"import { describe, it, expect } from 'vitest';\nimport { median } from './src/stats.js';\n\ndescribe('median', () => {\n  it('averages the two middle elements for even-length arrays', () => {\n    expect(median([1, 2, 3, 4])).toBe(2.5);\n  });\n\n  it('returns the middle element for odd-length arrays', () => {\n    expect(median([1, 2, 3])).toBe(2);\n  });\n});"},"test_command":"npx vitest run --reporter=dot codai_repro_test.test.mjs","regression_command":"npx vitest run --reporter=dot --exclude \"**/codai_repro_test.test.mjs\"","test_output_before":"\n\u001b[1m\u001b[30m\u001b[46m RUN \u001b[49m\u001b[39m\u001b[22m \u001b[36mv4.1.10 \u001b[39m\u001b[90m/tmp/swe-exec-bkmPbD/repo\u001b[39m\n\n\u001b[33m\u001b[39m\u001b[31mx\u001b[39m\u001b[33m\u001b[39m\u001b[32m·\u001b[39m\n\n\u001b[31m⎯⎯⎯⎯⎯⎯⎯\u001b[39m\u001b[1m\u001b[41m Failed Tests 1 \u001b[49m\u001b[22m\u001b[31m⎯⎯⎯⎯⎯⎯⎯\u001b[39m\n\n\u001b[41m\u001b[1m FAIL \u001b[22m\u001b[49m codai_repro_test.test.mjs\u001b[2m > \u001b[22mmedian\u001b[2m > \u001b[22maverages the two middle elements for even-length arrays\n\u001b[31m\u001b[1mAssertionError\u001b[22m: expected 3 to be 2.5 // Object.is equality\u001b[39m\n\n\u001b[32m- Expected\u001b[39m\n\u001b[31m+ Received\u001b[39m\n\n\u001b[32m- 2.5\u001b[39m\n\u001b[31m+ 3\u001b[39m\n\n\u001b[36m \u001b[2m❯\u001b[22m codai_repro_test.test.mjs:\u001b[2m6:34\u001b[22m\u001b[39m\n    \u001b[90m  4|\u001b[39m \u001b[34mdescribe\u001b[39m(\u001b[32m'median'\u001b[39m\u001b[33m,\u001b[39m () \u001b[33m=>\u001b[39m {\n    \u001b[90m  5|\u001b[39m   \u001b[34mit\u001b[39m(\u001b[32m'averages the two middle elements for even-length arrays'\u001b[39m\u001b[33m,\u001b[39m () \u001b[33m=>\u001b[39m {\n    \u001b[90m  6|\u001b[39m     \u001b[34mexpect\u001b[39m(\u001b[34mmedian\u001b[39m([\u001b[34m1\u001b[39m\u001b[33m,\u001b[39m \u001b[34m2\u001b[39m\u001b[33m,\u001b[39m \u001b[34m3\u001b[39m\u001b[33m,\u001b[39m \u001b[34m4\u001b[39m]))\u001b[33m.\u001b[39m\u001b[34mtoBe\u001b[39m(\u001b[34m2.5\u001b[39m)\u001b[33m;\u001b[39m\n    \u001b[90m   |\u001b[39m                                  \u001b[31m^\u001b[39m\n    \u001b[90m  7|\u001b[39m   })\u001b[33m;\u001b[39m\n    \u001b[90m  8|\u001b[39m\n\n\u001b[31m\u001b[2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯\u001b[22m\u001b[39m\n\n\n\u001b[2m Test Files \u001b[22m \u001b[1m\u001b[31m1 failed\u001b[39m\u001b[22m\u001b[90m (1)\u001b[39m\n\u001b[2m      Tests \u001b[22m \u001b[1m\u001b[31m1 failed\u001b[39m\u001b[22m\u001b[2m | \u001b[22m\u001b[1m\u001b[32m1 passed\u001b[39m\u001b[22m\u001b[90m (2)\u001b[39m\n\u001b[2m   Start at \u001b[22m 06:00:41\n\u001b[2m   Duration \u001b[22m 253ms\u001b[2m (transform 27ms, setup 0ms, import 47ms, tests 18ms, environment 0ms)\u001b[22m\n\n","test_output_after":"\n\u001b[1m\u001b[30m\u001b[46m RUN \u001b[49m\u001b[39m\u001b[22m \u001b[36mv4.1.10 \u001b[39m\u001b[90m/tmp/swe-exec-bNBFNB/repo\u001b[39m\n\n\u001b[33m\u001b[39m\u001b[32m·\u001b[39m\u001b[33m\u001b[39m\u001b[32m·\u001b[39m\n\n\u001b[2m Test Files \u001b[22m \u001b[1m\u001b[32m1 passed\u001b[39m\u001b[22m\u001b[90m (1)\u001b[39m\n\u001b[2m      Tests \u001b[22m \u001b[1m\u001b[32m2 passed\u001b[39m\u001b[22m\u001b[90m (2)\u001b[39m\n\u001b[2m   Start at \u001b[22m 06:02:19\n\u001b[2m   Duration \u001b[22m 268ms\u001b[2m (transform 27ms, setup 0ms, import 50ms, tests 9ms, environment 0ms)\u001b[22m\n\n","regression_output":"\n\u001b[1m\u001b[30m\u001b[46m RUN \u001b[49m\u001b[39m\u001b[22m \u001b[36mv4.1.10 \u001b[39m\u001b[90m/tmp/swe-exec-bNBFNB/repo\u001b[39m\n\n\u001b[33m\u001b[39m\u001b[32m·\u001b[39m\n\n\u001b[2m Test Files \u001b[22m \u001b[1m\u001b[32m1 passed\u001b[39m\u001b[22m\u001b[90m (1)\u001b[39m\n\u001b[2m      Tests \u001b[22m \u001b[1m\u001b[32m1 passed\u001b[39m\u001b[22m\u001b[90m (1)\u001b[39m\n\u001b[2m   Start at \u001b[22m 06:02:20\n\u001b[2m   Duration \u001b[22m 256ms\u001b[2m (transform 38ms, setup 0ms, import 59ms, tests 7ms, environment 0ms)\u001b[22m\n\n","runner_image_digest":"2be0fb04","started_at":"2026-08-06T05:59:39.964Z","verified_at":"2026-08-06T06:02:49.596Z"}