import pytest from dimensions import MAX_OUTPUT_DIM, MAX_OUTPUT_DIM_FAST from mode import Mode # --- from_value --- def test_from_value_accepts_known_strings(): assert Mode.from_value("fast") is Mode.FAST assert Mode.from_value("high_detail") is Mode.HIGH_DETAIL @pytest.mark.parametrize("value", ["anything_else", None, "", "FAST"]) def test_from_value_falls_back_to_high_detail(value): assert Mode.from_value(value) is Mode.HIGH_DETAIL def test_from_value_is_idempotent_on_mode_instances(): assert Mode.from_value(Mode.FAST) is Mode.FAST assert Mode.from_value(Mode.HIGH_DETAIL) is Mode.HIGH_DETAIL # --- max_dim --- def test_fast_mode_uses_fast_max_dim(): assert Mode.FAST.max_dim == MAX_OUTPUT_DIM_FAST def test_high_detail_mode_uses_default_max_dim(): assert Mode.HIGH_DETAIL.max_dim == MAX_OUTPUT_DIM # --- offloads_text_encoder_before_decode --- def test_fast_mode_skips_text_encoder_offload(): assert Mode.FAST.offloads_text_encoder_before_decode is False def test_high_detail_mode_keeps_text_encoder_offload(): assert Mode.HIGH_DETAIL.offloads_text_encoder_before_decode is True