[
{ "name": "symmetric ±0.05 mm at 25 mm: 25.030 passes", "args": [25030, 25000, 50, -50], "expect": { "passed": true, "status": "within", "deviation": 30, "lowerLimit": 24950, "upperLimit": 25050, "outBy": 0 } },
{ "name": "exactly on the upper limit passes: limits are inclusive", "args": [25050, 25000, 50, -50], "expect": { "passed": true, "status": "within", "deviation": 50, "lowerLimit": 24950, "upperLimit": 25050, "outBy": 0 } },
{ "name": "one micrometre over the upper limit is a reject", "args": [25051, 25000, 50, -50], "expect": { "passed": false, "status": "above", "deviation": 51, "lowerLimit": 24950, "upperLimit": 25050, "outBy": 1 } },
{ "name": "exactly on the lower limit passes", "args": [24950, 25000, 50, -50], "expect": { "passed": true, "status": "within", "deviation": -50, "lowerLimit": 24950, "upperLimit": 25050, "outBy": 0 } },
{ "name": "under the lower limit is a reject by the distance below it", "args": [24930, 25000, 50, -50], "expect": { "passed": false, "status": "below", "deviation": -70, "lowerLimit": 24950, "upperLimit": 25050, "outBy": 20 } },
{ "name": "a g6 shaft at 25 mm measured at exactly nominal is too big: both limits are below nominal", "args": [25000, 25000, -7, -20], "expect": { "passed": false, "status": "above", "deviation": 0, "lowerLimit": 24980, "upperLimit": 24993, "outBy": 7 } },
{ "name": "a g6 shaft at 24.990 mm is inside 24.980 to 24.993", "args": [24990, 25000, -7, -20], "expect": { "passed": true, "status": "within", "deviation": -10, "lowerLimit": 24980, "upperLimit": 24993, "outBy": 0 } },
{ "name": "an H7 hole at 25 mm: nominal itself is the lower limit and passes", "args": [25000, 25000, 21, 0], "expect": { "passed": true, "status": "within", "deviation": 0, "lowerLimit": 25000, "upperLimit": 25021, "outBy": 0 } },
{ "name": "an H7 hole one micrometre under nominal is a reject", "args": [24999, 25000, 21, 0], "expect": { "passed": false, "status": "below", "deviation": -1, "lowerLimit": 25000, "upperLimit": 25021, "outBy": 1 } },
{ "name": "a zero tolerance accepts only the exact size", "args": [10000, 10000, 0, 0], "expect": { "passed": true, "status": "within", "deviation": 0, "lowerLimit": 10000, "upperLimit": 10000, "outBy": 0 } },
{ "name": "a negative coordinate from a datum, -12.000 mm +0.1/-0.1, measured -12.150", "args": [-12150, -12000, 100, -100], "expect": { "passed": false, "status": "below", "deviation": -150, "lowerLimit": -12100, "upperLimit": -11900, "outBy": 50 } },
{ "name": "a lower deviation above the upper one is an error", "args": [25000, 25000, -20, -7], "expectError": "lowerDeviation must not be greater than upperDeviation" },
{ "name": "a fractional micrometre is an error", "args": [25000.5, 25000, 50, -50], "expectError": "measured must be a whole number of micrometres" },
{ "name": "a size beyond 10^12 micrometres is an error", "args": [25000, 1000000000001, 50, -50], "expectError": "nominal must be a whole number of micrometres within ±10^12" }
]