import unittest


def max_nested(L:list) -> 'int or None':
  """ REQ : L is a (possibly-nested) list of integers
  Returns the largest integer in L, or None if L has no integers in it.
  """
  if len(L) == 0:
    return None
  maxes_of_parts = []
  for x in L:
    if isinstance(x,int):
      maxes_of_parts.append(x)
    else:
      y = max_nested(x)
      if y is not None:
        maxes_of_parts.append(y)
  return max(maxes_of_parts)
  
class test_max_nested(unittest.TestCase):
  # The function max_nested has a bug (which can be triggered by a small
  # input). See if you can write unit tests with coverage good enough 
  # to uncover it.
  
  def test_typical(self):
    self.assertEqual(max_nested([9,2,[[3,4],[10]]]), 10)
    
  
if __name__ == '__main__':
  unittest.main(exit=False, verbosity=2)  

    