code: def test_layout_class():
      c1 = BufferControl()
      c2 = BufferControl()
      c3 = BufferControl()
      win1 = Window(content=c1)
      win2 = Window(content=c2)
      win3 = Window(content=c3)
  
      layout = Layout(container=VSplit([HSplit([win1, win2]), win3]))
  
      # Listing of windows/controls.
      assert list(layout.find_all_windows()) == [win1, win2, win3]
      assert list(layout.find_all_controls()) == [c1, c2, c3]
  
      # Focusing something.
      layout.focus(c1)
      assert layout.has_focus(c1)
      assert layout.has_focus(win1)
      assert layout.current_control == c1
      assert layout.previous_control == c1
  
      layout.focus(c2)
      assert layout.has_focus(c2)
      assert layout.has_focus(win2)
      assert layout.current_control == c2
      assert layout.previous_control == c1
  
      layout.focus(win3)
      assert layout.has_focus(c3)
      assert layout.has_focus(win3)
      assert layout.current_control == c3
      assert layout.previous_control == c2
  
      # Pop focus. This should focus the previous control again.
      layout.focus_last()
      assert layout.has_focus(c2)
      assert layout.has_focus(win2)
      assert layout.current_control == c2
      assert layout.previous_control == c1
  
imports: from __future__ import annotations
  import pytest
  from prompt_toolkit.layout import InvalidLayoutError, Layout
  from prompt_toolkit.layout.containers import HSplit, VSplit, Window
  from prompt_toolkit.layout.controls import BufferControl
label_desc: Use image node_id 1 for calling a global function with example usage: test_layout_class() without return types