code: def test_karatsuba(self):
      digits = list(range(1, 5)) + list(
          range(KARATSUBA_CUTOFF, KARATSUBA_CUTOFF + 10)
      )
      digits.extend([KARATSUBA_CUTOFF * 10, KARATSUBA_CUTOFF * 100])
  
      bits = [digit * SHIFT for digit in digits]
  
      # Test products of long strings of 1 bits -- (2**x-1)*(2**y-1) ==
      # 2**(x+y) - 2**x - 2**y + 1, so the proper result is easy to check.
      for abits in bits:
          a = (1 << abits) - 1
          for bbits in bits:
              if bbits < abits:
                  continue
              with self.subTest(abits=abits, bbits=bbits):
                  b = (1 << bbits) - 1
                  x = a * b
                  y = (
                      (1 << (abits + bbits))
                      - (1 << abits)
                      - (1 << bbits)
                      + 1
                  )
                  self.assertEqual(x, y)
  
imports: import unittest
  from test import support
  import sys
  import random
  import math
  import array
label_desc: Use image node_id 5 for calling the LongTest obj's underlying member method code with example usage: obj.test_karatsuba() without return types