Files
rerun-io--rerun/rerun_py/tests/unit/test_optimization_profile.py
2026-07-13 13:05:14 +08:00

34 lines
1.4 KiB
Python

from __future__ import annotations
import dataclasses
from rerun.experimental import OptimizationProfile
def test_optimization_profile_custom() -> None:
"""OptimizationProfile fields are individually overridable."""
p = OptimizationProfile(max_rows=100, extra_passes=3, gop_batching=False, split_size_ratio=10.0)
assert p.max_rows == 100
assert p.extra_passes == 3
assert p.gop_batching is False
assert p.split_size_ratio == 10.0
assert p.max_bytes is None # unchanged from default
def test_optimization_profile_equality() -> None:
"""Dataclass-derived equality: field-by-field comparison."""
assert OptimizationProfile() == OptimizationProfile()
assert OptimizationProfile(extra_passes=10) == OptimizationProfile(extra_passes=10)
assert OptimizationProfile() != OptimizationProfile(gop_batching=False)
def test_replace_works() -> None:
"""`dataclasses.replace` produces a new profile with overridden fields."""
derived = dataclasses.replace(OptimizationProfile.OBJECT_STORE, gop_batching=False)
assert derived.gop_batching is False
# Other fields preserved from OBJECT_STORE
assert derived.max_bytes == OptimizationProfile.OBJECT_STORE.max_bytes
assert derived.max_rows == OptimizationProfile.OBJECT_STORE.max_rows
# Original is untouched
assert OptimizationProfile.OBJECT_STORE.gop_batching is True