forked from genewildish/Mainline
- Add Camera class with modes: vertical, horizontal, omni, floating - Refactor scroll.py and demo to use Camera abstraction - Add vis_offset for horizontal scrolling support - Add camera_x to EffectContext for effects - Add pygame window resize handling - Add HUD effect plugin for demo mode - Add --demo flag to run demo mode - Add tests for Camera and vis_offset
33 lines
880 B
Python
33 lines
880 B
Python
|
|
from engine.effects.legacy import vis_offset, vis_trunc
|
|
|
|
|
|
def test_vis_offset_no_change():
|
|
"""vis_offset with offset 0 returns original."""
|
|
result = vis_offset("hello", 0)
|
|
assert result == "hello"
|
|
|
|
|
|
def test_vis_offset_trims_start():
|
|
"""vis_offset skips first N characters."""
|
|
result = vis_offset("hello world", 6)
|
|
assert result == "world"
|
|
|
|
|
|
def test_vis_offset_handles_ansi():
|
|
"""vis_offset handles ANSI codes correctly."""
|
|
result = vis_offset("\033[31mhello\033[0m", 3)
|
|
assert result == "lo\x1b[0m" or "lo" in result
|
|
|
|
|
|
def test_vis_offset_greater_than_length():
|
|
"""vis_offset with offset > length returns empty-ish."""
|
|
result = vis_offset("hi", 10)
|
|
assert result == ""
|
|
|
|
|
|
def test_vis_trunc_still_works():
|
|
"""Ensure vis_trunc still works after changes."""
|
|
result = vis_trunc("hello world", 5)
|
|
assert result == "hello"
|