{
  "modelVersion": "1.0.0",
  "classification": "synthetic verification; no empirical hardware or user study",
  "tests": {
    "passed": 17,
    "failed": 0,
    "names": [
      "default: exact result and six-greedy comparator",
      "zero capacity: cannot guarantee base service",
      "reserve deficit: zero tasks and explicit infeasibility",
      "empty task list: feasible base service only",
      "ample energy: fast EDF ties exact optimum",
      "output limit: all task modes rejected",
      "base load exceeds output limit: guarantee impossible",
      "zero horizon: no positive-duration task may run",
      "exact energy/deadline/power boundaries: task accepted",
      "slightly insufficient energy: task rejected",
      "slightly insufficient deadline: task rejected",
      "slightly insufficient output power: task rejected",
      "inputs remain unchanged and output is deterministic",
      "invalid ranges, duplicate IDs and zero duration rejected",
      "EDD exact solver matches independent all-order oracle in 32 four-task samples",
      "256 synthetic six-task scenarios: every output feasible; exact never worse than any feasible greedy",
      "SOC sweep: feasibility and optimal utility nondecreasing as only energy increases"
    ],
    "oracleSamples": 32,
    "oracleTasksPerSample": 4
  },
  "default": {
    "optimalUtility": 33.7,
    "bestGreedyUtility": 30,
    "utilityGain": 3.700000000000003,
    "gainPct": 12.333333333333343,
    "selectedTasks": 5,
    "energyWh": 11.733333333333334,
    "finishMin": 51
  },
  "syntheticBenchmark": {
    "seed": 18362026,
    "samples": 256,
    "taskCount": 6,
    "noOutcomeBasedFiltering": true,
    "generator": "32-bit LCG: state = (1664525 * state + 1013904223) mod 2^32; uniform integer ranges",
    "inputRanges": {
      "capacityWh": [
        40,
        180
      ],
      "socPct": [
        10,
        100
      ],
      "sohPct": [
        70,
        100
      ],
      "etaPct": [
        75,
        95
      ],
      "tempFactorPct": [
        50,
        100
      ],
      "baseW": [
        4,
        16
      ],
      "guaranteeMin": [
        30,
        90
      ],
      "shutdownWh": [
        1,
        4
      ],
      "maxOutputW": [
        20,
        70
      ]
    },
    "taskRanges": {
      "fastDurationMin": [
        3,
        12
      ],
      "fastExtraW": [
        20,
        44
      ],
      "fastQuality": 1,
      "ecoDurationMultiplier": [
        1.2,
        2
      ],
      "ecoDurationRoundedUp": true,
      "ecoExtraW": [
        6,
        16
      ],
      "ecoQuality": [
        0.65,
        0.95
      ],
      "value": [
        1,
        12
      ],
      "deadlineMin": "[12, horizon]"
    },
    "guaranteeFeasible": 210,
    "guaranteeInfeasible": 46,
    "exactBetterThanBestGreedy": 19,
    "exactTiedBestGreedy": 191,
    "percentDenominatorPositiveCount": 203,
    "medianGainPctWhenDenominatorPositive": 0,
    "meanGainPctWhenDenominatorPositive": 0.4711015806514184,
    "maximumGainPctWhenDenominatorPositive": 18.00870511425462,
    "exactInferiorToFeasibleGreedy": 0,
    "interpretation": "These results verify the implementation within artificial, uncalibrated ranges. They do not estimate real-world gains, sodium battery superiority or AI answer quality."
  }
}
