跳至內容
Astera Technology

草擬指示時保留要原樣顯示的佔位符

核對佔位字樣恰好保留一次,不代填虛構個案編號。

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

訂明本例驗收任務

假設草擬指示須把指定佔位文字原樣出現恰好一次。按大小寫及字元逐一數假設草稿;HTML 轉義文字或虛構完成編號都不是同一字面值。檢查器不代填任何資料。

  1. 保留原字面目標
  2. 數完全相同且不重疊的出現
  3. 核對恰好一次

目標空白屬無效驗收定義。

使用已填個案

原創假設輸入及確切答案鍵
個案已提供輸入預期結構化結果判斷及原因
所需字樣保留一次{"literal":"{CASE_ID}","draft":"Open case {CASE_ID} after review."}{"count":1,"retainedOnce":true}草稿顯示佔位字樣,沒有編造個案值。
佔位字樣被虛構編號取代{"literal":"{CASE_ID}","draft":"Open case C99 after review."}{"count":0,"retainedOnce":false}C99 沒有保留指定原字樣。
佔位字樣重複兩次{"literal":"{CASE_ID}","draft":"{CASE_ID} follows {CASE_ID}."}{"count":2,"retainedOnce":false}有保留也不夠;本要求須恰好一次。
下載可編輯 CSV ↓

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

查看參考答案

{"count":2,"retainedOnce":false}。有保留也不夠;本要求須恰好一次。

執行完整本機驗算

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

function evaluate(x){
 if(!x.literal.length)return {error:'empty-literal'};let count=0,pos=0;
 while((pos=x.draft.indexOf(x.literal,pos))!==-1){count++;pos+=x.literal.length;}
 return {count,retainedOnce:count===1};
}

const cases = [
  {
    "id": "literal-once",
    "input": {
      "literal": "{CASE_ID}",
      "draft": "Open case {CASE_ID} after review."
    },
    "expected": {
      "count": 1,
      "retainedOnce": true
    }
  },
  {
    "id": "invented-value",
    "input": {
      "literal": "{CASE_ID}",
      "draft": "Open case C99 after review."
    },
    "expected": {
      "count": 0,
      "retainedOnce": false
    }
  },
  {
    "id": "repeated-placeholder",
    "input": {
      "literal": "{CASE_ID}",
      "draft": "{CASE_ID} follows {CASE_ID}."
    },
    "expected": {
      "count": 2,
      "retainedOnce": 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)}));
下載可執行例子 ↓

草稿、目標字樣及次數要求一起保存。字面核對不評其餘意思,也未批准對外發送。

相關資源