跳至內容
Astera Technology

各評分項分開列,必要項失敗不能平均掉

必要項全齊且通過才可通過,額外項不能抵銷失敗。

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

訂明本例驗收任務

假設草稿準則每項是布林結果,另列必要項。必要項全部存在且通過才可通過;其餘項保留但不能抵銷,欠必要項便未確認。本例不採平均分或加權折衷。

  1. 各項標籤分開保留
  2. 只用明訂必要項
  3. 必要依據全齊且通過才通過

必要項欠或格式錯,先補準則依據。

使用已填個案

原創假設輸入及確切答案鍵
個案已提供輸入預期結構化結果判斷及原因
語句好不能抵必要格式失敗{"required":["content","format"],"outcomes":{"content":true,"format":false,"fluency":true}}{"missing":[],"failed":["format"],"invalid":[],"status":"fail"}兩項通過也不能抵必要 format 失敗。
必要通過、額外項失敗{"required":["content"],"outcomes":{"content":true,"style":false}}{"missing":[],"failed":[],"invalid":[],"status":"pass"}style 留作記錄,此準則沒有列必要。
欠必要項結果{"required":["content","format"],"outcomes":{"content":true}}{"missing":["format"],"failed":[],"invalid":[],"status":"unresolved"}欠 format 不靜默當通過或失敗。
下載可編輯 CSV ↓

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

查看參考答案

{"missing":["format"],"failed":[],"invalid":[],"status":"unresolved"}。欠 format 不靜默當通過或失敗。

執行完整本機驗算

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

function evaluate(x){
 const missing=x.required.filter(k=>!Object.hasOwn(x.outcomes,k)),failed=x.required.filter(k=>Object.hasOwn(x.outcomes,k)&&x.outcomes[k]===false),invalid=x.required.filter(k=>Object.hasOwn(x.outcomes,k)&&typeof x.outcomes[k]!=='boolean');
 return {missing,failed,invalid,status:missing.length+invalid.length?'unresolved':failed.length?'fail':'pass'};
}

const cases = [
  {
    "id": "fluency-no-compensation",
    "input": {
      "required": [
        "content",
        "format"
      ],
      "outcomes": {
        "content": true,
        "format": false,
        "fluency": true
      }
    },
    "expected": {
      "missing": [],
      "failed": [
        "format"
      ],
      "invalid": [],
      "status": "fail"
    }
  },
  {
    "id": "required-pass-optional-fail",
    "input": {
      "required": [
        "content"
      ],
      "outcomes": {
        "content": true,
        "style": false
      }
    },
    "expected": {
      "missing": [],
      "failed": [],
      "invalid": [],
      "status": "pass"
    }
  },
  {
    "id": "missing-required",
    "input": {
      "required": [
        "content",
        "format"
      ],
      "outcomes": {
        "content": true
      }
    },
    "expected": {
      "missing": [
        "format"
      ],
      "failed": [],
      "invalid": [],
      "status": "unresolved"
    }
  }
];
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)}));
下載可執行例子 ↓

每版驗收準則保留必要項清單。改阻擋項是改規則,不是只改分數顯示。

相關資源