





from unittest.mock import Mock, patch

from file_transfer.send_file import send_file

@patch('socket.socket'      )
@patch('builtins.open'      )
def     a_       (					lowerCAmelCase_ :     List[str],      lowerCAmelCase_ :     str      ):
   # ===== initialization =====
   __lowerCAmelCase				      =      Mock()
   __lowerCAmelCase				      =      conn, Mock()
   __lowerCAmelCase				      =      iter([1, None]      )
   __lowerCAmelCase				      =      lambda lowerCAmelCase_      : next(lowerCAmelCase_      )

   # ===== invoke =====
   send_file(filename='mytext.txt',      testing=lowerCAmelCase_      )

   # ===== ensurance =====
   sock.assert_called_once()
   sock.return_value.bind.assert_called_once()
   sock.return_value.listen.assert_called_once()
   sock.return_value.accept.assert_called_once()
   conn.recv.assert_called_once()

   file.return_value.__enter__.assert_called_once()
   file.return_value.__enter__.return_value.read.assert_called()

   conn.send.assert_called_once()
   conn.close.assert_called_once()
   sock.return_value.shutdown.assert_called_once()
   sock.return_value.close.assert_called_once()




'''simple docstring'''

def 					__UpperCamelCase				(						lowercase__    :	int			):






     '''simple docstring'''





     if upper_limit < 0:
          raise ValueError('Limit for the Catalan sequence must be ≥ 0'			)

     __lowercase      		=[0] * (upper_limit + 1)

     # Base case: C(0) = C(1) = 1
     __lowercase      		=1
     if upper_limit > 0:
          __lowercase      		=1

     # Recurrence relation: C(i) = sum(C(j).C(i-j-1)), from j = 0 to i
     for i in range(2,       upper_limit + 1			):
          for j in range(lowercase__			):
               catalan_list[i] += catalan_list[j] * catalan_list[i - j - 1]

     return catalan_list


if __name__ == "__main__":
       print('''\n********* Catalan Numbers Using Dynamic Programming ************\n''')
       print('''\n*** Enter -1 at any time to quit ***''')
       print('''\nEnter the upper limit (≥ 0) for the Catalan number sequence: ''', end='''''')
       try:
              while True:
                     UpperCAmelCase					 =	int(input().strip())
                     if N < 0:
                            print('''\n********* Goodbye!! ************''')
                            break
                     else:
                            print(F'''The Catalan numbers from 0 through {N} are:''')
                            print(catalan_numbers(N))
                            print('''Try another upper limit for the sequence: ''', end='''''')
       except (NameError, ValueError):
              print('''\n********* Invalid input, goodbye! ************\n''')

       import doctest

       doctest.testmod()


