跳至內容
Astera Technology

工具名稱近似也不能當成同一工具

擬用名稱須為本機清單自身項目,近似拼法不能當已登記工具。

下載完整個案資料及參考答案 ↓

訂明本例驗收任務

假設助手只能提議本機清單內完全相同的工具名稱。此例只核對步驟名稱、列未登記項,沒有執行工具。名稱分大小寫,物件繼承名稱也不是工具;近似拼法不會自動更正。

  1. 讀擬用操作名稱
  2. 與清單自身名稱逐一比
  3. 保留未登記名稱,不執行

未登記名稱便不通過,不猜替代工具。

使用已填個案

原創假設輸入及確切答案鍵
個案已提供輸入預期結構化結果判斷及原因
名稱近似{"registry":{"read_case":"read-only"},"plan":["read_cases"]}{"unknown":["read_cases"],"valid":false}多了 s 便是未登記工具,不是已登記別名。
已登記確切名稱{"registry":{"read_case":"read-only"},"plan":["read_case"]}{"unknown":[],"valid":true}確切在清單內,只通過名稱核對。
繼承物件名稱{"registry":{"read_case":"read-only"},"plan":["toString"]}{"unknown":["toString"],"valid":false}JavaScript 繼承屬性不是清單自身項目。
下載可編輯 CSV ↓

逐步處理 inherited-name 個案,須得到甚麼結果?原因是甚麼?

查看參考答案

{"unknown":["toString"],"valid":false}。JavaScript 繼承屬性不是清單自身項目。

執行完整本機驗算

另存為 .mjs,以 Node.js 執行;只驗提供的個案
import assert from 'node:assert/strict';

function evaluate(x){const unknown=x.plan.filter(name=>!Object.hasOwn(x.registry,name));return {unknown,valid:unknown.length===0};}

const cases = [
  {
    "id": "near-spelling",
    "input": {
      "registry": {
        "read_case": "read-only"
      },
      "plan": [
        "read_cases"
      ]
    },
    "expected": {
      "unknown": [
        "read_cases"
      ],
      "valid": false
    }
  },
  {
    "id": "exact-tool",
    "input": {
      "registry": {
        "read_case": "read-only"
      },
      "plan": [
        "read_case"
      ]
    },
    "expected": {
      "unknown": [],
      "valid": true
    }
  },
  {
    "id": "inherited-name",
    "input": {
      "registry": {
        "read_case": "read-only"
      },
      "plan": [
        "toString"
      ]
    },
    "expected": {
      "unknown": [
        "toString"
      ],
      "valid": false
    }
  }
];
for (const c of cases) assert.deepEqual(evaluate(c.input), c.expected, c.id);
console.log(JSON.stringify({checked:cases.length,caseIds:cases.map(c=>c.id)}));
下載可執行例子 ↓

清單版本及擬用名稱跟個案保存。名稱有效不代表參數有效、有讀取權或已操作成功。

相關資源