Hit:1 http://deb.debian.org/debian bookworm InRelease
Get:2 http://deb.debian.org/debian bookworm-updates InRelease [55.4 kB]
Hit:3 http://deb.debian.org/debian-security bookworm-security InRelease
Fetched 55.4 kB in 1s (37.1 kB/s)
Reading package lists...
Reading package lists...
Building dependency tree...
Reading state information...
The following additional packages will be installed:
  libbrotli1 libcurl4 libldap-2.5-0 libldap-common libnghttp2-14 libpsl5
  librtmp1 libsasl2-2 libsasl2-modules libsasl2-modules-db libssh2-1
  publicsuffix
Suggested packages:
  libsasl2-modules-gssapi-mit | libsasl2-modules-gssapi-heimdal
  libsasl2-modules-ldap libsasl2-modules-otp libsasl2-modules-sql
The following NEW packages will be installed:
  curl libbrotli1 libcurl4 libldap-2.5-0 libldap-common libnghttp2-14 libpsl5
  librtmp1 libsasl2-2 libsasl2-modules libsasl2-modules-db libssh2-1
  publicsuffix
0 upgraded, 13 newly installed, 0 to remove and 0 not upgraded.
Need to get 1839 kB of archives.
After this operation, 4550 kB of additional disk space will be used.
Get:1 http://deb.debian.org/debian bookworm/main amd64 libbrotli1 amd64 1.0.9-2+b6 [275 kB]
Get:2 http://deb.debian.org/debian bookworm/main amd64 libsasl2-modules-db amd64 2.1.28+dfsg-10 [20.3 kB]
Get:3 http://deb.debian.org/debian bookworm/main amd64 libsasl2-2 amd64 2.1.28+dfsg-10 [59.7 kB]
Get:4 http://deb.debian.org/debian bookworm/main amd64 libldap-2.5-0 amd64 2.5.13+dfsg-5 [183 kB]
Get:5 http://deb.debian.org/debian bookworm/main amd64 libnghttp2-14 amd64 1.52.0-1+deb12u2 [73.0 kB]
Get:6 http://deb.debian.org/debian bookworm/main amd64 libpsl5 amd64 0.21.2-1 [58.7 kB]
Get:7 http://deb.debian.org/debian bookworm/main amd64 librtmp1 amd64 2.4+20151223.gitfa8646d.1-2+b2 [60.8 kB]
Get:8 http://deb.debian.org/debian bookworm/main amd64 libssh2-1 amd64 1.10.0-3+b1 [179 kB]
Get:9 http://deb.debian.org/debian bookworm/main amd64 libcurl4 amd64 7.88.1-10+deb12u14 [392 kB]
Get:10 http://deb.debian.org/debian bookworm/main amd64 curl amd64 7.88.1-10+deb12u14 [316 kB]
Get:11 http://deb.debian.org/debian bookworm/main amd64 libldap-common all 2.5.13+dfsg-5 [29.3 kB]
Get:12 http://deb.debian.org/debian bookworm/main amd64 libsasl2-modules amd64 2.1.28+dfsg-10 [66.6 kB]
Get:13 http://deb.debian.org/debian bookworm/main amd64 publicsuffix all 20230209.2326-1 [126 kB]
Fetched 1839 kB in 6s (284 kB/s)
Selecting previously unselected package libbrotli1:amd64.
(Reading database ... 
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 7598 files and directories currently installed.)
Preparing to unpack .../00-libbrotli1_1.0.9-2+b6_amd64.deb ...
Unpacking libbrotli1:amd64 (1.0.9-2+b6) ...
Selecting previously unselected package libsasl2-modules-db:amd64.
Preparing to unpack .../01-libsasl2-modules-db_2.1.28+dfsg-10_amd64.deb ...
Unpacking libsasl2-modules-db:amd64 (2.1.28+dfsg-10) ...
Selecting previously unselected package libsasl2-2:amd64.
Preparing to unpack .../02-libsasl2-2_2.1.28+dfsg-10_amd64.deb ...
Unpacking libsasl2-2:amd64 (2.1.28+dfsg-10) ...
Selecting previously unselected package libldap-2.5-0:amd64.
Preparing to unpack .../03-libldap-2.5-0_2.5.13+dfsg-5_amd64.deb ...
Unpacking libldap-2.5-0:amd64 (2.5.13+dfsg-5) ...
Selecting previously unselected package libnghttp2-14:amd64.
Preparing to unpack .../04-libnghttp2-14_1.52.0-1+deb12u2_amd64.deb ...
Unpacking libnghttp2-14:amd64 (1.52.0-1+deb12u2) ...
Selecting previously unselected package libpsl5:amd64.
Preparing to unpack .../05-libpsl5_0.21.2-1_amd64.deb ...
Unpacking libpsl5:amd64 (0.21.2-1) ...
Selecting previously unselected package librtmp1:amd64.
Preparing to unpack .../06-librtmp1_2.4+20151223.gitfa8646d.1-2+b2_amd64.deb ...
Unpacking librtmp1:amd64 (2.4+20151223.gitfa8646d.1-2+b2) ...
Selecting previously unselected package libssh2-1:amd64.
Preparing to unpack .../07-libssh2-1_1.10.0-3+b1_amd64.deb ...
Unpacking libssh2-1:amd64 (1.10.0-3+b1) ...
Selecting previously unselected package libcurl4:amd64.
Preparing to unpack .../08-libcurl4_7.88.1-10+deb12u14_amd64.deb ...
Unpacking libcurl4:amd64 (7.88.1-10+deb12u14) ...
Selecting previously unselected package curl.
Preparing to unpack .../09-curl_7.88.1-10+deb12u14_amd64.deb ...
Unpacking curl (7.88.1-10+deb12u14) ...
Selecting previously unselected package libldap-common.
Preparing to unpack .../10-libldap-common_2.5.13+dfsg-5_all.deb ...
Unpacking libldap-common (2.5.13+dfsg-5) ...
Selecting previously unselected package libsasl2-modules:amd64.
Preparing to unpack .../11-libsasl2-modules_2.1.28+dfsg-10_amd64.deb ...
Unpacking libsasl2-modules:amd64 (2.1.28+dfsg-10) ...
Selecting previously unselected package publicsuffix.
Preparing to unpack .../12-publicsuffix_20230209.2326-1_all.deb ...
Unpacking publicsuffix (20230209.2326-1) ...
Setting up libpsl5:amd64 (0.21.2-1) ...
Setting up libbrotli1:amd64 (1.0.9-2+b6) ...
Setting up libsasl2-modules:amd64 (2.1.28+dfsg-10) ...
Setting up libnghttp2-14:amd64 (1.52.0-1+deb12u2) ...
Setting up libldap-common (2.5.13+dfsg-5) ...
Setting up libsasl2-modules-db:amd64 (2.1.28+dfsg-10) ...
Setting up librtmp1:amd64 (2.4+20151223.gitfa8646d.1-2+b2) ...
Setting up libsasl2-2:amd64 (2.1.28+dfsg-10) ...
Setting up libssh2-1:amd64 (1.10.0-3+b1) ...
Setting up publicsuffix (20230209.2326-1) ...
Setting up libldap-2.5-0:amd64 (2.5.13+dfsg-5) ...
Setting up libcurl4:amd64 (7.88.1-10+deb12u14) ...
Setting up curl (7.88.1-10+deb12u14) ...
Processing triggers for libc-bin (2.36-9+deb12u13) ...
no checksums to verify
installing to /root/.local/bin
  uv
  uvx
everything's installed!

To add $HOME/.local/bin to your PATH, either restart your shell or run:

    source $HOME/.local/bin/env (sh, bash, zsh)
    source $HOME/.local/bin/env.fish (fish)
============================= test session starts ==============================
platform linux -- Python 3.13.11, pytest-8.4.1, pluggy-1.6.0
rootdir: /tests
plugins: json-ctrf-0.3.5
collected 2 items

../tests/test_outputs.py FF                                              [100%]

=================================== FAILURES ===================================
________________________ test_termzip_ansi_public_input ________________________

    def test_termzip_ansi_public_input():
>       verify_case(Path("/app/frames.tza"))

/tests/test_outputs.py:431: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

tza_path = PosixPath('/app/frames.tza')

    def verify_case(tza_path: Path) -> None:
        tza = read_tza(tza_path)
        out = run_encoder(tza_path)
    
        if len(out) > tza.max_bytes:
>           raise AssertionError(f"output too large: {len(out)} bytes > budget {tza.max_bytes}")
E           AssertionError: output too large: 267610 bytes > budget 69000

/tests/test_outputs.py:415: AssertionError
_____________________ test_termzip_ansi_additional_inputs ______________________

    def test_termzip_ansi_additional_inputs():
        # Additional cases to discourage hardcoding.
        with tempfile.TemporaryDirectory() as td:
            td_path = Path(td)
    
            cases: list[dict[str, object]] = [
                {
                    "profile": "dual",
                    "width": 80,
                    "height": 24,
                    "n_frames": 900,
                    "seed": 2026,
                    "a_scroll_every": 3,
                    "b_scroll_every": 5,
                    "a_shift2_every": 23,
                    "b_glitch_every": 37,
                    "budget": 61000,
                },
                {
                    "profile": "dual",
                    "width": 70,
                    "height": 21,
                    "n_frames": 700,
                    "seed": 9001,
                    "a_scroll_every": 4,
                    "b_scroll_every": 6,
                    "a_shift2_every": 17,
                    "b_glitch_every": 29,
                    "budget": 42000,
                },
                {
                    "profile": "single",
                    "width": 64,
                    "height": 20,
                    "n_frames": 900,
                    "seed": 4242,
                    "log_every": 4,
                    "budget": 38500,
                },
            ]
    
            for idx, case in enumerate(cases):
                w = int(case["width"])
                h = int(case["height"])
                n = int(case["n_frames"])
                seed = int(case["seed"])
                profile = str(case["profile"])
                budget = int(case["budget"])
                log_every = case.get("log_every", None)
    
                kwargs: dict[str, object] = dict(
                    width=w,
                    height=h,
                    n_frames=n,
                    seed=seed,
                    profile=profile,
                )
                if isinstance(log_every, int):
                    kwargs["log_every"] = log_every
                for k in ("a_scroll_every", "b_scroll_every", "a_shift2_every", "b_glitch_every"):
                    if k in case:
                        kwargs[k] = int(case[k])
    
                frames = generate_frames(**kwargs)
                path = td_path / f"case_{idx}.tza"
                write_tza(path, width=w, height=h, frames=frames, max_bytes=budget)
>               verify_case(path)

/tests/test_outputs.py:500: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

tza_path = PosixPath('/tmp/tmpedrqo44x/case_0.tza')

    def verify_case(tza_path: Path) -> None:
        tza = read_tza(tza_path)
        out = run_encoder(tza_path)
    
        if len(out) > tza.max_bytes:
>           raise AssertionError(f"output too large: {len(out)} bytes > budget {tza.max_bytes}")
E           AssertionError: output too large: 260940 bytes > budget 61000

/tests/test_outputs.py:415: AssertionError
=========================== short test summary info ============================
FAILED ../tests/test_outputs.py::test_termzip_ansi_public_input - AssertionEr...
FAILED ../tests/test_outputs.py::test_termzip_ansi_additional_inputs - Assert...
============================== 2 failed in 0.33s ===============================
