or run

npx @tessl/cli init
Log in

Version

Files

tile.json

rubric.jsonevals/scenario-2/

{
  "context": "Evaluates whether the solution uses Plotly.js trace array management APIs to insert, remove, reorder, and stream data in-place without full redraws. The focus is on correct function choices, index handling (including negative indices), and use of windowed streaming.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Single init",
      "description": "Initial render uses Plotly.newPlot (or Plotly.react once) and subsequent operations reuse the existing graph div instead of rebuilding for each change.",
      "max_score": 10
    },
    {
      "name": "Indexed add",
      "description": "Adds new traces with Plotly.addTraces using an explicit insertion index (including 0) so existing traces keep their axis links and ordering.",
      "max_score": 20
    },
    {
      "name": "Negative delete",
      "description": "Removes traces via Plotly.deleteTraces and demonstrates support for negative indices to drop the last trace without disturbing others.",
      "max_score": 15
    },
    {
      "name": "Reorder move",
      "description": "Reorders traces using Plotly.moveTraces to move the last trace to the first position while preserving data and names.",
      "max_score": 20
    },
    {
      "name": "Windowed stream",
      "description": "Streams new x/y points into targeted traces with Plotly.extendTraces (or Plotly.prependTraces when appropriate) and applies the maxPoints argument to enforce sliding-window history.",
      "max_score": 25
    },
    {
      "name": "Targeted updates",
      "description": "Supplies per-trace index arrays to add/delete/move/stream calls so only intended traces are changed, avoiding bulk restyle or redraw paths.",
      "max_score": 10
    }
  ]
}