from __future__ import annotations import pytest from schemas.agent.visibility import VisibilityMask, bit_mask def test_visibility_mask_from_bits_and_contains() -> None: mask = VisibilityMask.from_bits(bits=[0, 16, 18]) assert mask.contains(bit=0) is True assert mask.contains(bit=16) is True assert mask.contains(bit=17) is False def test_visibility_mask_rejects_out_of_range_bit() -> None: with pytest.raises(ValueError, match="range"): VisibilityMask.from_bits(bits=[64]) def test_bit_mask_builds_single_bit_integer() -> None: assert bit_mask(bit=0) == 1 assert bit_mask(bit=16) == (1 << 16)