{
  "title": "ชุดตรวจคำตอบสูตรพื้นฐาน 10 กลุ่ม",
  "date": "2026-09-26",
  "kind": "synthetic-learning-examples",
  "note": "ข้อมูลสังเคราะห์สำหรับตรวจเลขและหน่วย ไม่ใช่ผลทดลองบินจริง; tolerances เป็นเกณฑ์ตรวจเลข ไม่ใช่ขีดจำกัดการบิน",
  "fixtures": [
    {"id":"units-capacity","family":"F01","input":{"mAh":5000},"expected":[5],"units":["Ah"],"tolerance":1e-10},
    {"id":"units-angle","family":"F01","input":{"degrees":90},"expected":[1.5707963267948966],"units":["rad"],"tolerance":1e-10},
    {"id":"units-energy","family":"F01","input":{"Wh":111},"expected":[399600],"units":["J"],"tolerance":1e-6},
    {"id":"cg-three-axis","family":"F04","input":{"massKg":[2,0.5],"positionsM":[[0,0,0],[0.2,-0.1,0.06]]},"expected":[0.04,-0.02,0.012],"units":["m","m","m"],"tolerance":1e-10},
    {"id":"energy-time","family":"F05","input":{"V":22.2,"Ah":5,"usablePercent":80,"W":300},"expected":[111,88.8,17.76],"units":["Wh nominal","Wh usable","min"],"tolerance":1e-10},
    {"id":"energy-log","family":"F05","input":{"segments":[[22,10,60],[21,12,120]],"columns":["V","A","s"]},"expected":[12.066666666666666,241.33333333333334],"units":["Wh","W"],"tolerance":1e-9},
    {"id":"detection-metrics","family":"F17","input":{"TP":8,"FP":2,"FN":4},"expected":[0.8,0.6666666666666666,0.7272727272727273],"units":["precision","recall","F1"],"tolerance":1e-10},
    {"id":"iou","family":"F17","input":{"areaA":100,"areaB":100,"intersection":60},"expected":[0.42857142857142855],"units":["IoU"],"tolerance":1e-10},
    {"id":"latency-summary","family":"F18","input":{"milliseconds":[31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,80],"percentileMethod":"nearest-rank"},"expected":[40.5,49],"units":["median ms","p95 ms"],"tolerance":1e-10},
    {"id":"throughput","family":"F18","input":{"completedFrames":300,"seconds":10,"serialLatencyMs":50},"expected":[30,20],"units":["observed frames/s","serial frames/s"],"tolerance":1e-10},
    {"id":"split-counts","family":"F19","input":{"train":70,"validation":10,"test":20},"expected":[70,10,20],"units":["train %","validation %","test %"],"tolerance":1e-10},
    {"id":"split-leakage","family":"F19","input":{"trainGroups":["F1","F2","F3"],"validationGroups":["F4"],"testGroups":["F5","F6","F3"]},"expected":[1],"units":["shared groups train/test"],"tolerance":1e-10},
    {"id":"mapping-geometry","family":"F20","input":{"H":60,"Smm":13.2,"fmm":8.8,"widthPx":5472,"heightPx":3648,"sidePercent":70,"frontPercent":80,"speed":5,"exposure":0.001},"expected":[0.01644736842105263,90,60,27,12,2.4,0.304],"units":["m/px","m width","m height","m spacing","m distance","s interval","px blur"],"tolerance":1e-9},
    {"id":"mapping-crop","family":"F20","input":{"H":60,"effectiveSmm":6.6,"fmm":8.8,"widthPx":2736},"expected":[0.01644736842105263,45],"units":["m/px","m width"],"tolerance":1e-9},
    {"id":"residual-shift","family":"F21","input":{"residualsM":[0.06,0]},"expected":[0.03,0.04242640687119285],"units":["m bias","m RMSE"],"tolerance":1e-10},
    {"id":"change-independent","family":"F23","input":{"sigma1":0.03,"sigma2":0.04,"delta":0.06},"expected":[0.05,0.098],"units":["m sigma delta","m LoD95"],"tolerance":1e-10},
    {"id":"change-correlated","family":"F23","input":{"sigma1":0.03,"sigma2":0.04,"rho":0.5},"expected":[0.0006,0.03605551275463989,0.07066880499909418],"units":["m² covariance","m sigma delta","m LoD95"],"tolerance":1e-10},
    {"id":"sample-ci","family":"F37","input":{"values":[20,22,24],"tCriticalTable":4.303},"expected":[22,2,1.1547005383792517,17.0313235833542,26.9686764166458],"units":["min mean","min SD","min SE","min lower CI95","min upper CI95"],"tolerance":1e-9}
  ]
}
