""" Tests for engine.display module. """ from engine.display import NullDisplay, TerminalDisplay class TestDisplayProtocol: """Test that display backends satisfy the Display protocol.""" def test_terminal_display_is_display(self): """TerminalDisplay satisfies Display protocol.""" display = TerminalDisplay() assert hasattr(display, "init") assert hasattr(display, "show") assert hasattr(display, "clear") assert hasattr(display, "cleanup") def test_null_display_is_display(self): """NullDisplay satisfies Display protocol.""" display = NullDisplay() assert hasattr(display, "init") assert hasattr(display, "show") assert hasattr(display, "clear") assert hasattr(display, "cleanup") class TestTerminalDisplay: """Tests for TerminalDisplay class.""" def test_init_sets_dimensions(self): """init stores terminal dimensions.""" display = TerminalDisplay() display.init(80, 24) assert display.width == 80 assert display.height == 24 def test_show_returns_none(self): """show returns None after writing to stdout.""" display = TerminalDisplay() display.width = 80 display.height = 24 display.show(["line1", "line2"]) def test_clear_does_not_error(self): """clear works without error.""" display = TerminalDisplay() display.clear() def test_cleanup_does_not_error(self): """cleanup works without error.""" display = TerminalDisplay() display.cleanup() class TestNullDisplay: """Tests for NullDisplay class.""" def test_init_stores_dimensions(self): """init stores dimensions.""" display = NullDisplay() display.init(100, 50) assert display.width == 100 assert display.height == 50 def test_show_does_nothing(self): """show discards buffer without error.""" display = NullDisplay() display.show(["line1", "line2", "line3"]) def test_clear_does_nothing(self): """clear does nothing.""" display = NullDisplay() display.clear() def test_cleanup_does_nothing(self): """cleanup does nothing.""" display = NullDisplay() display.cleanup()