code: def test_recursive_add(self):
      st = time.perf_counter()
      a = Tensor([1, 2, 3, 4])
      for _ in range(24):
          a = a + a
      sched = create_schedule([a.lazydata], None)
      ji = lower_schedule_item(sched[-1])
      self.assertLess(time.perf_counter() - st, 1.0)
      assert (
          isinstance(ji, InterpretedASTRunner)
          or len(ji.prg.splitlines()) < 250
      )
  
file_path: tinygrad/test/test_fusion_op.py
imports: import unittest
  import time
  import numpy
  from tinygrad import Tensor, dtypes
  from tinygrad.device import InterpretedASTRunner
  from tinygrad.lazy import create_schedule
  from tinygrad.realize import run_schedule, lower_schedule_item
label_desc: Use image node_id 3 for calling the TestFusionOp obj's underlying member method code with example usage: obj.test_recursive_add() without return types