{
 "about": "Property-based tests and fuzzing of Kolaboro's open scoring rules. Generated by the open-source repository CI; every number below is counted by the test run itself.",
 "generated": "2026-11-03T21:03:30Z",
 "commit": "f8f0c3bd1239ac61fba1df64f696f0ce7bc54bac",
 "run_url": null,
 "runner": "local run of the repository CI steps (the repository is not public yet)",
 "files_tested": {
  "open/scoring.py": "637ecf506205a663a5aefbf897a01f3f8e11926ca0b65c25d94c4a693e891ade",
  "p/whatif.js": "5ed80da0b6a0439aa1bd54c554c5b6f7f61d4f8497da7dea9a0875a7324456e4",
  "transparency-index/ti-core.js": "95001b921401b98a8fbcf8654f8a6555aaabe4658f382e1558ac80872c2dbaba"
 },
 "engines": [
  "Hypothesis 6.170.14, Python 3.13.18",
  "fast-check 3.23.2, Node v22.23.4"
 ],
 "seed_javascript": 590915807,
 "cases_total": 54000,
 "properties_total": 22,
 "properties_passed": 22,
 "known_issues": [],
 "passed": true,
 "mutation": {
  "mutants": [
   {
    "mutant": "permit counts when only claimed",
    "caught": true,
    "by": [
     "publish_monotone",
     "per_check_exact",
     "matches_reference"
    ]
   },
   {
    "mutant": "escrow counts when false",
    "caught": true,
    "by": [
     "publish_monotone",
     "per_check_exact",
     "matches_reference"
    ]
   },
   {
    "mutant": "flags ignored by tier",
    "caught": true,
    "by": [
     "flags_never_raise",
     "matches_reference"
    ]
   },
   {
    "mutant": "clear threshold off by one",
    "caught": true,
    "by": [
     "matches_reference"
    ]
   },
   {
    "mutant": "developer level counts as confirmed",
    "caught": true,
    "by": [
     "matches_reference"
    ]
   },
   {
    "mutant": "guarantee report raises score",
    "caught": true,
    "by": [
     "guarantee_report_never_raises"
    ]
   },
   {
    "mutant": "overdue counts the current month",
    "caught": true,
    "by": [
     "overdue_reference"
    ]
   },
   {
    "mutant": "index weights swapped",
    "caught": true,
    "by": [
     "index_reference"
    ]
   }
  ],
  "caught": 8,
  "total": 8,
  "examples_per_property": 300
 },
 "properties": [
  {
   "suite": "python",
   "id": "bounds",
   "property": "score and confirmed score stay between 0 and 6, tier is one of caution, mixed, clear",
   "cases": 2000,
   "passed": true,
   "known_issue": null,
   "mismatches": null,
   "counterexample": null
  },
  {
   "suite": "python",
   "id": "verified_never_lowers",
   "property": "confirming a check (registry or independent source) never lowers the score, the confirmed score or the tier, and adds at most one confirmed point",
   "cases": 2000,
   "passed": true,
   "known_issue": null,
   "mismatches": null,
   "counterexample": null
  },
  {
   "suite": "python",
   "id": "publish_monotone",
   "property": "publishing one more check never lowers the score or the tier; crossing into public adds exactly one point",
   "cases": 2000,
   "passed": true,
   "known_issue": null,
   "mismatches": null,
   "counterexample": null
  },
  {
   "suite": "python",
   "id": "per_check_exact",
   "property": "the score is exactly the number of public checks, one point per check",
   "cases": 2000,
   "passed": true,
   "known_issue": null,
   "mismatches": null,
   "counterexample": null
  },
  {
   "suite": "python",
   "id": "flags_never_raise",
   "property": "a problem in public reports never raises the tier and never changes the score; any flag means caution",
   "cases": 2000,
   "passed": true,
   "known_issue": null,
   "mismatches": null,
   "counterexample": null
  },
  {
   "suite": "python",
   "id": "tier_monotone",
   "property": "with the same reports and research depth, a higher score never gives a lower tier",
   "cases": 2000,
   "passed": true,
   "known_issue": null,
   "mismatches": null,
   "counterexample": null
  },
  {
   "suite": "python",
   "id": "determinism",
   "property": "same input, same output: repeated calls, reordered keys and copies give identical results, and inputs are not modified",
   "cases": 2000,
   "passed": true,
   "known_issue": null,
   "mismatches": null,
   "counterexample": null
  },
  {
   "suite": "python",
   "id": "level_total",
   "property": "every researcher note maps to exactly one known verification level",
   "cases": 2000,
   "passed": true,
   "known_issue": null,
   "mismatches": null,
   "counterexample": null
  },
  {
   "suite": "python",
   "id": "guarantee_report_never_raises",
   "property": "a public report of guaranteed returns can only remove the no-guaranteed-returns point, never add one",
   "cases": 2000,
   "passed": true,
   "known_issue": null,
   "mismatches": null,
   "counterexample": null
  },
  {
   "suite": "python",
   "id": "overdue_monotone",
   "property": "months overdue is never negative, is empty for completed projects, and never decreases as time passes",
   "cases": 2000,
   "passed": true,
   "known_issue": null,
   "mismatches": null,
   "counterexample": null
  },
  {
   "suite": "python",
   "id": "index_bounds_monotone",
   "property": "the market transparency index is between 0 and 100, needs 3 or more projects, and never falls when one project publishes or confirms more",
   "cases": 2000,
   "passed": true,
   "known_issue": null,
   "mismatches": null,
   "counterexample": null
  },
  {
   "suite": "python",
   "id": "matches_reference",
   "property": "score, confirmed score and tier equal an independent restatement of the published rules (only registry and independent sources confirm)",
   "cases": 2000,
   "passed": true,
   "known_issue": null,
   "mismatches": null,
   "counterexample": null
  },
  {
   "suite": "python",
   "id": "overdue_reference",
   "property": "months overdue equals whole months after the end of the promised period (year: December, quarter: its last month), for projects not completed",
   "cases": 2000,
   "passed": true,
   "known_issue": null,
   "mismatches": null,
   "counterexample": null
  },
  {
   "suite": "python",
   "id": "index_reference",
   "property": "the transparency index equals 60% average score/6 + 30% average confirmed/6 + 10% share without public problems, within 0.05 rounding",
   "cases": 2000,
   "passed": true,
   "known_issue": null,
   "mismatches": null,
   "counterexample": null
  },
  {
   "suite": "javascript",
   "id": "bounds",
   "property": "score and confirmed score stay between 0 and 6, tier is one of caution, mixed, clear",
   "cases": 2000,
   "passed": true,
   "known_issue": null,
   "mismatches": null,
   "counterexample": null
  },
  {
   "suite": "javascript",
   "id": "verified_never_lowers",
   "property": "confirming a check never lowers the score, the confirmed score or the tier, and adds at most one confirmed point",
   "cases": 2000,
   "passed": true,
   "known_issue": null,
   "mismatches": null,
   "counterexample": null
  },
  {
   "suite": "javascript",
   "id": "publish_monotone",
   "property": "publishing one more check never lowers the score or the tier; crossing into public adds exactly one point",
   "cases": 2000,
   "passed": true,
   "known_issue": null,
   "mismatches": null,
   "counterexample": null
  },
  {
   "suite": "javascript",
   "id": "flags_never_raise",
   "property": "a problem in public reports never raises the tier and never changes the score",
   "cases": 2000,
   "passed": true,
   "known_issue": null,
   "mismatches": null,
   "counterexample": null
  },
  {
   "suite": "javascript",
   "id": "determinism",
   "property": "same input, same output; reordered keys give identical results; inputs are not modified",
   "cases": 2000,
   "passed": true,
   "known_issue": null,
   "mismatches": null,
   "counterexample": null
  },
  {
   "suite": "javascript",
   "id": "whatif_consistent",
   "property": "every \"what would change this score\" answer is consistent: publishing one check adds exactly one point, confirming one adds at most one confirmed point",
   "cases": 2000,
   "passed": true,
   "known_issue": null,
   "mismatches": null,
   "counterexample": null
  },
  {
   "suite": "javascript",
   "id": "js_python_agree",
   "property": "JavaScript (p/whatif.js) and Python (open/scoring.py) give the same score, confirmed score, tier and verification levels on random inputs",
   "cases": 10000,
   "passed": true,
   "known_issue": null,
   "mismatches": null,
   "counterexample": null
  },
  {
   "suite": "javascript",
   "id": "index_js_python_agree",
   "property": "the market transparency index in JavaScript (ti-core.js) and Python (open/scoring.py) agree to one decimal",
   "cases": 4000,
   "passed": true,
   "known_issue": null,
   "mismatches": 0,
   "counterexample": null
  }
 ]
}