feat: subtitle-ocr 进度日志增加预计剩余时间 ETA
- 进度日志追加"预计剩余 X分Y秒"(剩余帧/当前速度,速度未知时不显示)
This commit is contained in:
@@ -539,3 +539,29 @@ def test_ocr_interrupts_on_pause_flag(monkeypatch, tmp_path) -> None:
|
||||
assert "暂停" in (response.error or "")
|
||||
assert calls == [] # 一帧都没有真正 OCR。
|
||||
assert not (out_dir / "ocr_partial.jsonl").exists() # 未处理帧不入存档。
|
||||
|
||||
|
||||
def test_format_eta() -> None:
|
||||
"""预计剩余时间的格式化:秒/分/小时三种量级与边界值。"""
|
||||
from nodes.subtitle_ocr import _format_eta
|
||||
|
||||
assert _format_eta(0) == "0秒"
|
||||
assert _format_eta(59.9) == "59秒" # 不足 1 分只显示秒。
|
||||
assert _format_eta(61) == "1分01秒"
|
||||
assert _format_eta(2058.4) == "34分18秒"
|
||||
assert _format_eta(3600) == "1小时00分" # 1 小时整。
|
||||
assert _format_eta(3725) == "1小时02分" # 超过 1 小时只显示到分钟。
|
||||
assert _format_eta(-5) == "0秒" # 负数钳制为 0。
|
||||
|
||||
|
||||
def test_eta_suffix() -> None:
|
||||
"""进度日志的 ETA 后缀:速度为 0 不显示,速度正常时按剩余帧估算。"""
|
||||
from nodes.subtitle_ocr import _eta_suffix
|
||||
|
||||
# 速率未知(0/负)→ 不显示 ETA。
|
||||
assert _eta_suffix(done=100, total=100, rate=0) == ""
|
||||
assert _eta_suffix(done=100, total=100, rate=-1) == ""
|
||||
# 2673/22222 帧、9.5 帧/s:剩余 (22222-2673)/9.5 ≈ 2057.8s ≈ 34分。
|
||||
assert _eta_suffix(done=2673, total=22222, rate=9.5) == ", 预计剩余 34分17秒"
|
||||
# 全部完成时剩余 0 秒。
|
||||
assert _eta_suffix(done=22222, total=22222, rate=9.5) == ", 预计剩余 0秒"
|
||||
|
||||
Reference in New Issue
Block a user