or run

tessl search
Log in

Version

Files

tile.json

rubric.jsonevals/scenario-3/

{
  "context": "This evaluation assesses how effectively the engineer uses the mixin-deep package to handle sophisticated type detection when merging configuration objects. The focus is on correctly utilizing mixin-deep's capabilities to distinguish between mergeable objects and non-mergeable types like arrays, null values, primitives, and functions.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Uses mixin-deep import",
      "description": "Code imports or requires the mixin-deep package (e.g., `const mixinDeep = require('mixin-deep')` or `import mixinDeep from 'mixin-deep'`)",
      "max_score": 10
    },
    {
      "name": "Delegates to mixinDeep",
      "description": "The mergeConfig function delegates the actual merging logic to mixinDeep by calling it with the target and source objects",
      "max_score": 20
    },
    {
      "name": "Nested object merging",
      "description": "Correctly merges nested object properties by leveraging mixinDeep's deep merging capability, allowing properties at all nesting levels to be combined",
      "max_score": 20
    },
    {
      "name": "Array preservation",
      "description": "Arrays are correctly handled as atomic values (not merged element-by-element) by relying on mixinDeep's type detection, which treats arrays as non-mergeable and replaces them entirely",
      "max_score": 15
    },
    {
      "name": "Null handling",
      "description": "Null values are correctly handled as non-mergeable types that replace existing values, utilizing mixinDeep's type detection for null",
      "max_score": 10
    },
    {
      "name": "Function handling",
      "description": "Functions are correctly preserved during merging by leveraging mixinDeep's treatment of functions as mergeable object types",
      "max_score": 10
    },
    {
      "name": "Primitive replacement",
      "description": "Primitive values (strings, numbers, booleans) correctly replace existing values (including objects) by utilizing mixinDeep's type detection for primitives",
      "max_score": 10
    },
    {
      "name": "Multiple source support",
      "description": "Correctly passes multiple source objects to mixinDeep, allowing the spread operator or array of sources to be handled properly",
      "max_score": 5
    }
  ]
}