or run

npx @tessl/cli init
Log in

Version

Files

docs

index.md
tile.json

rubric.jsonevals/scenario-6/

{
  "context": "This evaluation assesses how effectively the engineer uses lodash's chaining API and related utility methods to solve a data transformation problem. The focus is on proper use of chain creation, intermediate transformation methods, and value extraction.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Chain initialization",
      "description": "Uses _.chain() or _(data) to create a wrapper object that enables method chaining",
      "max_score": 20
    },
    {
      "name": "Filter invalid logs",
      "description": "Uses .filter() or .reject() within the chain to remove logs with status 'invalid'",
      "max_score": 10
    },
    {
      "name": "Group by userId",
      "description": "Uses .groupBy() to organize logs by the userId field",
      "max_score": 15
    },
    {
      "name": "Transform grouped data",
      "description": "Uses .map() or .mapValues() to transform each user's logs into statistics (activityCount and totalPoints)",
      "max_score": 20
    },
    {
      "name": "Calculate totals",
      "description": "Uses .sumBy() or manual calculation with .reduce() to compute totalPoints for each user",
      "max_score": 10
    },
    {
      "name": "Sort by points",
      "description": "Uses .orderBy() or .sortBy() to sort users by totalPoints in descending order",
      "max_score": 10
    },
    {
      "name": "Limit results",
      "description": "Uses .take() or .slice() to return only the top 5 users",
      "max_score": 10
    },
    {
      "name": "Value extraction",
      "description": "Uses .value() at the end of the chain to extract the final result from the wrapper",
      "max_score": 5
    }
  ]
}