or run

npx @tessl/cli init
Log in

Version

Files

docs

index.md
tile.json

rubric.jsonevals/scenario-8/

{
  "context": "Evaluates whether the solution relies on the punycode UCS-2 helpers to convert between JavaScript strings and arrays of Unicode code points while preserving surrogate edge cases, as required by the spec.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Use decode",
      "description": "`toCodePoints` delegates string-to-code-point conversion to `punycode.ucs2.decode` (or an equivalent import) rather than custom parsing loops.",
      "max_score": 25
    },
    {
      "name": "Lone surrogates",
      "description": "Decoding keeps unmatched surrogate halves intact by relying on `punycode.ucs2.decode` output without filtering or substitution.",
      "max_score": 20
    },
    {
      "name": "Use encode",
      "description": "`fromCodePoints` reconstructs text with `punycode.ucs2.encode`, handling astral pairs through the library instead of manual `String.fromCharCode`/`fromCodePoint` logic.",
      "max_score": 25
    },
    {
      "name": "No mutation",
      "description": "Encoding avoids mutating the provided code point array (no `splice`/`shift`/in-place writes) when passing data to `punycode.ucs2.encode`, preserving inputs as required.",
      "max_score": 15
    },
    {
      "name": "Proper import",
      "description": "Solution imports and uses the `punycode` dependency (e.g., `import { ucs2 } from \"punycode\"` or `const { ucs2 } = require(\"punycode\")`) instead of reimplementing UCS-2 conversion.",
      "max_score": 15
    }
  ]
}