{
 "about": "The 2 µL bench rule: strictly below the minimum is flagged; exactly the minimum is not; not-finite volumes are not flagged. Decided in exact rational arithmetic on the decimal input; `volumeL` is the exact volume in litres.",
 "oracle": {
  "name": "Python fractions",
  "version": "Python 3.13.16 fractions",
  "script": "pipeline/lab-calculators/pipette_rule_reference.py",
  "scriptSha256": "f0ae1268fa83638c49efa6fbc02b6556bead873d81f5b6af3b953179962684d3",
  "command": "python3 pipeline/lab-calculators/pipette_rule_reference.py"
 },
 "method": "pipette-minimum-2ul@1.0.0",
 "minimumL": "1/500000",
 "tolerance": "exact: each flag",
 "recordedOn": "2026-10-21",
 "count": 18,
 "flagged": 8,
 "cases": [
  {
   "name": "exactly-2-ul",
   "about": "Exactly 2 µL is not flagged",
   "input": {
    "volume": {
     "value": "2",
     "unit": "µL"
    }
   },
   "expected": {
    "flagged": false,
    "volumeL": "1/500000"
   }
  },
  {
   "name": "just-below",
   "about": "1.9999 µL is flagged, though it displays as 2.00",
   "input": {
    "volume": {
     "value": "1.9999",
     "unit": "µL"
    }
   },
   "expected": {
    "flagged": true,
    "volumeL": "19999/10000000000"
   }
  },
  {
   "name": "just-above",
   "about": "2.0001 µL is not flagged",
   "input": {
    "volume": {
     "value": "2.0001",
     "unit": "µL"
    }
   },
   "expected": {
    "flagged": false,
    "volumeL": "20001/10000000000"
   }
  },
  {
   "name": "tiny-below",
   "about": "2 µL less 1e-9 µL is flagged",
   "input": {
    "volume": {
     "value": "1.999999999",
     "unit": "µL"
    }
   },
   "expected": {
    "flagged": true,
    "volumeL": "1999999999/1000000000000000"
   }
  },
  {
   "name": "tiny-above",
   "about": "2 µL plus 1e-9 µL is not flagged",
   "input": {
    "volume": {
     "value": "2.000000001",
     "unit": "µL"
    }
   },
   "expected": {
    "flagged": false,
    "volumeL": "2000000001/1000000000000000"
   }
  },
  {
   "name": "in-litres",
   "about": "0.000002 L, the same 2 µL, is not flagged",
   "input": {
    "volume": {
     "value": "0.000002",
     "unit": "L"
    }
   },
   "expected": {
    "flagged": false,
    "volumeL": "1/500000"
   }
  },
  {
   "name": "in-millilitres",
   "about": "0.0019 mL (1.9 µL) is flagged",
   "input": {
    "volume": {
     "value": "0.0019",
     "unit": "mL"
    }
   },
   "expected": {
    "flagged": true,
    "volumeL": "19/10000000"
   }
  },
  {
   "name": "in-nanolitres-equal",
   "about": "2000 nL (2 µL) is not flagged",
   "input": {
    "volume": {
     "value": "2000",
     "unit": "nL"
    }
   },
   "expected": {
    "flagged": false,
    "volumeL": "1/500000"
   }
  },
  {
   "name": "in-nanolitres-below",
   "about": "1999 nL is flagged",
   "input": {
    "volume": {
     "value": "1999",
     "unit": "nL"
    }
   },
   "expected": {
    "flagged": true,
    "volumeL": "1999/1000000000"
   }
  },
  {
   "name": "one-ul",
   "about": "1 µL is flagged",
   "input": {
    "volume": {
     "value": "1",
     "unit": "µL"
    }
   },
   "expected": {
    "flagged": true,
    "volumeL": "1/1000000"
   }
  },
  {
   "name": "large",
   "about": "100 µL is not flagged",
   "input": {
    "volume": {
     "value": "100",
     "unit": "µL"
    }
   },
   "expected": {
    "flagged": false,
    "volumeL": "1/10000"
   }
  },
  {
   "name": "zero",
   "about": "A zero transfer is below the minimum",
   "input": {
    "volume": {
     "value": "0",
     "unit": "µL"
    }
   },
   "expected": {
    "flagged": true,
    "volumeL": "0/1"
   }
  },
  {
   "name": "negative",
   "about": "A negative volume is below the minimum",
   "input": {
    "volume": {
     "value": "-1",
     "unit": "µL"
    }
   },
   "expected": {
    "flagged": true,
    "volumeL": "-1/1000000"
   }
  },
  {
   "name": "other-minimum-equal",
   "about": "With a 5 µL minimum, exactly 5 µL is not flagged",
   "input": {
    "volume": {
     "value": "5",
     "unit": "µL"
    },
    "minimum": {
     "value": "5",
     "unit": "µL"
    }
   },
   "expected": {
    "flagged": false,
    "volumeL": "1/200000"
   }
  },
  {
   "name": "other-minimum-below",
   "about": "With a 5 µL minimum, 4.9 µL is flagged",
   "input": {
    "volume": {
     "value": "4.9",
     "unit": "µL"
    },
    "minimum": {
     "value": "5",
     "unit": "µL"
    }
   },
   "expected": {
    "flagged": true,
    "volumeL": "49/10000000"
   }
  },
  {
   "name": "other-minimum-above-default",
   "about": "With a 0.5 µL minimum, 1 µL is not flagged",
   "input": {
    "volume": {
     "value": "1",
     "unit": "µL"
    },
    "minimum": {
     "value": "0.5",
     "unit": "µL"
    }
   },
   "expected": {
    "flagged": false,
    "volumeL": "1/1000000"
   }
  },
  {
   "name": "nan",
   "about": "A volume that is not a number is not flagged",
   "input": {
    "volume": {
     "value": "NaN",
     "unit": "L"
    }
   },
   "expected": {
    "flagged": false
   }
  },
  {
   "name": "infinity",
   "about": "An infinite volume is not flagged",
   "input": {
    "volume": {
     "value": "Infinity",
     "unit": "L"
    }
   },
   "expected": {
    "flagged": false
   }
  }
 ]
}
