{
 "about": {
  "method": "degenerate spread and separation (z-prime, viability normalisations, screening, plate diagnostics, growth window, Gompertz, GR metrics, qPCR Welch interval, two-way ANOVA, simple effects, mixed model, survival tests, slow binding, thermal residual diagnostic)",
  "recordedOn": "2026-10-20",
  "script": "pipeline/assay-analyser/oracles/degenerate_reference.py",
  "scriptSha256": "5b1ce463190a995038112457a7bc9fcab1eb410f0e1a3c6e8a1c08a85f13d49d",
  "origin": "Self-constructed values: the sixteen cases of the CSO memo of 20 October 2026 (docs/board/memos/2026-10-20-cso-audit-fixes.md, item 1 (c)), plus one guard case (9c)",
  "rule": "tau(n, M) = 2·n·ε·M with M the largest |value| in the comparison (or the largest operand a derived value came from); no spread: max − min ≤ tau(n, M); no separation: |mean(a) − mean(b)| ≤ tau(na + nb, M); not above: d ≤ tau(n, M); zero residual: RSS ≤ 1e-20·Σy². Here every refusal is decided in exact decimal arithmetic instead, which the engines' bound must reproduce.",
  "tolerances": {
   "statuses, codes, reasons, rows, wells, n, df of tests, calls": "exact",
   "Z′, means, SDs, signal window, SSMD (relative; an exact 0 within 1e-12 absolute)": "1e-9 relative",
   "percents (normalisers, screening), median, MAD": "1e-9 relative",
   "robust z": "1e-12 relative",
   "growth mu and doubling time": "1e-9 relative; blank 1e-12 relative",
   "GR per-well values, k, GRmax, GR_AOC": "1e-9 absolute",
   "qPCR differences, standard errors and bounds": "1e-9 absolute (log2 units); df and t 1e-9 relative; fold bounds 1e-9 relative",
   "two-way sums of squares, F, means, differences, SE": "1e-9 relative; p 1e-8",
   "survival chi-squared, expected counts, hazard ratio and bounds": "1e-9 relative; p 1e-8 relative",
   "thermal r1 reference": "1e-12 absolute"
  },
  "crossCheck": "R was not available where this set was recorded (no Rscript, 20 October 2026). The memo names R survival for the survival cases (as the 0.11.0 set) and R for the two-way case: the log-rank cases are computed in exact fractions here (chi-squared 5 on disjoint risk sets is exact; p from scipy), and the two-way sums of squares by numpy least squares, asserted within 1e-9 relative of exact-fraction normal equations. The CSO decides whether an R run is still required."
 },
 "oracle": {
  "engine": "Python fractions (every refusal, the exact log-rank, the two-way cross-check); numpy and scipy (every number of a calculating case)",
  "python": "3.13.16",
  "numpy": "2.5.4",
  "scipy": "1.18.1"
 },
 "cases": [
  {
   "id": "1a",
   "memoCase": 1,
   "engine": "z-prime",
   "about": "Z′ with three readings of 0.1 against two: refused, not a value",
   "inputs": {
    "positive": [
     "0.1",
     "0.1",
     "0.1"
    ],
    "negative": [
     "0.1",
     "0.1"
    ]
   },
   "decision": {
    "separation": "0"
   },
   "expected": {
    "ok": false,
    "reason": "no-separation"
   }
  },
  {
   "id": "1b",
   "memoCase": 1,
   "engine": "z-prime",
   "about": "Z′ with the same three decimals in the other order: refused, not a value",
   "inputs": {
    "positive": [
     "0.1",
     "0.2",
     "0.3"
    ],
    "negative": [
     "0.3",
     "0.2",
     "0.1"
    ]
   },
   "decision": {
    "separation": "0"
   },
   "expected": {
    "ok": false,
    "reason": "no-separation"
   }
  },
  {
   "id": "1c",
   "memoCase": 1,
   "engine": "z-prime",
   "about": "Z′ with equal decimal means; the stored doubles' exact means differ by 1.4e-17: refused, not a value",
   "inputs": {
    "positive": [
     "0.2",
     "0.2"
    ],
    "negative": [
     "0.1",
     "0.3"
    ]
   },
   "decision": {
    "separation": "0"
   },
   "expected": {
    "ok": false,
    "reason": "no-separation"
   }
  },
  {
   "id": "2-percent-a",
   "memoCase": 2,
   "engine": "normaliser",
   "about": "percent with three readings of 0.1 against two: refused",
   "inputs": {
    "mode": "percent",
    "positive": [
     "0.1",
     "0.1",
     "0.1"
    ],
    "negative": [
     "0.1",
     "0.1"
    ],
    "y": [
     "0.15",
     "0.25"
    ]
   },
   "decision": {
    "separation": "0"
   },
   "expected": {
    "ok": false,
    "reason": "no-separation"
   }
  },
  {
   "id": "2-percent-b",
   "memoCase": 2,
   "engine": "normaliser",
   "about": "percent with the same three decimals in the other order: refused",
   "inputs": {
    "mode": "percent",
    "positive": [
     "0.1",
     "0.2",
     "0.3"
    ],
    "negative": [
     "0.3",
     "0.2",
     "0.1"
    ],
    "y": [
     "0.15",
     "0.25"
    ]
   },
   "decision": {
    "separation": "0"
   },
   "expected": {
    "ok": false,
    "reason": "no-separation"
   }
  },
  {
   "id": "2-percent-c",
   "memoCase": 2,
   "engine": "normaliser",
   "about": "percent with equal decimal means; the stored doubles' exact means differ by 1.4e-17: refused",
   "inputs": {
    "mode": "percent",
    "positive": [
     "0.2",
     "0.2"
    ],
    "negative": [
     "0.1",
     "0.3"
    ],
    "y": [
     "0.15",
     "0.25"
    ]
   },
   "decision": {
    "separation": "0"
   },
   "expected": {
    "ok": false,
    "reason": "no-separation"
   }
  },
  {
   "id": "2-percent-inhibition-a",
   "memoCase": 2,
   "engine": "normaliser",
   "about": "percent-inhibition with three readings of 0.1 against two: refused",
   "inputs": {
    "mode": "percent-inhibition",
    "positive": [
     "0.1",
     "0.1",
     "0.1"
    ],
    "negative": [
     "0.1",
     "0.1"
    ],
    "y": [
     "0.15",
     "0.25"
    ]
   },
   "decision": {
    "separation": "0"
   },
   "expected": {
    "ok": false,
    "reason": "no-separation"
   }
  },
  {
   "id": "2-percent-inhibition-b",
   "memoCase": 2,
   "engine": "normaliser",
   "about": "percent-inhibition with the same three decimals in the other order: refused",
   "inputs": {
    "mode": "percent-inhibition",
    "positive": [
     "0.1",
     "0.2",
     "0.3"
    ],
    "negative": [
     "0.3",
     "0.2",
     "0.1"
    ],
    "y": [
     "0.15",
     "0.25"
    ]
   },
   "decision": {
    "separation": "0"
   },
   "expected": {
    "ok": false,
    "reason": "no-separation"
   }
  },
  {
   "id": "2-percent-inhibition-c",
   "memoCase": 2,
   "engine": "normaliser",
   "about": "percent-inhibition with equal decimal means; the stored doubles' exact means differ by 1.4e-17: refused",
   "inputs": {
    "mode": "percent-inhibition",
    "positive": [
     "0.2",
     "0.2"
    ],
    "negative": [
     "0.1",
     "0.3"
    ],
    "y": [
     "0.15",
     "0.25"
    ]
   },
   "decision": {
    "separation": "0"
   },
   "expected": {
    "ok": false,
    "reason": "no-separation"
   }
  },
  {
   "id": "2-percent-control",
   "memoCase": 2,
   "engine": "normaliser",
   "about": "Percent of control with positives 0.1, 0.2 and −0.3: their mean is exactly 0, refused",
   "inputs": {
    "mode": "percent-control",
    "positive": [
     "0.1",
     "0.2",
     "-0.3"
    ],
    "negative": [],
    "y": [
     "0.15",
     "0.25"
    ]
   },
   "decision": {
    "meanPositive": "0"
   },
   "expected": {
    "ok": false,
    "reason": "no-separation"
   }
  },
  {
   "id": "2-vehicle-over-blank",
   "memoCase": 2,
   "engine": "normaliser",
   "about": "Background-subtracted percent with vehicle 0.1 × 3 and blank 0.1 × 2: the vehicle is not above the blank, refused",
   "inputs": {
    "mode": "percent-vehicle-bg",
    "positive": [
     "0.1",
     "0.1",
     "0.1"
    ],
    "negative": [],
    "blank": [
     "0.1",
     "0.1"
    ],
    "y": [
     "0.15",
     "0.25"
    ]
   },
   "decision": {
    "vehicleMinusBlank": "0"
   },
   "expected": {
    "ok": false,
    "reason": "vehicle-not-above-blank"
   }
  },
  {
   "id": "3a",
   "memoCase": 3,
   "engine": "screening",
   "about": "A screening plate with three readings of 0.1 against two and 16 samples: percent inhibition, Z′ and calls withheld on the plate",
   "inputs": {
    "wells": [
     {
      "well": "A1",
      "row": 0,
      "col": 0,
      "role": "positive",
      "value": "0.1"
     },
     {
      "well": "B1",
      "row": 1,
      "col": 0,
      "role": "positive",
      "value": "0.1"
     },
     {
      "well": "C1",
      "row": 2,
      "col": 0,
      "role": "positive",
      "value": "0.1"
     },
     {
      "well": "A12",
      "row": 0,
      "col": 11,
      "role": "negative",
      "value": "0.1"
     },
     {
      "well": "B12",
      "row": 1,
      "col": 11,
      "role": "negative",
      "value": "0.1"
     },
     {
      "well": "B3",
      "row": 1,
      "col": 2,
      "role": "sample",
      "value": "0.11"
     },
     {
      "well": "B4",
      "row": 1,
      "col": 3,
      "role": "sample",
      "value": "0.12"
     },
     {
      "well": "B5",
      "row": 1,
      "col": 4,
      "role": "sample",
      "value": "0.13"
     },
     {
      "well": "B6",
      "row": 1,
      "col": 5,
      "role": "sample",
      "value": "0.14"
     },
     {
      "well": "B7",
      "row": 1,
      "col": 6,
      "role": "sample",
      "value": "0.15"
     },
     {
      "well": "B8",
      "row": 1,
      "col": 7,
      "role": "sample",
      "value": "0.16"
     },
     {
      "well": "B9",
      "row": 1,
      "col": 8,
      "role": "sample",
      "value": "0.17"
     },
     {
      "well": "B10",
      "row": 1,
      "col": 9,
      "role": "sample",
      "value": "0.18"
     },
     {
      "well": "C3",
      "row": 2,
      "col": 2,
      "role": "sample",
      "value": "0.19"
     },
     {
      "well": "C4",
      "row": 2,
      "col": 3,
      "role": "sample",
      "value": "0.20"
     },
     {
      "well": "C5",
      "row": 2,
      "col": 4,
      "role": "sample",
      "value": "0.21"
     },
     {
      "well": "C6",
      "row": 2,
      "col": 5,
      "role": "sample",
      "value": "0.22"
     },
     {
      "well": "C7",
      "row": 2,
      "col": 6,
      "role": "sample",
      "value": "0.23"
     },
     {
      "well": "C8",
      "row": 2,
      "col": 7,
      "role": "sample",
      "value": "0.24"
     },
     {
      "well": "C9",
      "row": 2,
      "col": 8,
      "role": "sample",
      "value": "0.25"
     },
     {
      "well": "C10",
      "row": 2,
      "col": 9,
      "role": "sample",
      "value": "0.26"
     }
    ],
    "settings": {
     "method": "percent",
     "threshold": "50"
    }
   },
   "decision": {
    "separation": "0"
   },
   "expected": {
    "withheld": "no-separation",
    "zWithheld": "plate",
    "median": null,
    "mad": null,
    "wells": [
     {
      "percent": null,
      "z": null,
      "call": null
     },
     {
      "percent": null,
      "z": null,
      "call": null
     },
     {
      "percent": null,
      "z": null,
      "call": null
     },
     {
      "percent": null,
      "z": null,
      "call": null
     },
     {
      "percent": null,
      "z": null,
      "call": null
     },
     {
      "percent": null,
      "z": null,
      "call": null
     },
     {
      "percent": null,
      "z": null,
      "call": null
     },
     {
      "percent": null,
      "z": null,
      "call": null
     },
     {
      "percent": null,
      "z": null,
      "call": null
     },
     {
      "percent": null,
      "z": null,
      "call": null
     },
     {
      "percent": null,
      "z": null,
      "call": null
     },
     {
      "percent": null,
      "z": null,
      "call": null
     },
     {
      "percent": null,
      "z": null,
      "call": null
     },
     {
      "percent": null,
      "z": null,
      "call": null
     },
     {
      "percent": null,
      "z": null,
      "call": null
     },
     {
      "percent": null,
      "z": null,
      "call": null
     }
    ]
   }
  },
  {
   "id": "3b",
   "memoCase": 3,
   "engine": "screening",
   "about": "A screening plate with the same three decimals in the other order and 16 samples: percent inhibition, Z′ and calls withheld on the plate",
   "inputs": {
    "wells": [
     {
      "well": "A1",
      "row": 0,
      "col": 0,
      "role": "positive",
      "value": "0.1"
     },
     {
      "well": "B1",
      "row": 1,
      "col": 0,
      "role": "positive",
      "value": "0.2"
     },
     {
      "well": "C1",
      "row": 2,
      "col": 0,
      "role": "positive",
      "value": "0.3"
     },
     {
      "well": "A12",
      "row": 0,
      "col": 11,
      "role": "negative",
      "value": "0.3"
     },
     {
      "well": "B12",
      "row": 1,
      "col": 11,
      "role": "negative",
      "value": "0.2"
     },
     {
      "well": "C12",
      "row": 2,
      "col": 11,
      "role": "negative",
      "value": "0.1"
     },
     {
      "well": "B3",
      "row": 1,
      "col": 2,
      "role": "sample",
      "value": "0.11"
     },
     {
      "well": "B4",
      "row": 1,
      "col": 3,
      "role": "sample",
      "value": "0.12"
     },
     {
      "well": "B5",
      "row": 1,
      "col": 4,
      "role": "sample",
      "value": "0.13"
     },
     {
      "well": "B6",
      "row": 1,
      "col": 5,
      "role": "sample",
      "value": "0.14"
     },
     {
      "well": "B7",
      "row": 1,
      "col": 6,
      "role": "sample",
      "value": "0.15"
     },
     {
      "well": "B8",
      "row": 1,
      "col": 7,
      "role": "sample",
      "value": "0.16"
     },
     {
      "well": "B9",
      "row": 1,
      "col": 8,
      "role": "sample",
      "value": "0.17"
     },
     {
      "well": "B10",
      "row": 1,
      "col": 9,
      "role": "sample",
      "value": "0.18"
     },
     {
      "well": "C3",
      "row": 2,
      "col": 2,
      "role": "sample",
      "value": "0.19"
     },
     {
      "well": "C4",
      "row": 2,
      "col": 3,
      "role": "sample",
      "value": "0.20"
     },
     {
      "well": "C5",
      "row": 2,
      "col": 4,
      "role": "sample",
      "value": "0.21"
     },
     {
      "well": "C6",
      "row": 2,
      "col": 5,
      "role": "sample",
      "value": "0.22"
     },
     {
      "well": "C7",
      "row": 2,
      "col": 6,
      "role": "sample",
      "value": "0.23"
     },
     {
      "well": "C8",
      "row": 2,
      "col": 7,
      "role": "sample",
      "value": "0.24"
     },
     {
      "well": "C9",
      "row": 2,
      "col": 8,
      "role": "sample",
      "value": "0.25"
     },
     {
      "well": "C10",
      "row": 2,
      "col": 9,
      "role": "sample",
      "value": "0.26"
     }
    ],
    "settings": {
     "method": "percent",
     "threshold": "50"
    }
   },
   "decision": {
    "separation": "0"
   },
   "expected": {
    "withheld": "no-separation",
    "zWithheld": "plate",
    "median": null,
    "mad": null,
    "wells": [
     {
      "percent": null,
      "z": null,
      "call": null
     },
     {
      "percent": null,
      "z": null,
      "call": null
     },
     {
      "percent": null,
      "z": null,
      "call": null
     },
     {
      "percent": null,
      "z": null,
      "call": null
     },
     {
      "percent": null,
      "z": null,
      "call": null
     },
     {
      "percent": null,
      "z": null,
      "call": null
     },
     {
      "percent": null,
      "z": null,
      "call": null
     },
     {
      "percent": null,
      "z": null,
      "call": null
     },
     {
      "percent": null,
      "z": null,
      "call": null
     },
     {
      "percent": null,
      "z": null,
      "call": null
     },
     {
      "percent": null,
      "z": null,
      "call": null
     },
     {
      "percent": null,
      "z": null,
      "call": null
     },
     {
      "percent": null,
      "z": null,
      "call": null
     },
     {
      "percent": null,
      "z": null,
      "call": null
     },
     {
      "percent": null,
      "z": null,
      "call": null
     },
     {
      "percent": null,
      "z": null,
      "call": null
     }
    ]
   }
  },
  {
   "id": "3c",
   "memoCase": 3,
   "engine": "screening",
   "about": "A screening plate with equal decimal means; the stored doubles' exact means differ by 1.4e-17 and 16 samples: percent inhibition, Z′ and calls withheld on the plate",
   "inputs": {
    "wells": [
     {
      "well": "A1",
      "row": 0,
      "col": 0,
      "role": "positive",
      "value": "0.2"
     },
     {
      "well": "B1",
      "row": 1,
      "col": 0,
      "role": "positive",
      "value": "0.2"
     },
     {
      "well": "A12",
      "row": 0,
      "col": 11,
      "role": "negative",
      "value": "0.1"
     },
     {
      "well": "B12",
      "row": 1,
      "col": 11,
      "role": "negative",
      "value": "0.3"
     },
     {
      "well": "B3",
      "row": 1,
      "col": 2,
      "role": "sample",
      "value": "0.11"
     },
     {
      "well": "B4",
      "row": 1,
      "col": 3,
      "role": "sample",
      "value": "0.12"
     },
     {
      "well": "B5",
      "row": 1,
      "col": 4,
      "role": "sample",
      "value": "0.13"
     },
     {
      "well": "B6",
      "row": 1,
      "col": 5,
      "role": "sample",
      "value": "0.14"
     },
     {
      "well": "B7",
      "row": 1,
      "col": 6,
      "role": "sample",
      "value": "0.15"
     },
     {
      "well": "B8",
      "row": 1,
      "col": 7,
      "role": "sample",
      "value": "0.16"
     },
     {
      "well": "B9",
      "row": 1,
      "col": 8,
      "role": "sample",
      "value": "0.17"
     },
     {
      "well": "B10",
      "row": 1,
      "col": 9,
      "role": "sample",
      "value": "0.18"
     },
     {
      "well": "C3",
      "row": 2,
      "col": 2,
      "role": "sample",
      "value": "0.19"
     },
     {
      "well": "C4",
      "row": 2,
      "col": 3,
      "role": "sample",
      "value": "0.20"
     },
     {
      "well": "C5",
      "row": 2,
      "col": 4,
      "role": "sample",
      "value": "0.21"
     },
     {
      "well": "C6",
      "row": 2,
      "col": 5,
      "role": "sample",
      "value": "0.22"
     },
     {
      "well": "C7",
      "row": 2,
      "col": 6,
      "role": "sample",
      "value": "0.23"
     },
     {
      "well": "C8",
      "row": 2,
      "col": 7,
      "role": "sample",
      "value": "0.24"
     },
     {
      "well": "C9",
      "row": 2,
      "col": 8,
      "role": "sample",
      "value": "0.25"
     },
     {
      "well": "C10",
      "row": 2,
      "col": 9,
      "role": "sample",
      "value": "0.26"
     }
    ],
    "settings": {
     "method": "percent",
     "threshold": "50"
    }
   },
   "decision": {
    "separation": "0"
   },
   "expected": {
    "withheld": "no-separation",
    "zWithheld": "plate",
    "median": null,
    "mad": null,
    "wells": [
     {
      "percent": null,
      "z": null,
      "call": null
     },
     {
      "percent": null,
      "z": null,
      "call": null
     },
     {
      "percent": null,
      "z": null,
      "call": null
     },
     {
      "percent": null,
      "z": null,
      "call": null
     },
     {
      "percent": null,
      "z": null,
      "call": null
     },
     {
      "percent": null,
      "z": null,
      "call": null
     },
     {
      "percent": null,
      "z": null,
      "call": null
     },
     {
      "percent": null,
      "z": null,
      "call": null
     },
     {
      "percent": null,
      "z": null,
      "call": null
     },
     {
      "percent": null,
      "z": null,
      "call": null
     },
     {
      "percent": null,
      "z": null,
      "call": null
     },
     {
      "percent": null,
      "z": null,
      "call": null
     },
     {
      "percent": null,
      "z": null,
      "call": null
     },
     {
      "percent": null,
      "z": null,
      "call": null
     },
     {
      "percent": null,
      "z": null,
      "call": null
     },
     {
      "percent": null,
      "z": null,
      "call": null
     }
    ]
   }
  },
  {
   "id": "3d",
   "memoCase": 3,
   "engine": "screening",
   "about": "Good controls and 16 identical samples: percent inhibition reported, the robust z withheld (no spread)",
   "inputs": {
    "wells": [
     {
      "well": "A1",
      "row": 0,
      "col": 0,
      "role": "positive",
      "value": "1.00"
     },
     {
      "well": "B1",
      "row": 1,
      "col": 0,
      "role": "positive",
      "value": "1.10"
     },
     {
      "well": "C1",
      "row": 2,
      "col": 0,
      "role": "positive",
      "value": "0.90"
     },
     {
      "well": "D1",
      "row": 3,
      "col": 0,
      "role": "positive",
      "value": "1.05"
     },
     {
      "well": "A12",
      "row": 0,
      "col": 11,
      "role": "negative",
      "value": "0.10"
     },
     {
      "well": "B12",
      "row": 1,
      "col": 11,
      "role": "negative",
      "value": "0.12"
     },
     {
      "well": "C12",
      "row": 2,
      "col": 11,
      "role": "negative",
      "value": "0.08"
     },
     {
      "well": "D12",
      "row": 3,
      "col": 11,
      "role": "negative",
      "value": "0.11"
     },
     {
      "well": "B3",
      "row": 1,
      "col": 2,
      "role": "sample",
      "value": "0.5"
     },
     {
      "well": "B4",
      "row": 1,
      "col": 3,
      "role": "sample",
      "value": "0.5"
     },
     {
      "well": "B5",
      "row": 1,
      "col": 4,
      "role": "sample",
      "value": "0.5"
     },
     {
      "well": "B6",
      "row": 1,
      "col": 5,
      "role": "sample",
      "value": "0.5"
     },
     {
      "well": "B7",
      "row": 1,
      "col": 6,
      "role": "sample",
      "value": "0.5"
     },
     {
      "well": "B8",
      "row": 1,
      "col": 7,
      "role": "sample",
      "value": "0.5"
     },
     {
      "well": "B9",
      "row": 1,
      "col": 8,
      "role": "sample",
      "value": "0.5"
     },
     {
      "well": "B10",
      "row": 1,
      "col": 9,
      "role": "sample",
      "value": "0.5"
     },
     {
      "well": "C3",
      "row": 2,
      "col": 2,
      "role": "sample",
      "value": "0.5"
     },
     {
      "well": "C4",
      "row": 2,
      "col": 3,
      "role": "sample",
      "value": "0.5"
     },
     {
      "well": "C5",
      "row": 2,
      "col": 4,
      "role": "sample",
      "value": "0.5"
     },
     {
      "well": "C6",
      "row": 2,
      "col": 5,
      "role": "sample",
      "value": "0.5"
     },
     {
      "well": "C7",
      "row": 2,
      "col": 6,
      "role": "sample",
      "value": "0.5"
     },
     {
      "well": "C8",
      "row": 2,
      "col": 7,
      "role": "sample",
      "value": "0.5"
     },
     {
      "well": "C9",
      "row": 2,
      "col": 8,
      "role": "sample",
      "value": "0.5"
     },
     {
      "well": "C10",
      "row": 2,
      "col": 9,
      "role": "sample",
      "value": "0.5"
     }
    ],
    "settings": {
     "method": "percent",
     "threshold": "50"
    }
   },
   "decision": {
    "separation": "91/100",
    "sampleSpread": "0"
   },
   "expected": {
    "withheld": null,
    "zWithheld": "no-spread",
    "median": 56.318681318681314,
    "mad": 0.0,
    "wells": [
     {
      "percent": 56.318681318681314,
      "z": null,
      "call": true
     },
     {
      "percent": 56.318681318681314,
      "z": null,
      "call": true
     },
     {
      "percent": 56.318681318681314,
      "z": null,
      "call": true
     },
     {
      "percent": 56.318681318681314,
      "z": null,
      "call": true
     },
     {
      "percent": 56.318681318681314,
      "z": null,
      "call": true
     },
     {
      "percent": 56.318681318681314,
      "z": null,
      "call": true
     },
     {
      "percent": 56.318681318681314,
      "z": null,
      "call": true
     },
     {
      "percent": 56.318681318681314,
      "z": null,
      "call": true
     },
     {
      "percent": 56.318681318681314,
      "z": null,
      "call": true
     },
     {
      "percent": 56.318681318681314,
      "z": null,
      "call": true
     },
     {
      "percent": 56.318681318681314,
      "z": null,
      "call": true
     },
     {
      "percent": 56.318681318681314,
      "z": null,
      "call": true
     },
     {
      "percent": 56.318681318681314,
      "z": null,
      "call": true
     },
     {
      "percent": 56.318681318681314,
      "z": null,
      "call": true
     },
     {
      "percent": 56.318681318681314,
      "z": null,
      "call": true
     },
     {
      "percent": 56.318681318681314,
      "z": null,
      "call": true
     }
    ]
   }
  },
  {
   "id": "4a",
   "memoCase": 4,
   "engine": "plate-diagnostics",
   "about": "Plate diagnostics with three readings of 0.1 against two; 16 samples of 0.1 against the negatives: Z withheld",
   "inputs": {
    "format": 96,
    "wells": [
     {
      "well": "A1",
      "row": 0,
      "col": 0,
      "role": "positive",
      "value": "0.1"
     },
     {
      "well": "B1",
      "row": 1,
      "col": 0,
      "role": "positive",
      "value": "0.1"
     },
     {
      "well": "C1",
      "row": 2,
      "col": 0,
      "role": "positive",
      "value": "0.1"
     },
     {
      "well": "A12",
      "row": 0,
      "col": 11,
      "role": "negative",
      "value": "0.1"
     },
     {
      "well": "B12",
      "row": 1,
      "col": 11,
      "role": "negative",
      "value": "0.1"
     },
     {
      "well": "B3",
      "row": 1,
      "col": 2,
      "role": "sample",
      "value": "0.1",
      "concentration": "1e-6"
     },
     {
      "well": "B4",
      "row": 1,
      "col": 3,
      "role": "sample",
      "value": "0.1",
      "concentration": "1e-6"
     },
     {
      "well": "B5",
      "row": 1,
      "col": 4,
      "role": "sample",
      "value": "0.1",
      "concentration": "1e-6"
     },
     {
      "well": "B6",
      "row": 1,
      "col": 5,
      "role": "sample",
      "value": "0.1",
      "concentration": "1e-6"
     },
     {
      "well": "B7",
      "row": 1,
      "col": 6,
      "role": "sample",
      "value": "0.1",
      "concentration": "1e-6"
     },
     {
      "well": "B8",
      "row": 1,
      "col": 7,
      "role": "sample",
      "value": "0.1",
      "concentration": "1e-6"
     },
     {
      "well": "B9",
      "row": 1,
      "col": 8,
      "role": "sample",
      "value": "0.1",
      "concentration": "1e-6"
     },
     {
      "well": "B10",
      "row": 1,
      "col": 9,
      "role": "sample",
      "value": "0.1",
      "concentration": "1e-6"
     },
     {
      "well": "C3",
      "row": 2,
      "col": 2,
      "role": "sample",
      "value": "0.1",
      "concentration": "1e-6"
     },
     {
      "well": "C4",
      "row": 2,
      "col": 3,
      "role": "sample",
      "value": "0.1",
      "concentration": "1e-6"
     },
     {
      "well": "C5",
      "row": 2,
      "col": 4,
      "role": "sample",
      "value": "0.1",
      "concentration": "1e-6"
     },
     {
      "well": "C6",
      "row": 2,
      "col": 5,
      "role": "sample",
      "value": "0.1",
      "concentration": "1e-6"
     },
     {
      "well": "C7",
      "row": 2,
      "col": 6,
      "role": "sample",
      "value": "0.1",
      "concentration": "1e-6"
     },
     {
      "well": "C8",
      "row": 2,
      "col": 7,
      "role": "sample",
      "value": "0.1",
      "concentration": "1e-6"
     },
     {
      "well": "C9",
      "row": 2,
      "col": 8,
      "role": "sample",
      "value": "0.1",
      "concentration": "1e-6"
     },
     {
      "well": "C10",
      "row": 2,
      "col": 9,
      "role": "sample",
      "value": "0.1",
      "concentration": "1e-6"
     }
    ]
   },
   "decision": {
    "separation": "0",
    "positiveSpread": "0",
    "negativeSpread": "0",
    "sampleSeparation": "0"
   },
   "expected": {
    "signalWindow": {
     "ok": false,
     "reason": "no-separation"
    },
    "ssmd": {
     "ok": false,
     "reason": "no-spread"
    },
    "z": {
     "ok": false,
     "reason": "no-separation"
    }
   }
  },
  {
   "id": "4b",
   "memoCase": 4,
   "engine": "plate-diagnostics",
   "about": "Plate diagnostics with the same three decimals in the other order",
   "inputs": {
    "format": 96,
    "wells": [
     {
      "well": "A1",
      "row": 0,
      "col": 0,
      "role": "positive",
      "value": "0.1"
     },
     {
      "well": "B1",
      "row": 1,
      "col": 0,
      "role": "positive",
      "value": "0.2"
     },
     {
      "well": "C1",
      "row": 2,
      "col": 0,
      "role": "positive",
      "value": "0.3"
     },
     {
      "well": "A12",
      "row": 0,
      "col": 11,
      "role": "negative",
      "value": "0.3"
     },
     {
      "well": "B12",
      "row": 1,
      "col": 11,
      "role": "negative",
      "value": "0.2"
     },
     {
      "well": "C12",
      "row": 2,
      "col": 11,
      "role": "negative",
      "value": "0.1"
     }
    ]
   },
   "decision": {
    "separation": "0",
    "positiveSpread": "1/5",
    "negativeSpread": "1/5"
   },
   "expected": {
    "signalWindow": {
     "ok": false,
     "reason": "no-separation"
    },
    "ssmd": {
     "ok": true,
     "value": 0.0
    },
    "z": null
   }
  },
  {
   "id": "4c",
   "memoCase": 4,
   "engine": "plate-diagnostics",
   "about": "Plate diagnostics with equal decimal means; the stored doubles' exact means differ by 1.4e-17",
   "inputs": {
    "format": 96,
    "wells": [
     {
      "well": "A1",
      "row": 0,
      "col": 0,
      "role": "positive",
      "value": "0.2"
     },
     {
      "well": "B1",
      "row": 1,
      "col": 0,
      "role": "positive",
      "value": "0.2"
     },
     {
      "well": "A12",
      "row": 0,
      "col": 11,
      "role": "negative",
      "value": "0.1"
     },
     {
      "well": "B12",
      "row": 1,
      "col": 11,
      "role": "negative",
      "value": "0.3"
     }
    ]
   },
   "decision": {
    "separation": "0",
    "positiveSpread": "0",
    "negativeSpread": "1/5"
   },
   "expected": {
    "signalWindow": {
     "ok": false,
     "reason": "no-separation"
    },
    "ssmd": {
     "ok": true,
     "value": 0.0
    },
    "z": null
   }
  },
  {
   "id": "5-window-a",
   "memoCase": 5,
   "engine": "growth-window",
   "about": "6 blanks of 0.05 and a sample of 0.05 in the window: withheld, its row named",
   "inputs": {
    "readings": [
     {
      "time": "0",
      "response": "0.05",
      "role": "blank"
     },
     {
      "time": "0",
      "response": "0.05",
      "role": "blank"
     },
     {
      "time": "0",
      "response": "0.05",
      "role": "blank"
     },
     {
      "time": "0",
      "response": "0.05",
      "role": "blank"
     },
     {
      "time": "0",
      "response": "0.05",
      "role": "blank"
     },
     {
      "time": "0",
      "response": "0.05",
      "role": "blank"
     },
     {
      "time": "0",
      "response": "0.05",
      "role": "sample"
     },
     {
      "time": "1",
      "response": "0.2",
      "role": "sample"
     },
     {
      "time": "2",
      "response": "0.4",
      "role": "sample"
     },
     {
      "time": "3",
      "response": "0.8",
      "role": "sample"
     }
    ],
    "window": [
     "0",
     "3"
    ]
   },
   "decision": {
    "sampleMinusBlank": "0"
   },
   "expected": {
    "status": "withheld",
    "reason": "nonpositive",
    "rows": [
     6
    ]
   }
  },
  {
   "id": "5-gompertz-a",
   "memoCase": 5,
   "engine": "growth-gompertz",
   "about": "Gompertz: 6 blanks of 0.05, the first sample reading 0.05: withheld, its row named",
   "inputs": {
    "readings": [
     {
      "time": "0",
      "response": "0.05",
      "role": "blank"
     },
     {
      "time": "0",
      "response": "0.05",
      "role": "blank"
     },
     {
      "time": "0",
      "response": "0.05",
      "role": "blank"
     },
     {
      "time": "0",
      "response": "0.05",
      "role": "blank"
     },
     {
      "time": "0",
      "response": "0.05",
      "role": "blank"
     },
     {
      "time": "0",
      "response": "0.05",
      "role": "blank"
     },
     {
      "time": "0",
      "response": "0.05",
      "role": "sample"
     },
     {
      "time": "1",
      "response": "0.12",
      "role": "sample"
     },
     {
      "time": "2",
      "response": "0.2",
      "role": "sample"
     },
     {
      "time": "3",
      "response": "0.35",
      "role": "sample"
     },
     {
      "time": "4",
      "response": "0.5",
      "role": "sample"
     },
     {
      "time": "5",
      "response": "0.6",
      "role": "sample"
     },
     {
      "time": "6",
      "response": "0.62",
      "role": "sample"
     }
    ]
   },
   "decision": {
    "sampleMinusBlank": "0"
   },
   "expected": {
    "status": "withheld",
    "reason": "nonpositive",
    "rows": [
     6
    ]
   }
  },
  {
   "id": "5-gr-a",
   "memoCase": 5,
   "engine": "gr-metrics",
   "about": "GR metrics: 6 blanks of 0.05, one treated well reading 0.05: refused, the well named",
   "inputs": {
    "readings": [
     {
      "well": "B0",
      "role": "blank",
      "concentration": null,
      "value": "0.05"
     },
     {
      "well": "B1",
      "role": "blank",
      "concentration": null,
      "value": "0.05"
     },
     {
      "well": "B2",
      "role": "blank",
      "concentration": null,
      "value": "0.05"
     },
     {
      "well": "B3",
      "role": "blank",
      "concentration": null,
      "value": "0.05"
     },
     {
      "well": "B4",
      "role": "blank",
      "concentration": null,
      "value": "0.05"
     },
     {
      "well": "B5",
      "role": "blank",
      "concentration": null,
      "value": "0.05"
     },
     {
      "well": "T0",
      "role": "time-zero",
      "concentration": null,
      "value": "0.3"
     },
     {
      "well": "T1",
      "role": "time-zero",
      "concentration": null,
      "value": "0.31"
     },
     {
      "well": "U0",
      "role": "untreated",
      "concentration": null,
      "value": "1.2"
     },
     {
      "well": "U1",
      "role": "untreated",
      "concentration": null,
      "value": "1.22"
     },
     {
      "well": "S00",
      "role": "treated",
      "concentration": "1e-8",
      "value": "1.1"
     },
     {
      "well": "S01",
      "role": "treated",
      "concentration": "1e-8",
      "value": "1.12"
     },
     {
      "well": "S10",
      "role": "treated",
      "concentration": "1e-7",
      "value": "0.9"
     },
     {
      "well": "S11",
      "role": "treated",
      "concentration": "1e-7",
      "value": "0.92"
     },
     {
      "well": "S20",
      "role": "treated",
      "concentration": "1e-6",
      "value": "0.7"
     },
     {
      "well": "S21",
      "role": "treated",
      "concentration": "1e-6",
      "value": "0.72"
     },
     {
      "well": "S30",
      "role": "treated",
      "concentration": "1e-5",
      "value": "0.5"
     },
     {
      "well": "S31",
      "role": "treated",
      "concentration": "1e-5",
      "value": "0.52"
     },
     {
      "well": "S40",
      "role": "treated",
      "concentration": "1e-4",
      "value": "0.05"
     },
     {
      "well": "S41",
      "role": "treated",
      "concentration": "1e-4",
      "value": "0.32"
     }
    ]
   },
   "decision": {
    "wellMinusBlank": "0"
   },
   "expected": {
    "status": "refused",
    "refusal": {
     "reason": "nonpositive",
     "wells": [
      "S40"
     ]
    }
   }
  },
  {
   "id": "5-window-b",
   "memoCase": 5,
   "engine": "growth-window",
   "about": "7 blanks of 0.1 and a sample of 0.1 in the window: withheld, its row named",
   "inputs": {
    "readings": [
     {
      "time": "0",
      "response": "0.1",
      "role": "blank"
     },
     {
      "time": "0",
      "response": "0.1",
      "role": "blank"
     },
     {
      "time": "0",
      "response": "0.1",
      "role": "blank"
     },
     {
      "time": "0",
      "response": "0.1",
      "role": "blank"
     },
     {
      "time": "0",
      "response": "0.1",
      "role": "blank"
     },
     {
      "time": "0",
      "response": "0.1",
      "role": "blank"
     },
     {
      "time": "0",
      "response": "0.1",
      "role": "blank"
     },
     {
      "time": "0",
      "response": "0.1",
      "role": "sample"
     },
     {
      "time": "1",
      "response": "0.2",
      "role": "sample"
     },
     {
      "time": "2",
      "response": "0.4",
      "role": "sample"
     },
     {
      "time": "3",
      "response": "0.8",
      "role": "sample"
     }
    ],
    "window": [
     "0",
     "3"
    ]
   },
   "decision": {
    "sampleMinusBlank": "0"
   },
   "expected": {
    "status": "withheld",
    "reason": "nonpositive",
    "rows": [
     7
    ]
   }
  },
  {
   "id": "5-gompertz-b",
   "memoCase": 5,
   "engine": "growth-gompertz",
   "about": "Gompertz: 7 blanks of 0.1, the first sample reading 0.1: withheld, its row named",
   "inputs": {
    "readings": [
     {
      "time": "0",
      "response": "0.1",
      "role": "blank"
     },
     {
      "time": "0",
      "response": "0.1",
      "role": "blank"
     },
     {
      "time": "0",
      "response": "0.1",
      "role": "blank"
     },
     {
      "time": "0",
      "response": "0.1",
      "role": "blank"
     },
     {
      "time": "0",
      "response": "0.1",
      "role": "blank"
     },
     {
      "time": "0",
      "response": "0.1",
      "role": "blank"
     },
     {
      "time": "0",
      "response": "0.1",
      "role": "blank"
     },
     {
      "time": "0",
      "response": "0.1",
      "role": "sample"
     },
     {
      "time": "1",
      "response": "0.12",
      "role": "sample"
     },
     {
      "time": "2",
      "response": "0.2",
      "role": "sample"
     },
     {
      "time": "3",
      "response": "0.35",
      "role": "sample"
     },
     {
      "time": "4",
      "response": "0.5",
      "role": "sample"
     },
     {
      "time": "5",
      "response": "0.6",
      "role": "sample"
     },
     {
      "time": "6",
      "response": "0.62",
      "role": "sample"
     }
    ]
   },
   "decision": {
    "sampleMinusBlank": "0"
   },
   "expected": {
    "status": "withheld",
    "reason": "nonpositive",
    "rows": [
     7
    ]
   }
  },
  {
   "id": "5-gr-b",
   "memoCase": 5,
   "engine": "gr-metrics",
   "about": "GR metrics: 7 blanks of 0.1, one treated well reading 0.1: refused, the well named",
   "inputs": {
    "readings": [
     {
      "well": "B0",
      "role": "blank",
      "concentration": null,
      "value": "0.1"
     },
     {
      "well": "B1",
      "role": "blank",
      "concentration": null,
      "value": "0.1"
     },
     {
      "well": "B2",
      "role": "blank",
      "concentration": null,
      "value": "0.1"
     },
     {
      "well": "B3",
      "role": "blank",
      "concentration": null,
      "value": "0.1"
     },
     {
      "well": "B4",
      "role": "blank",
      "concentration": null,
      "value": "0.1"
     },
     {
      "well": "B5",
      "role": "blank",
      "concentration": null,
      "value": "0.1"
     },
     {
      "well": "B6",
      "role": "blank",
      "concentration": null,
      "value": "0.1"
     },
     {
      "well": "T0",
      "role": "time-zero",
      "concentration": null,
      "value": "0.3"
     },
     {
      "well": "T1",
      "role": "time-zero",
      "concentration": null,
      "value": "0.31"
     },
     {
      "well": "U0",
      "role": "untreated",
      "concentration": null,
      "value": "1.2"
     },
     {
      "well": "U1",
      "role": "untreated",
      "concentration": null,
      "value": "1.22"
     },
     {
      "well": "S00",
      "role": "treated",
      "concentration": "1e-8",
      "value": "1.1"
     },
     {
      "well": "S01",
      "role": "treated",
      "concentration": "1e-8",
      "value": "1.12"
     },
     {
      "well": "S10",
      "role": "treated",
      "concentration": "1e-7",
      "value": "0.9"
     },
     {
      "well": "S11",
      "role": "treated",
      "concentration": "1e-7",
      "value": "0.92"
     },
     {
      "well": "S20",
      "role": "treated",
      "concentration": "1e-6",
      "value": "0.7"
     },
     {
      "well": "S21",
      "role": "treated",
      "concentration": "1e-6",
      "value": "0.72"
     },
     {
      "well": "S30",
      "role": "treated",
      "concentration": "1e-5",
      "value": "0.5"
     },
     {
      "well": "S31",
      "role": "treated",
      "concentration": "1e-5",
      "value": "0.52"
     },
     {
      "well": "S40",
      "role": "treated",
      "concentration": "1e-4",
      "value": "0.1"
     },
     {
      "well": "S41",
      "role": "treated",
      "concentration": "1e-4",
      "value": "0.32"
     }
    ]
   },
   "decision": {
    "wellMinusBlank": "0"
   },
   "expected": {
    "status": "refused",
    "refusal": {
     "reason": "nonpositive",
     "wells": [
      "S40"
     ]
    }
   }
  },
  {
   "id": "6a",
   "memoCase": 6,
   "engine": "qpcr-welch",
   "about": "Treated −20.1 × 3 against calibrators −22.1 × 3: neither group has scatter, withheld",
   "inputs": {
    "treated": [
     "-20.1",
     "-20.1",
     "-20.1"
    ],
    "calibrator": [
     "-22.1",
     "-22.1",
     "-22.1"
    ]
   },
   "decision": {
    "treatedSpread": "0",
    "calibratorSpread": "0"
   },
   "expected": {
    "status": "withheld",
    "reason": "no-scatter",
    "nTreated": 3,
    "nCalibrator": 3
   }
  },
  {
   "id": "6b",
   "memoCase": 6,
   "engine": "qpcr-welch",
   "about": "Treated values computed as 25.3 − 5.2, 25.4 − 5.3 and 25.5 − 5.4 (exactly 20.1 each; the doubles differ by rounding) against a constant group: withheld; the caller passes the largest operand, 25.5, as the scale",
   "inputs": {
    "treated": {
     "minuend": [
      "25.3",
      "25.4",
      "25.5"
     ],
     "subtrahend": [
      "5.2",
      "5.3",
      "5.4"
     ]
    },
    "calibrator": [
     "18.1",
     "18.1",
     "18.1"
    ],
    "treatedScale": "25.5"
   },
   "decision": {
    "treatedSpread": "0",
    "calibratorSpread": "0"
   },
   "expected": {
    "status": "withheld",
    "reason": "no-scatter",
    "nTreated": 3,
    "nCalibrator": 3
   }
  },
  {
   "id": "7-two-way-2-a",
   "memoCase": 7,
   "engine": "two-way",
   "about": "Two-way ANOVA type 2, cells 0.1 × 3, 0.2 × 3 / 0.3 × 3, 0.4 × 3: no cell has spread, withheld",
   "inputs": {
    "a": [
     "a1",
     "a2"
    ],
    "b": [
     "b1",
     "b2"
    ],
    "cells": [
     [
      [
       "0.1",
       "0.1",
       "0.1"
      ],
      [
       "0.2",
       "0.2",
       "0.2"
      ]
     ],
     [
      [
       "0.3",
       "0.3",
       "0.3"
      ],
      [
       "0.4",
       "0.4",
       "0.4"
      ]
     ]
    ],
    "type": 2
   },
   "decision": {
    "cellSpreads": [
     "0",
     "0",
     "0",
     "0"
    ]
   },
   "expected": {
    "status": "withheld",
    "code": "ZERO_VARIANCE_GROUP"
   }
  },
  {
   "id": "7-two-way-3-a",
   "memoCase": 7,
   "engine": "two-way",
   "about": "Two-way ANOVA type 3, cells 0.1 × 3, 0.2 × 3 / 0.3 × 3, 0.4 × 3: no cell has spread, withheld",
   "inputs": {
    "a": [
     "a1",
     "a2"
    ],
    "b": [
     "b1",
     "b2"
    ],
    "cells": [
     [
      [
       "0.1",
       "0.1",
       "0.1"
      ],
      [
       "0.2",
       "0.2",
       "0.2"
      ]
     ],
     [
      [
       "0.3",
       "0.3",
       "0.3"
      ],
      [
       "0.4",
       "0.4",
       "0.4"
      ]
     ]
    ],
    "type": 3
   },
   "decision": {
    "cellSpreads": [
     "0",
     "0",
     "0",
     "0"
    ]
   },
   "expected": {
    "status": "withheld",
    "code": "ZERO_VARIANCE_GROUP"
   }
  },
  {
   "id": "7-simple-effects-a",
   "memoCase": 7,
   "engine": "simple-effects",
   "about": "Simple effects (Tukey, all pairs) on cells 0.1 × 3, 0.2 × 3 / 0.3 × 3, 0.4 × 3: withheld with the two-way fit",
   "inputs": {
    "a": [
     "a1",
     "a2"
    ],
    "b": [
     "b1",
     "b2"
    ],
    "cells": [
     [
      [
       "0.1",
       "0.1",
       "0.1"
      ],
      [
       "0.2",
       "0.2",
       "0.2"
      ]
     ],
     [
      [
       "0.3",
       "0.3",
       "0.3"
      ],
      [
       "0.4",
       "0.4",
       "0.4"
      ]
     ]
    ],
    "method": "tukey",
    "family": "all",
    "level": "0.95"
   },
   "decision": {
    "cellSpreads": [
     "0",
     "0",
     "0",
     "0"
    ]
   },
   "expected": {
    "status": "withheld",
    "code": "ZERO_VARIANCE_GROUP"
   }
  },
  {
   "id": "7-two-way-2-b",
   "memoCase": 7,
   "engine": "two-way",
   "about": "Two-way ANOVA type 2, every cell 0.1 × 3: no cell has spread, withheld",
   "inputs": {
    "a": [
     "a1",
     "a2"
    ],
    "b": [
     "b1",
     "b2"
    ],
    "cells": [
     [
      [
       "0.1",
       "0.1",
       "0.1"
      ],
      [
       "0.1",
       "0.1",
       "0.1"
      ]
     ],
     [
      [
       "0.1",
       "0.1",
       "0.1"
      ],
      [
       "0.1",
       "0.1",
       "0.1"
      ]
     ]
    ],
    "type": 2
   },
   "decision": {
    "cellSpreads": [
     "0",
     "0",
     "0",
     "0"
    ]
   },
   "expected": {
    "status": "withheld",
    "code": "ZERO_VARIANCE_GROUP"
   }
  },
  {
   "id": "7-two-way-3-b",
   "memoCase": 7,
   "engine": "two-way",
   "about": "Two-way ANOVA type 3, every cell 0.1 × 3: no cell has spread, withheld",
   "inputs": {
    "a": [
     "a1",
     "a2"
    ],
    "b": [
     "b1",
     "b2"
    ],
    "cells": [
     [
      [
       "0.1",
       "0.1",
       "0.1"
      ],
      [
       "0.1",
       "0.1",
       "0.1"
      ]
     ],
     [
      [
       "0.1",
       "0.1",
       "0.1"
      ],
      [
       "0.1",
       "0.1",
       "0.1"
      ]
     ]
    ],
    "type": 3
   },
   "decision": {
    "cellSpreads": [
     "0",
     "0",
     "0",
     "0"
    ]
   },
   "expected": {
    "status": "withheld",
    "code": "ZERO_VARIANCE_GROUP"
   }
  },
  {
   "id": "7-simple-effects-b",
   "memoCase": 7,
   "engine": "simple-effects",
   "about": "Simple effects (Tukey, all pairs) on every cell 0.1 × 3: withheld with the two-way fit",
   "inputs": {
    "a": [
     "a1",
     "a2"
    ],
    "b": [
     "b1",
     "b2"
    ],
    "cells": [
     [
      [
       "0.1",
       "0.1",
       "0.1"
      ],
      [
       "0.1",
       "0.1",
       "0.1"
      ]
     ],
     [
      [
       "0.1",
       "0.1",
       "0.1"
      ],
      [
       "0.1",
       "0.1",
       "0.1"
      ]
     ]
    ],
    "method": "tukey",
    "family": "all",
    "level": "0.95"
   },
   "decision": {
    "cellSpreads": [
     "0",
     "0",
     "0",
     "0"
    ]
   },
   "expected": {
    "status": "withheld",
    "code": "ZERO_VARIANCE_GROUP"
   }
  },
  {
   "id": "7-mixed-a",
   "memoCase": 7,
   "engine": "mixed-model",
   "about": "Mixed model, five subjects at (0.1, 0.2, 0.3): zero residual, withheld",
   "inputs": {
    "rows": [
     [
      "0.1",
      "0.2",
      "0.3"
     ],
     [
      "0.1",
      "0.2",
      "0.3"
     ],
     [
      "0.1",
      "0.2",
      "0.3"
     ],
     [
      "0.1",
      "0.2",
      "0.3"
     ],
     [
      "0.1",
      "0.2",
      "0.3"
     ]
    ],
    "k": 3
   },
   "decision": {
    "residualSumOfSquares": "0",
    "sumOfSquares": "7/10"
   },
   "expected": {
    "status": "withheld",
    "code": "ZERO_VARIANCE_GROUP"
   }
  },
  {
   "id": "7-mixed-b",
   "memoCase": 7,
   "engine": "mixed-model",
   "about": "Mixed model, five subjects, every value 0.1: zero residual, withheld",
   "inputs": {
    "rows": [
     [
      "0.1",
      "0.1",
      "0.1"
     ],
     [
      "0.1",
      "0.1",
      "0.1"
     ],
     [
      "0.1",
      "0.1",
      "0.1"
     ],
     [
      "0.1",
      "0.1",
      "0.1"
     ],
     [
      "0.1",
      "0.1",
      "0.1"
     ]
    ],
    "k": 3
   },
   "decision": {
    "residualSumOfSquares": "0",
    "sumOfSquares": "3/20"
   },
   "expected": {
    "status": "withheld",
    "code": "ZERO_VARIANCE_GROUP"
   }
  },
  {
   "id": "15-two-way-2",
   "memoCase": 15,
   "engine": "two-way",
   "about": "Two-way ANOVA type 2, unbalanced, one constant cell (0.1 × 3) among varied ones: calculated",
   "inputs": {
    "a": [
     "a1",
     "a2"
    ],
    "b": [
     "b1",
     "b2"
    ],
    "cells": [
     [
      [
       "0.1",
       "0.1",
       "0.1"
      ],
      [
       "0.25",
       "0.31",
       "0.28"
      ]
     ],
     [
      [
       "0.42",
       "0.39",
       "0.45"
      ],
      [
       "0.60",
       "0.55",
       "0.66",
       "0.58"
      ]
     ]
    ],
    "type": 2
   },
   "decision": {
    "cellSpreads": [
     "0",
     "3/50",
     "3/50",
     "11/100"
    ]
   },
   "expected": {
    "status": "value",
    "type": 2,
    "balanced": false,
    "terms": [
     {
      "term": "A",
      "ss": 0.3264057142857143,
      "df": 1,
      "f": 291.57830556540233,
      "p": 3.642931066589437e-08
     },
     {
      "term": "B",
      "ss": 0.10260571428571427,
      "df": 1,
      "f": 91.65771003190355,
      "p": 5.1355841771285755e-06
     },
     {
      "term": "A:B",
      "ss": 4.999999999999796e-06,
      "df": 1,
      "f": 0.004466501240694606,
      "p": 0.9481766507364612
     }
    ],
    "residual": {
     "ss": 0.010075,
     "df": 9,
     "ms": 0.0011194444444444446
    },
    "n": 13
   }
  },
  {
   "id": "15-two-way-3",
   "memoCase": 15,
   "engine": "two-way",
   "about": "Two-way ANOVA type 3, unbalanced, one constant cell (0.1 × 3) among varied ones: calculated",
   "inputs": {
    "a": [
     "a1",
     "a2"
    ],
    "b": [
     "b1",
     "b2"
    ],
    "cells": [
     [
      [
       "0.1",
       "0.1",
       "0.1"
      ],
      [
       "0.25",
       "0.31",
       "0.28"
      ]
     ],
     [
      [
       "0.42",
       "0.39",
       "0.45"
      ],
      [
       "0.60",
       "0.55",
       "0.66",
       "0.58"
      ]
     ]
    ],
    "type": 3
   },
   "decision": {
    "cellSpreads": [
     "0",
     "3/50",
     "3/50",
     "11/100"
    ]
   },
   "expected": {
    "status": "value",
    "type": 3,
    "balanced": false,
    "terms": [
     {
      "term": "A",
      "ss": 0.325125,
      "df": 1,
      "f": 290.4342431761786,
      "p": 3.7061634642066995e-08
     },
     {
      "term": "B",
      "ss": 0.10224500000000006,
      "df": 1,
      "f": 91.33548387096778,
      "p": 5.2108836027498435e-06
     },
     {
      "term": "A:B",
      "ss": 4.999999999999796e-06,
      "df": 1,
      "f": 0.004466501240694606,
      "p": 0.9481766507364612
     }
    ],
    "residual": {
     "ss": 0.010075,
     "df": 9,
     "ms": 0.0011194444444444446
    },
    "n": 13
   }
  },
  {
   "id": "15-simple-effects",
   "memoCase": 15,
   "engine": "simple-effects",
   "about": "Simple effects of B within each level of A (Holm), on the design with one constant cell: calculated",
   "inputs": {
    "a": [
     "a1",
     "a2"
    ],
    "b": [
     "b1",
     "b2"
    ],
    "cells": [
     [
      [
       "0.1",
       "0.1",
       "0.1"
      ],
      [
       "0.25",
       "0.31",
       "0.28"
      ]
     ],
     [
      [
       "0.42",
       "0.39",
       "0.45"
      ],
      [
       "0.60",
       "0.55",
       "0.66",
       "0.58"
      ]
     ]
    ],
    "method": "holm",
    "family": "all",
    "level": "0.95"
   },
   "decision": {
    "cellSpreads": [
     "0",
     "3/50",
     "3/50",
     "11/100"
    ]
   },
   "expected": {
    "status": "value",
    "method": "holm",
    "family": "all",
    "m": 2,
    "level": 0.95,
    "comparisons": [
     {
      "aLevel": 0,
      "a": 0,
      "b": 1,
      "difference": 0.18,
      "se": 0.027318424118098327,
      "statistic": 6.588959861734881,
      "df": 9,
      "pUnadjusted": 0.00010054546217355294,
      "p": 0.00013427750729412544
     },
     {
      "aLevel": 1,
      "a": 0,
      "b": 1,
      "difference": 0.17750000000000005,
      "se": 0.0255540458491265,
      "statistic": 6.946062515813614,
      "df": 9,
      "pUnadjusted": 6.713875364706272e-05,
      "p": 0.00013427750729412544
     }
    ],
    "intervals": false
   }
  },
  {
   "id": "8",
   "memoCase": 8,
   "engine": "survival",
   "about": "Two groups of three, every event at t = 5: no subject remains at risk after the event time, the variance is 0, the test and hazard ratio withheld",
   "inputs": {
    "groups": [
     {
      "name": "A",
      "subjects": [
       {
        "time": "5",
        "event": true,
        "row": 1
       },
       {
        "time": "5",
        "event": true,
        "row": 2
       },
       {
        "time": "5",
        "event": true,
        "row": 3
       }
      ]
     },
     {
      "name": "B",
      "subjects": [
       {
        "time": "5",
        "event": true,
        "row": 4
       },
       {
        "time": "5",
        "event": true,
        "row": 5
       },
       {
        "time": "5",
        "event": true,
        "row": 6
       }
      ]
     }
    ]
   },
   "decision": {
    "observed": [
     3,
     3
    ],
    "expected": [
     "3",
     "3"
    ],
    "variance": [
     [
      "0",
      "0"
     ],
     [
      "0",
      "0"
     ]
    ]
   },
   "expected": {
    "test": {
     "status": "withheld",
     "code": "ZERO_VARIANCE"
    },
    "hazardRatio": {
     "status": "withheld",
     "code": "ZERO_VARIANCE"
    }
   }
  },
  {
   "id": "16",
   "memoCase": 16,
   "engine": "survival",
   "about": "Disjoint risk sets: group A all die at t = 5, group B all at t = 10; chi-squared 5 on 1 df exactly, as R's survdiff gives it",
   "inputs": {
    "groups": [
     {
      "name": "A",
      "subjects": [
       {
        "time": "5",
        "event": true,
        "row": 1
       },
       {
        "time": "5",
        "event": true,
        "row": 2
       },
       {
        "time": "5",
        "event": true,
        "row": 3
       }
      ]
     },
     {
      "name": "B",
      "subjects": [
       {
        "time": "10",
        "event": true,
        "row": 4
       },
       {
        "time": "10",
        "event": true,
        "row": 5
       },
       {
        "time": "10",
        "event": true,
        "row": 6
       }
      ]
     }
    ]
   },
   "decision": {
    "observed": [
     3,
     3
    ],
    "expected": [
     "3/2",
     "9/2"
    ],
    "variance": [
     [
      "9/20",
      "-9/20"
     ],
     [
      "-9/20",
      "9/20"
     ]
    ],
    "chiSquared": "5"
   },
   "expected": {
    "observedExpected": {
     "observed": [
      3,
      3
     ],
     "expected": [
      1.5,
      4.5
     ]
    },
    "test": {
     "status": "value",
     "kind": "log-rank",
     "statistic": 5.0,
     "df": 1,
     "p": 0.025347318677468325,
     "fewEvents": true
    },
    "hazardRatio": {
     "status": "value",
     "reference": 0,
     "other": 1,
     "estimate": 0.035673993347252395,
     "lower": 0.0019206816397288504,
     "upper": 0.6625948699751567
    }
   }
  },
  {
   "id": "9a",
   "memoCase": 9,
   "engine": "slow-binding",
   "about": "Slow binding, the audit's gently falling set (p = 0.471): kobs does not rise with [I]; both models refused as not-rising, never a negative kon,app",
   "inputs": {
    "inhibitor": [
     "1",
     "2",
     "4",
     "8",
     "16",
     "32"
    ],
    "kobs": [
     "0.100",
     "0.099",
     "0.101",
     "0.098",
     "0.097",
     "0.099"
    ]
   },
   "decision": {
    "slope": "-31/703500",
    "p": 0.4708470053575864
   },
   "expected": {
    "oneStep": {
     "status": "refused",
     "reason": "not-rising"
    },
    "twoStep": {
     "status": "refused",
     "reason": "not-rising"
    }
   }
  },
  {
   "id": "9b",
   "memoCase": 9,
   "engine": "slow-binding",
   "about": "Slow binding, the audit's noisier falling set (p = 0.063): kobs does not rise with [I]; both models refused as not-rising, never a negative kon,app",
   "inputs": {
    "inhibitor": [
     "1",
     "2",
     "4",
     "8",
     "16",
     "32"
    ],
    "kobs": [
     "0.10",
     "0.08",
     "0.09",
     "0.07",
     "0.08",
     "0.06"
    ]
   },
   "decision": {
    "slope": "-11/11725",
    "p": 0.06328673633781645
   },
   "expected": {
    "oneStep": {
     "status": "refused",
     "reason": "not-rising"
    },
    "twoStep": {
     "status": "refused",
     "reason": "not-rising"
    }
   }
  },
  {
   "id": "9c",
   "memoCase": 9,
   "engine": "slow-binding",
   "about": "A clearly falling set (p < 0.05), added as a guard: refused as falling, unchanged",
   "inputs": {
    "inhibitor": [
     "1",
     "2",
     "4",
     "8",
     "16",
     "32"
    ],
    "kobs": [
     "0.10",
     "0.09",
     "0.08",
     "0.06",
     "0.04",
     "0.02"
    ]
   },
   "decision": {
    "slope": "-347/140700",
    "p": 0.0038174662443687143
   },
   "expected": {
    "oneStep": {
     "status": "refused",
     "reason": "falling"
    },
    "twoStep": {
     "status": "refused",
     "reason": "falling"
    }
   }
  },
  {
   "id": "10",
   "memoCase": 10,
   "engine": "thermal-residuals",
   "about": "A noiseless 41-point Boltzmann melt (100 to 1000, Tm 50 °C, k 2.5 °C), stored to 17 significant figures: the residual is rounding, so r1 is not formed (zero-residual)",
   "inputs": {
    "temperature": [
     "25",
     "26",
     "27",
     "28",
     "29",
     "30",
     "31",
     "32",
     "33",
     "34",
     "35",
     "36",
     "37",
     "38",
     "39",
     "40",
     "41",
     "42",
     "43",
     "44",
     "45",
     "46",
     "47",
     "48",
     "49",
     "50",
     "51",
     "52",
     "53",
     "54",
     "55",
     "56",
     "57",
     "58",
     "59",
     "60",
     "61",
     "62",
     "63",
     "64",
     "65"
    ],
    "fluorescence": [
     "100.0408580818322",
     "100.06095173465779",
     "100.090926274517",
     "100.13563932225378",
     "100.20233509320997",
     "100.30181511741984",
     "100.45018099637161",
     "100.67142595045303",
     "101.00128242957429",
     "101.49292097215698",
     "102.22536084097129",
     "103.31581590949239",
     "104.93766900950536",
     "107.34631403784391",
     "110.91559148584682",
     "116.1875889658824",
     "123.93729421917926",
     "135.2491505170879",
     "151.59175830898187",
     "174.85542684453014",
     "207.2826298199058",
     "251.18345337946798",
     "308.32769485088414",
     "379.0229669851488",
     "461.1811058987932",
     "550.0",
     "638.8188941012068",
     "720.9770330148513",
     "791.6723051491158",
     "848.816546620532",
     "892.7173701800941",
     "925.1445731554699",
     "948.4082416910181",
     "964.7508494829121",
     "976.0627057808207",
     "983.8124110341175",
     "989.0844085141532",
     "992.6536859621561",
     "995.0623309904945",
     "996.6841840905076",
     "997.7746391590288"
    ],
    "window": [
     "25",
     "65"
    ],
    "direction": "rises"
   },
   "decision": {
    "normalisedResidualBound": "8.702e-32",
    "normalisedSumOfSquares": "13.0744",
    "rule": "residual sum of squares at most 1e-20 of the sum of squares, both on (F − min F)/(max F − min F)"
   },
   "expected": {
    "residualCheck": {
     "r1": null,
     "limit": 0.256905838306757,
     "n": 41
    },
    "profile": {
     "status": "not-available",
     "reason": "zero-residual"
    }
   }
  },
  {
   "id": "11-z-prime",
   "memoCase": 11,
   "engine": "z-prime",
   "about": "Z′ with absorbance controls with a real 1e-6 spread: calculated",
   "inputs": {
    "positive": [
     "1.000000",
     "1.000001",
     "0.999999"
    ],
    "negative": [
     "0.100000",
     "0.100001",
     "0.099999"
    ]
   },
   "decision": {
    "separation": "9/10"
   },
   "expected": {
    "ok": true,
    "zPrime": 0.9999933333333334,
    "meanPositive": 1.0,
    "meanNegative": 0.10000000000000002,
    "sdPositive": 9.999999999732445e-07,
    "sdNegative": 1.000000000001e-06
   }
  },
  {
   "id": "11-percent",
   "memoCase": 11,
   "engine": "normaliser",
   "about": "percent with absorbance controls with a real 1e-6 spread: calculated",
   "inputs": {
    "mode": "percent",
    "positive": [
     "1.000000",
     "1.000001",
     "0.999999"
    ],
    "negative": [
     "0.100000",
     "0.100001",
     "0.099999"
    ],
    "y": [
     "0.5",
     "0.75",
     "1.0000005"
    ]
   },
   "decision": {
    "separation": "9/10"
   },
   "expected": {
    "ok": true,
    "apply": [
     {
      "y": "0.5",
      "value": 44.44444444444444
     },
     {
      "y": "0.75",
      "value": 72.22222222222221
     },
     {
      "y": "1.0000005",
      "value": 100.00005555555558
     }
    ]
   }
  },
  {
   "id": "11-percent-inhibition",
   "memoCase": 11,
   "engine": "normaliser",
   "about": "percent-inhibition with absorbance controls with a real 1e-6 spread: calculated",
   "inputs": {
    "mode": "percent-inhibition",
    "positive": [
     "1.000000",
     "1.000001",
     "0.999999"
    ],
    "negative": [
     "0.100000",
     "0.100001",
     "0.099999"
    ],
    "y": [
     "0.5",
     "0.75",
     "1.0000005"
    ]
   },
   "decision": {
    "separation": "9/10"
   },
   "expected": {
    "ok": true,
    "apply": [
     {
      "y": "0.5",
      "value": 55.55555555555556
     },
     {
      "y": "0.75",
      "value": 27.777777777777786
     },
     {
      "y": "1.0000005",
      "value": -5.5555555576347615e-05
     }
    ]
   }
  },
  {
   "id": "11-percent-control",
   "memoCase": 11,
   "engine": "normaliser",
   "about": "percent-control with absorbance controls with a real 1e-6 spread: calculated",
   "inputs": {
    "mode": "percent-control",
    "positive": [
     "1.000000",
     "1.000001",
     "0.999999"
    ],
    "negative": [],
    "y": [
     "0.5",
     "0.75",
     "1.0000005"
    ]
   },
   "decision": {
    "meanPositive": "1"
   },
   "expected": {
    "ok": true,
    "apply": [
     {
      "y": "0.5",
      "value": 50.0
     },
     {
      "y": "0.75",
      "value": 75.0
     },
     {
      "y": "1.0000005",
      "value": 100.00005
     }
    ]
   }
  },
  {
   "id": "11-percent-vehicle-bg",
   "memoCase": 11,
   "engine": "normaliser",
   "about": "percent-vehicle-bg with absorbance controls with a real 1e-6 spread (the negatives as the blank): calculated",
   "inputs": {
    "mode": "percent-vehicle-bg",
    "positive": [
     "1.000000",
     "1.000001",
     "0.999999"
    ],
    "negative": [],
    "y": [
     "0.5",
     "0.75",
     "1.0000005"
    ],
    "blank": [
     "0.100000",
     "0.100001",
     "0.099999"
    ]
   },
   "decision": {
    "vehicleMinusBlank": "9/10"
   },
   "expected": {
    "ok": true,
    "apply": [
     {
      "y": "0.5",
      "value": 44.44444444444444
     },
     {
      "y": "0.75",
      "value": 72.22222222222221
     },
     {
      "y": "1.0000005",
      "value": 100.00005555555558
     }
    ]
   }
  },
  {
   "id": "11-plate-diagnostics",
   "memoCase": 11,
   "engine": "plate-diagnostics",
   "about": "Plate diagnostics with absorbance controls with a real 1e-6 spread: signal window and SSMD calculated",
   "inputs": {
    "format": 96,
    "wells": [
     {
      "well": "A1",
      "row": 0,
      "col": 0,
      "role": "positive",
      "value": "1.000000"
     },
     {
      "well": "B1",
      "row": 1,
      "col": 0,
      "role": "positive",
      "value": "1.000001"
     },
     {
      "well": "C1",
      "row": 2,
      "col": 0,
      "role": "positive",
      "value": "0.999999"
     },
     {
      "well": "A12",
      "row": 0,
      "col": 11,
      "role": "negative",
      "value": "0.100000"
     },
     {
      "well": "B12",
      "row": 1,
      "col": 11,
      "role": "negative",
      "value": "0.100001"
     },
     {
      "well": "C12",
      "row": 2,
      "col": 11,
      "role": "negative",
      "value": "0.099999"
     }
    ]
   },
   "decision": {
    "separation": "9/10",
    "positiveSpread": "1/500000",
    "negativeSpread": "1/500000"
   },
   "expected": {
    "signalWindow": {
     "ok": true,
     "value": 899994.0000240798
    },
    "ssmd": {
     "ok": true,
     "value": 636396.1030760881
    },
    "z": null
   }
  },
  {
   "id": "11-screening",
   "memoCase": 11,
   "engine": "screening",
   "about": "A screening plate with absorbance controls with a real 1e-6 spread and 16 samples: percent inhibition, robust z and calls calculated",
   "inputs": {
    "wells": [
     {
      "well": "A1",
      "row": 0,
      "col": 0,
      "role": "positive",
      "value": "1.000000"
     },
     {
      "well": "B1",
      "row": 1,
      "col": 0,
      "role": "positive",
      "value": "1.000001"
     },
     {
      "well": "C1",
      "row": 2,
      "col": 0,
      "role": "positive",
      "value": "0.999999"
     },
     {
      "well": "A12",
      "row": 0,
      "col": 11,
      "role": "negative",
      "value": "0.100000"
     },
     {
      "well": "B12",
      "row": 1,
      "col": 11,
      "role": "negative",
      "value": "0.100001"
     },
     {
      "well": "C12",
      "row": 2,
      "col": 11,
      "role": "negative",
      "value": "0.099999"
     },
     {
      "well": "B3",
      "row": 1,
      "col": 2,
      "role": "sample",
      "value": "0.12"
     },
     {
      "well": "B4",
      "row": 1,
      "col": 3,
      "role": "sample",
      "value": "0.17"
     },
     {
      "well": "B5",
      "row": 1,
      "col": 4,
      "role": "sample",
      "value": "0.22"
     },
     {
      "well": "B6",
      "row": 1,
      "col": 5,
      "role": "sample",
      "value": "0.27"
     },
     {
      "well": "B7",
      "row": 1,
      "col": 6,
      "role": "sample",
      "value": "0.32"
     },
     {
      "well": "B8",
      "row": 1,
      "col": 7,
      "role": "sample",
      "value": "0.37"
     },
     {
      "well": "B9",
      "row": 1,
      "col": 8,
      "role": "sample",
      "value": "0.42"
     },
     {
      "well": "B10",
      "row": 1,
      "col": 9,
      "role": "sample",
      "value": "0.47"
     },
     {
      "well": "C3",
      "row": 2,
      "col": 2,
      "role": "sample",
      "value": "0.52"
     },
     {
      "well": "C4",
      "row": 2,
      "col": 3,
      "role": "sample",
      "value": "0.57"
     },
     {
      "well": "C5",
      "row": 2,
      "col": 4,
      "role": "sample",
      "value": "0.62"
     },
     {
      "well": "C6",
      "row": 2,
      "col": 5,
      "role": "sample",
      "value": "0.67"
     },
     {
      "well": "C7",
      "row": 2,
      "col": 6,
      "role": "sample",
      "value": "0.72"
     },
     {
      "well": "C8",
      "row": 2,
      "col": 7,
      "role": "sample",
      "value": "0.77"
     },
     {
      "well": "C9",
      "row": 2,
      "col": 8,
      "role": "sample",
      "value": "0.82"
     },
     {
      "well": "C10",
      "row": 2,
      "col": 9,
      "role": "sample",
      "value": "0.87"
     }
    ],
    "settings": {
     "method": "percent",
     "threshold": "50"
    }
   },
   "decision": {
    "separation": "9/10",
    "sampleSpread": "250/3"
   },
   "expected": {
    "withheld": null,
    "zWithheld": null,
    "median": 56.111111111111114,
    "mad": 22.22222222222223,
    "wells": [
     {
      "percent": 97.77777777777779,
      "z": 1.264668281617653,
      "call": true
     },
     {
      "percent": 92.22222222222223,
      "z": 1.0960458440686327,
      "call": true
     },
     {
      "percent": 86.66666666666667,
      "z": 0.9274234065196122,
      "call": true
     },
     {
      "percent": 81.11111111111111,
      "z": 0.7588009689705918,
      "call": true
     },
     {
      "percent": 75.55555555555556,
      "z": 0.5901785314215713,
      "call": true
     },
     {
      "percent": 70.0,
      "z": 0.4215560938725509,
      "call": true
     },
     {
      "percent": 64.44444444444446,
      "z": 0.2529336563235309,
      "call": true
     },
     {
      "percent": 58.8888888888889,
      "z": 0.08431121877451044,
      "call": true
     },
     {
      "percent": 53.333333333333336,
      "z": -0.08431121877451023,
      "call": true
     },
     {
      "percent": 47.777777777777786,
      "z": -0.25293365632353043,
      "call": false
     },
     {
      "percent": 42.22222222222222,
      "z": -0.4215560938725511,
      "call": false
     },
     {
      "percent": 36.66666666666666,
      "z": -0.5901785314215717,
      "call": false
     },
     {
      "percent": 31.111111111111114,
      "z": -0.7588009689705918,
      "call": false
     },
     {
      "percent": 25.555555555555557,
      "z": -0.9274234065196122,
      "call": false
     },
     {
      "percent": 20.0,
      "z": -1.0960458440686327,
      "call": false
     },
     {
      "percent": 14.444444444444443,
      "z": -1.264668281617653,
      "call": false
     }
    ]
   }
  },
  {
   "id": "12-z-prime",
   "memoCase": 12,
   "engine": "z-prime",
   "about": "Z′ with molar controls near 1e-14 M (the absolute floor 64·ε·max(1, |x|) would refuse them): calculated",
   "inputs": {
    "positive": [
     "2.0e-14",
     "2.1e-14",
     "1.9e-14"
    ],
    "negative": [
     "1.0e-14",
     "1.1e-14",
     "0.9e-14"
    ]
   },
   "decision": {
    "separation": "1/100000000000000"
   },
   "expected": {
    "ok": true,
    "zPrime": 0.40000000000000024,
    "meanPositive": 2e-14,
    "meanNegative": 1e-14,
    "sdPositive": 9.999999999999989e-16,
    "sdNegative": 1.0000000000000005e-15
   }
  },
  {
   "id": "12-percent",
   "memoCase": 12,
   "engine": "normaliser",
   "about": "percent with molar controls near 1e-14 M (the absolute floor 64·ε·max(1, |x|) would refuse them): calculated",
   "inputs": {
    "mode": "percent",
    "positive": [
     "2.0e-14",
     "2.1e-14",
     "1.9e-14"
    ],
    "negative": [
     "1.0e-14",
     "1.1e-14",
     "0.9e-14"
    ],
    "y": [
     "1.5e-14",
     "1.25e-14",
     "2.05e-14"
    ]
   },
   "decision": {
    "separation": "1/100000000000000"
   },
   "expected": {
    "ok": true,
    "apply": [
     {
      "y": "1.5e-14",
      "value": 49.999999999999986
     },
     {
      "y": "1.25e-14",
      "value": 25.000000000000004
     },
     {
      "y": "2.05e-14",
      "value": 105.00000000000001
     }
    ]
   }
  },
  {
   "id": "12-percent-inhibition",
   "memoCase": 12,
   "engine": "normaliser",
   "about": "percent-inhibition with molar controls near 1e-14 M (the absolute floor 64·ε·max(1, |x|) would refuse them): calculated",
   "inputs": {
    "mode": "percent-inhibition",
    "positive": [
     "2.0e-14",
     "2.1e-14",
     "1.9e-14"
    ],
    "negative": [
     "1.0e-14",
     "1.1e-14",
     "0.9e-14"
    ],
    "y": [
     "1.5e-14",
     "1.25e-14",
     "2.05e-14"
    ]
   },
   "decision": {
    "separation": "1/100000000000000"
   },
   "expected": {
    "ok": true,
    "apply": [
     {
      "y": "1.5e-14",
      "value": 50.000000000000014
     },
     {
      "y": "1.25e-14",
      "value": 75.0
     },
     {
      "y": "2.05e-14",
      "value": -5.000000000000014
     }
    ]
   }
  },
  {
   "id": "12-percent-control",
   "memoCase": 12,
   "engine": "normaliser",
   "about": "percent-control with molar controls near 1e-14 M (the absolute floor 64·ε·max(1, |x|) would refuse them): calculated",
   "inputs": {
    "mode": "percent-control",
    "positive": [
     "2.0e-14",
     "2.1e-14",
     "1.9e-14"
    ],
    "negative": [],
    "y": [
     "1.5e-14",
     "1.25e-14",
     "2.05e-14"
    ]
   },
   "decision": {
    "meanPositive": "1/50000000000000"
   },
   "expected": {
    "ok": true,
    "apply": [
     {
      "y": "1.5e-14",
      "value": 75.0
     },
     {
      "y": "1.25e-14",
      "value": 62.50000000000001
     },
     {
      "y": "2.05e-14",
      "value": 102.5
     }
    ]
   }
  },
  {
   "id": "12-percent-vehicle-bg",
   "memoCase": 12,
   "engine": "normaliser",
   "about": "percent-vehicle-bg with molar controls near 1e-14 M (the absolute floor 64·ε·max(1, |x|) would refuse them) (the negatives as the blank): calculated",
   "inputs": {
    "mode": "percent-vehicle-bg",
    "positive": [
     "2.0e-14",
     "2.1e-14",
     "1.9e-14"
    ],
    "negative": [],
    "y": [
     "1.5e-14",
     "1.25e-14",
     "2.05e-14"
    ],
    "blank": [
     "1.0e-14",
     "1.1e-14",
     "0.9e-14"
    ]
   },
   "decision": {
    "vehicleMinusBlank": "1/100000000000000"
   },
   "expected": {
    "ok": true,
    "apply": [
     {
      "y": "1.5e-14",
      "value": 49.999999999999986
     },
     {
      "y": "1.25e-14",
      "value": 25.000000000000004
     },
     {
      "y": "2.05e-14",
      "value": 105.00000000000001
     }
    ]
   }
  },
  {
   "id": "12-plate-diagnostics",
   "memoCase": 12,
   "engine": "plate-diagnostics",
   "about": "Plate diagnostics with molar controls near 1e-14 M (the absolute floor 64·ε·max(1, |x|) would refuse them): signal window and SSMD calculated",
   "inputs": {
    "format": 96,
    "wells": [
     {
      "well": "A1",
      "row": 0,
      "col": 0,
      "role": "positive",
      "value": "2.0e-14"
     },
     {
      "well": "B1",
      "row": 1,
      "col": 0,
      "role": "positive",
      "value": "2.1e-14"
     },
     {
      "well": "C1",
      "row": 2,
      "col": 0,
      "role": "positive",
      "value": "1.9e-14"
     },
     {
      "well": "A12",
      "row": 0,
      "col": 11,
      "role": "negative",
      "value": "1.0e-14"
     },
     {
      "well": "B12",
      "row": 1,
      "col": 11,
      "role": "negative",
      "value": "1.1e-14"
     },
     {
      "well": "C12",
      "row": 2,
      "col": 11,
      "role": "negative",
      "value": "0.9e-14"
     }
    ]
   },
   "decision": {
    "separation": "1/100000000000000",
    "positiveSpread": "1/500000000000000",
    "negativeSpread": "1/500000000000000"
   },
   "expected": {
    "signalWindow": {
     "ok": true,
     "value": 4.000000000000006
    },
    "ssmd": {
     "ok": true,
     "value": 7.071067811865477
    },
    "z": null
   }
  },
  {
   "id": "12-screening",
   "memoCase": 12,
   "engine": "screening",
   "about": "A screening plate with molar controls near 1e-14 M (the absolute floor 64·ε·max(1, |x|) would refuse them) and 16 samples: percent inhibition, robust z and calls calculated",
   "inputs": {
    "wells": [
     {
      "well": "A1",
      "row": 0,
      "col": 0,
      "role": "positive",
      "value": "2.0e-14"
     },
     {
      "well": "B1",
      "row": 1,
      "col": 0,
      "role": "positive",
      "value": "2.1e-14"
     },
     {
      "well": "C1",
      "row": 2,
      "col": 0,
      "role": "positive",
      "value": "1.9e-14"
     },
     {
      "well": "A12",
      "row": 0,
      "col": 11,
      "role": "negative",
      "value": "1.0e-14"
     },
     {
      "well": "B12",
      "row": 1,
      "col": 11,
      "role": "negative",
      "value": "1.1e-14"
     },
     {
      "well": "C12",
      "row": 2,
      "col": 11,
      "role": "negative",
      "value": "0.9e-14"
     },
     {
      "well": "B3",
      "row": 1,
      "col": 2,
      "role": "sample",
      "value": "9.5000e-15"
     },
     {
      "well": "B4",
      "row": 1,
      "col": 3,
      "role": "sample",
      "value": "1.0200e-14"
     },
     {
      "well": "B5",
      "row": 1,
      "col": 4,
      "role": "sample",
      "value": "1.0900e-14"
     },
     {
      "well": "B6",
      "row": 1,
      "col": 5,
      "role": "sample",
      "value": "1.1600e-14"
     },
     {
      "well": "B7",
      "row": 1,
      "col": 6,
      "role": "sample",
      "value": "1.2300e-14"
     },
     {
      "well": "B8",
      "row": 1,
      "col": 7,
      "role": "sample",
      "value": "1.3000e-14"
     },
     {
      "well": "B9",
      "row": 1,
      "col": 8,
      "role": "sample",
      "value": "1.3700e-14"
     },
     {
      "well": "B10",
      "row": 1,
      "col": 9,
      "role": "sample",
      "value": "1.4400e-14"
     },
     {
      "well": "C3",
      "row": 2,
      "col": 2,
      "role": "sample",
      "value": "1.5100e-14"
     },
     {
      "well": "C4",
      "row": 2,
      "col": 3,
      "role": "sample",
      "value": "1.5800e-14"
     },
     {
      "well": "C5",
      "row": 2,
      "col": 4,
      "role": "sample",
      "value": "1.6500e-14"
     },
     {
      "well": "C6",
      "row": 2,
      "col": 5,
      "role": "sample",
      "value": "1.7200e-14"
     },
     {
      "well": "C7",
      "row": 2,
      "col": 6,
      "role": "sample",
      "value": "1.7900e-14"
     },
     {
      "well": "C8",
      "row": 2,
      "col": 7,
      "role": "sample",
      "value": "1.8600e-14"
     },
     {
      "well": "C9",
      "row": 2,
      "col": 8,
      "role": "sample",
      "value": "1.9300e-14"
     },
     {
      "well": "C10",
      "row": 2,
      "col": 9,
      "role": "sample",
      "value": "2.0000e-14"
     }
    ],
    "settings": {
     "method": "percent",
     "threshold": "50"
    }
   },
   "decision": {
    "separation": "1/100000000000000",
    "sampleSpread": "105"
   },
   "expected": {
    "withheld": null,
    "zWithheld": null,
    "median": 52.49999999999999,
    "mad": 28.000000000000007,
    "wells": [
     {
      "percent": 105.0,
      "z": 1.2646682816176529,
      "call": true
     },
     {
      "percent": 98.0,
      "z": 1.0960458440686327,
      "call": true
     },
     {
      "percent": 91.0,
      "z": 0.9274234065196122,
      "call": true
     },
     {
      "percent": 84.0,
      "z": 0.7588009689705919,
      "call": true
     },
     {
      "percent": 77.0,
      "z": 0.5901785314215715,
      "call": true
     },
     {
      "percent": 70.0,
      "z": 0.4215560938725511,
      "call": true
     },
     {
      "percent": 63.00000000000001,
      "z": 0.2529336563235309,
      "call": true
     },
     {
      "percent": 55.99999999999999,
      "z": 0.08431121877451019,
      "call": true
     },
     {
      "percent": 48.99999999999999,
      "z": -0.08431121877451019,
      "call": false
     },
     {
      "percent": 42.00000000000001,
      "z": -0.2529336563235302,
      "call": false
     },
     {
      "percent": 35.0,
      "z": -0.4215560938725508,
      "call": false
     },
     {
      "percent": 28.000000000000014,
      "z": -0.5901785314215708,
      "call": false
     },
     {
      "percent": 20.999999999999986,
      "z": -0.7588009689705919,
      "call": false
     },
     {
      "percent": 13.999999999999986,
      "z": -0.9274234065196122,
      "call": false
     },
     {
      "percent": 6.999999999999986,
      "z": -1.0960458440686327,
      "call": false
     },
     {
      "percent": 0.0,
      "z": -1.2646682816176527,
      "call": false
     }
    ]
   }
  },
  {
   "id": "13-window",
   "memoCase": 13,
   "engine": "growth-window",
   "about": "Six blanks of 0.05 and a sample from 1e-6 above them, doubling every hour: mu = ln 2 per hour, calculated",
   "inputs": {
    "readings": [
     {
      "time": "0",
      "response": "0.05",
      "role": "blank"
     },
     {
      "time": "0",
      "response": "0.05",
      "role": "blank"
     },
     {
      "time": "0",
      "response": "0.05",
      "role": "blank"
     },
     {
      "time": "0",
      "response": "0.05",
      "role": "blank"
     },
     {
      "time": "0",
      "response": "0.05",
      "role": "blank"
     },
     {
      "time": "0",
      "response": "0.05",
      "role": "blank"
     },
     {
      "time": "0",
      "response": "0.050001",
      "role": "sample"
     },
     {
      "time": "1",
      "response": "0.050002",
      "role": "sample"
     },
     {
      "time": "2",
      "response": "0.050004",
      "role": "sample"
     },
     {
      "time": "3",
      "response": "0.050008",
      "role": "sample"
     }
    ],
    "window": [
     "0",
     "3"
    ]
   },
   "decision": {
    "firstSampleMinusBlank": "1/1000000"
   },
   "expected": {
    "status": "estimated",
    "n": 4,
    "blank": 0.05,
    "mu": 0.6931471805599453,
    "doublingTime": 1.0,
    "rows": [
     6,
     7,
     8,
     9
    ]
   }
  },
  {
   "id": "13-gr",
   "memoCase": 13,
   "engine": "gr-metrics",
   "about": "GR metrics with one treated well 1e-6 above the blank: computed; the per-well GR values, k, GRmax and GR_AOC (the fit is not compared here)",
   "inputs": {
    "readings": [
     {
      "well": "B0",
      "role": "blank",
      "concentration": null,
      "value": "0.05"
     },
     {
      "well": "B1",
      "role": "blank",
      "concentration": null,
      "value": "0.05"
     },
     {
      "well": "B2",
      "role": "blank",
      "concentration": null,
      "value": "0.05"
     },
     {
      "well": "T0",
      "role": "time-zero",
      "concentration": null,
      "value": "0.3"
     },
     {
      "well": "T1",
      "role": "time-zero",
      "concentration": null,
      "value": "0.31"
     },
     {
      "well": "U0",
      "role": "untreated",
      "concentration": null,
      "value": "1.2"
     },
     {
      "well": "U1",
      "role": "untreated",
      "concentration": null,
      "value": "1.22"
     },
     {
      "well": "S00",
      "role": "treated",
      "concentration": "1e-8",
      "value": "1.1"
     },
     {
      "well": "S01",
      "role": "treated",
      "concentration": "1e-8",
      "value": "1.12"
     },
     {
      "well": "S10",
      "role": "treated",
      "concentration": "1e-7",
      "value": "0.9"
     },
     {
      "well": "S11",
      "role": "treated",
      "concentration": "1e-7",
      "value": "0.92"
     },
     {
      "well": "S20",
      "role": "treated",
      "concentration": "1e-6",
      "value": "0.6"
     },
     {
      "well": "S21",
      "role": "treated",
      "concentration": "1e-6",
      "value": "0.62"
     },
     {
      "well": "S30",
      "role": "treated",
      "concentration": "1e-5",
      "value": "0.35"
     },
     {
      "well": "S31",
      "role": "treated",
      "concentration": "1e-5",
      "value": "0.33"
     },
     {
      "well": "S40",
      "role": "treated",
      "concentration": "1e-4",
      "value": "0.2"
     },
     {
      "well": "S41",
      "role": "treated",
      "concentration": "1e-4",
      "value": "0.050001"
     }
    ]
   },
   "decision": {
    "smallestWellMinusBlank": "1/1000000"
   },
   "expected": {
    "status": "computed",
    "blank": {
     "mean": 0.05000000000000001,
     "n": 3
    },
    "doublings": 2.1855556531560767,
    "wells": [
     {
      "well": "S00",
      "concentration": 1e-08,
      "gr": 0.9108756489017669
     },
     {
      "well": "S01",
      "concentration": 1e-08,
      "gr": 0.927444164837463
     },
     {
      "well": "S10",
      "concentration": 1e-07,
      "gr": 0.7347741148376721
     },
     {
      "well": "S11",
      "concentration": 1e-07,
      "gr": 0.753332702874016
     },
     {
      "well": "S20",
      "concentration": 1e-06,
      "gr": 0.42147863948144115
     },
     {
      "well": "S21",
      "concentration": 1e-06,
      "gr": 0.44490043746247676
     },
     {
      "well": "S30",
      "concentration": 1e-05,
      "gr": 0.07719502408682932
     },
     {
      "well": "S31",
      "concentration": 1e-05,
      "gr": 0.04372161908394756
     },
     {
      "well": "S40",
      "concentration": 0.0001,
      "gr": -0.215562764801993
     },
     {
      "well": "S41",
      "concentration": 0.0001,
      "gr": -0.9966407680889001
     }
    ],
    "means": [
     {
      "logConcentration": -8.0,
      "meanGr": 0.9191599068696149,
      "n": 2
     },
     {
      "logConcentration": -7.0,
      "meanGr": 0.744053408855844,
      "n": 2
     },
     {
      "logConcentration": -6.0,
      "meanGr": 0.43318953847195896,
      "n": 2
     },
     {
      "logConcentration": -5.0,
      "meanGr": 0.06045832158538844,
      "n": 2
     },
     {
      "logConcentration": -4.0,
      "meanGr": -0.6061017664454466,
      "n": 2
     }
    ],
    "grMax": {
     "value": -0.6061017664454466,
     "n": 2,
     "logConcentration": -4.0
    },
    "grAoc": {
     "value": 0.6514424152186811
    }
   }
  },
  {
   "id": "14",
   "memoCase": 14,
   "engine": "qpcr-welch",
   "about": "Treated −20.1 × 3 (no scatter) against scattered calibrators: the treated variance is exactly 0 and the Welch interval is the calibrators' (df 2), calculated",
   "inputs": {
    "treated": [
     "-20.1",
     "-20.1",
     "-20.1"
    ],
    "calibrator": [
     "-22.0",
     "-22.3",
     "-22.1"
    ]
   },
   "decision": {
    "treatedSpread": "0",
    "calibratorSpread": "3/10"
   },
   "expected": {
    "status": "calculated",
    "level": 0.95,
    "nTreated": 3,
    "nCalibrator": 3,
    "differenceLog2": 2.033333333333335,
    "se": 0.08819171036881981,
    "df": 2.0,
    "t": 4.302652729749462,
    "lowerLog2": 1.6538750299736584,
    "upperLog2": 2.4127916366930116,
    "lowerFold": 3.1467771875190493,
    "upperFold": 5.325037321228715,
    "treatedSdLog2": 0.0,
    "calibratorSdLog2": 0.1527525231651949
   }
  }
 ]
}
