fit_tr_val's train_test_split had no random_state, so val_split=float
picked a different split every run; occasionally the split produced a
posterior distribution that made abstention's temperature-scaling
L-BFGS optimizer diverge to NaN. Threaded random_state through the
base class and all four calibrator subclasses, and pinned the test to
a seed confirmed stable across repeated runs.
- Add smoke tests covering data/reader.py, method/_threshold_optim.py,
classification/calibration.py, method/confidence.py, and the pure-numpy
helpers in method/_bayesian.py (skipping the jax/stan-dependent model
code itself, consistent with how the aggregative-method registry already
treats it as optional)
- SVMperf: stop creating a tempfile.TemporaryDirectory() just to discard it
immediately for its .name; generate the path directly instead of doing a
pointless create/delete/recreate cycle (cleanup already happens via the
class's own __del__)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>