or run

npx @tessl/cli init
Log in

Version

Files

docs

function-utilities.mdindex.mdlist-operations.mdmathematical-operations.mdobject-operations.mdstring-processing.md
tile.json

rubric.jsonevals/scenario-8/

{
  "context": "Evaluates whether the order-processing solution leans on prelude-ls list helpers instead of manual iteration. Checks focus on using the package's mapping, compaction, filtering, partitioning, and selection APIs to satisfy the spec behaviors.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Summary map",
      "description": "Builds order summary objects via prelude-ls `map` (or `each` with a derived accumulator) instead of native loops or manual indexing.",
      "max_score": 25
    },
    {
      "name": "Falsy compaction",
      "description": "Drops null/undefined or other falsy entries in `removeInvalidEntries` using prelude-ls `compact` (or `filter` with the package's truthy predicate) rather than hand-rolled checks.",
      "max_score": 20
    },
    {
      "name": "Field filter",
      "description": "Screens out orders missing required fields using prelude-ls `filter` or `reject` with a predicate instead of conditional pushes or imperative mutation.",
      "max_score": 20
    },
    {
      "name": "Threshold partition",
      "description": "Splits qualifying vs. remaining orders with prelude-ls `partition` (or equivalent `filter`/`reject` pair) rather than multiple passes or manual array slicing.",
      "max_score": 20
    },
    {
      "name": "Pending find",
      "description": "Locates the first pending order for a city via prelude-ls `find` (not a hand-written search loop) and returns `undefined` when absent.",
      "max_score": 15
    }
  ]
}