code: def test_garage(self):
      initial = [1, 2, 3, 0, 4]
      final = [0, 3, 2, 1, 4]
      steps, seq = garage(initial, final)
  
      self.assertEqual(steps, 4)
      self.assertListEqual(
          seq,
          [
              [0, 2, 3, 1, 4],
              [2, 0, 3, 1, 4],
              [2, 3, 0, 1, 4],
              [0, 3, 2, 1, 4],
          ],
      )
  
imports: from algorithms.arrays import delete_nth, delete_nth_naive, flatten_iter, flatten, garage, josephus, longest_non_repeat_v1, longest_non_repeat_v2, get_longest_non_repeat_v1, get_longest_non_repeat_v2, Interval, merge_intervals, missing_ranges, move_zeros, plus_one_v1, plus_one_v2, plus_one_v3, rotate_v1, rotate_v2, rotate_v3, summarize_ranges, three_sum, two_sum, max_ones_index, trimmean, top_1, limit, n_sum
  import unittest
label_desc: Use image node_id 1 for calling the TestGarage obj's underlying member method code with example usage: obj.test_garage() without return types