File size: 1,141 Bytes
39867e3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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