跳至內容
Astera Technology

指示對象不清楚時列出候選

沒有已觀察指向便列全部候選,不按最近位置自行選版本。

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

訂明本例驗收任務

假設介面列數個版本編號,同事把「那個版本」標成已觀察指向編號;沒有指向用 null。null 時列全部不同可見候選,仍未解決,不因某項最後出現便選它。指向不在可見清單則無效。

  1. 保留可見版本集合
  2. 讀已觀察指向或 null
  3. 列已解決選擇或完整候選

指向無效不能改選最近可見項目。

使用已填個案

原創假設輸入及確切答案鍵
個案已提供輸入預期結構化結果判斷及原因
兩個版本但沒有指向{"visible":["A","B"],"pointer":null}{"candidates":["A","B"],"resolved":false,"selected":null}兩個都保留,沒有按最近位置定案的規則。
看到指向 B{"visible":["A","B"],"pointer":"B"}{"candidates":["A","B"],"resolved":true,"selected":"B"}已觀察指向 B;A 仍留在候選依據。
指向未顯示版本{"visible":["A","B"],"pointer":"C"}{"error":"pointer-not-visible"}清單沒有 C,須覆核標註。
下載可編輯 CSV ↓

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

查看參考答案

{"error":"pointer-not-visible"}。清單沒有 C,須覆核標註。

執行完整本機驗算

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

function evaluate(x){
 const candidates=[...new Set(x.visible)].sort();if(x.pointer===null)return {candidates,resolved:false,selected:null};
 return candidates.includes(x.pointer)?{candidates,resolved:true,selected:x.pointer}:{error:'pointer-not-visible'};
}

const cases = [
  {
    "id": "no-pointer",
    "input": {
      "visible": [
        "A",
        "B"
      ],
      "pointer": null
    },
    "expected": {
      "candidates": [
        "A",
        "B"
      ],
      "resolved": false,
      "selected": null
    }
  },
  {
    "id": "explicit-pointer",
    "input": {
      "visible": [
        "A",
        "B"
      ],
      "pointer": "B"
    },
    "expected": {
      "candidates": [
        "A",
        "B"
      ],
      "resolved": true,
      "selected": "B"
    }
  },
  {
    "id": "invisible-pointer",
    "input": {
      "visible": [
        "A",
        "B"
      ],
      "pointer": "C"
    },
    "expected": {
      "error": "pointer-not-visible"
    }
  }
];
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)}));
下載可執行例子 ↓

原指示連同對象標註保存。解析器使用已觀察資料;確認指向也不代表可寫入或發布。

相關資源