fcdce12503
Python `position_records:151` 는 `if bv is not None: bvs.append(float(bv.volume_ml))` 으로 nan/0 필터 없이 그대로 추가. nan 발생 시 std/mean 모두 nan → bv_cv=nan 이 되어 `selectCm` tie 정렬에서 +inf 로 취급 (뒷순위). 기존 Kotlin 은 `if (volumeMl.isFinite() && volumeMl > 0)` 필터가 있어 nan/0 케이스에서 Python 과 다른 bv_cv 산출. cm=0 (BV 발산) 처럼 일부 trace 만 이상값일 때 값 오차 발생. Rule A 최종 선택 결과는 동일하지만 line-by-line 대조에서 유일하게 차이나는 지점이라 Python 과 완전 일치하도록 제거. BV null (검출 실패) 은 여전히 skip (Python 도 동일). mean/std 결과가 nan/inf 이면 bvCv=null 로 정규화 (Python nan 표현 = Kotlin null).