code: def display(self):
      if not self._run:
          self.time()
      self.ratio = self.times[0] / self.times[1]
      title = self.model_name + " timing"
      print("\n" + title)
      print("-" * len(title))
      print(self.first_name + ": " + f"{1000 * self.times[0]:0.3f} ms")
      print(self.second_name + ": " + f"{1000 * self.times[1]:0.3f} ms")
      if self.ratio < 1:
          print(
              "{} is {:0.1f}% faster".format(
                  self.first_name, 100 * (1 / self.ratio - 1)
              )
          )
      else:
          print(
              f"{self.second_name} is {100 * (self.ratio - 1):0.1f}% faster"
          )
      print(
          self.first_name
          + "/"
          + self.second_name
          + f" Ratio: {self.ratio:0.3f}\n"
      )
  
imports: import os
  import pickle
  import timeit
  import types
  import numpy
  from numpy.random import RandomState
  from numpy.testing import assert_allclose, assert_almost_equal
  import pytest
  from scipy.special import gamma
  import arch.univariate.recursions_python
  from arch.univariate.volatility import RiskMetrics2006
label_desc: Use image node_id 2 for calling the Timer obj's underlying member method code with example usage: obj.display() without return types