code: def test_roundtrip(self, ftype, frac_vals, exp_vals):
      for frac, exp in zip(frac_vals, exp_vals):
          f = np.ldexp(ftype(frac), exp)
          assert f.dtype == ftype
          n, d = f.as_integer_ratio()
  
          try:
              nf = np.longdouble(n)
              df = np.longdouble(d)
              if not np.isfinite(df):
                  raise OverflowError
          except (OverflowError, RuntimeWarning):
              # the values may not fit in any float type
              pytest.skip("longdouble too small on this platform")
  
          assert_equal(nf / df, f, "{}/{}".format(n, d))
  
imports: import fractions
  import platform
  import types
  from typing import Any, Type
  import pytest
  import numpy
  from numpy._core import sctypes
  from numpy.testing import assert_equal, assert_raises, IS_MUSL
label_desc: Use image node_id 5 for calling the TestAsIntegerRatio obj's underlying member method code with example usage: obj.test_roundtrip(ftype, frac_vals, exp_vals) without return types