code: def testFitInto(self):
      layout = Layout([(-2, 0), (-2, -2), (0, -2), (0, 0)])
      layout.fit_into(BoundingBox(5, 5, 8, 10), keep_aspect_ratio=False)
      self.assertEqual(
          layout.coords, [[5, 10], [5, 5], [8, 5], [8, 10]]
      )
      layout = Layout([(-2, 0), (-2, -2), (0, -2), (0, 0)])
      layout.fit_into(BoundingBox(5, 5, 8, 10))
      self.assertEqual(layout.coords, [[5, 9], [5, 6], [8, 6], [8, 9]])
  
      layout = Layout(
          [(-1, -1, -1), (0, 0, 0), (1, 1, 1), (2, 2, 0), (3, 3, -1)]
      )
      layout.fit_into((0, 0, 0, 8, 8, 4))
      self.assertEqual(
          layout.coords,
          [[0, 0, 0], [2, 2, 2], [4, 4, 4], [6, 6, 2], [8, 8, 0]],
      )
  
      layout = Layout([])
      layout.fit_into((6, 7, 8, 11))
      self.assertEqual(layout.coords, [])
  
imports: import unittest
  from math import hypot
  from igraph import Graph, Layout, BoundingBox, InternalError
  from igraph import umap_compute_weights
label_desc: Use image node_id 9 for calling the LayoutTests obj's underlying member method code with example usage: obj.testFitInto() without return types