


def UpperCamelCase_				(				__a      )	->   "list[int]":
      if upper_limit < 0:
            raise ValueError("Limit for the Catalan sequence must be ≥ 0"      )

      a__	:  List[str]     =   [0] * (upper_limit + 1)

      # Base case: C(0) = C(1) = 1
      a__	:  Optional[int]     =   1
      if upper_limit > 0:
            a__	:  Optional[Any]     =   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(__a      ):
                  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					:       Optional[Any]			    =     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()






import pytest
import requests

from datasets.utils.file_utils import http_head

from .utils import OfflineSimulationMode, RequestWouldHangIndefinitelyError, offline

@pytest.mark.integration
def 	_lowerCAmelCase (    ):
      with offline(OfflineSimulationMode.CONNECTION_TIMES_OUT						):
            with pytest.raises(A__						):
                  requests.request('GET'    ,	'https://huggingface.co'						)
            with pytest.raises(requests.exceptions.ConnectTimeout						):
                  requests.request('GET'    ,	'https://huggingface.co'    ,	timeout=1.0						)

@pytest.mark.integration
def 	_lowerCAmelCase (    ):
      with offline(OfflineSimulationMode.CONNECTION_FAILS						):
            with pytest.raises(requests.exceptions.ConnectionError						):
                  requests.request('GET'    ,	'https://huggingface.co'						)

def 	_lowerCAmelCase (    ):
      with offline(OfflineSimulationMode.HF_DATASETS_OFFLINE_SET_TO_1						):
            with pytest.raises(A__						):
                  http_head('https://huggingface.co'						)
