UpperCAmelCase							=							{
    '0000': '0',
    '0001': '1',
    '0010': '2',
    '0011': '3',
    '0100': '4',
    '0101': '5',
    '0110': '6',
    '0111': '7',
    '1000': '8',
    '1001': '9',
    '1010': 'a',
    '1011': 'b',
    '1100': 'c',
    '1101': 'd',
    '1110': 'e',
    '1111': 'f',
}






def 					SCREAMING_SNAKE_CASE_			(		lowerCAmelCase_: Dict     ):
      snake_case_     :			Optional[int]       =       str(lowerCAmelCase_     ).strip()

      # Exceptions
      if not binary_str:
            raise ValueError("Empty string was passed to the function"     )
      snake_case_     :			str       =       binary_str[0] == "-"
      snake_case_     :			int       =       binary_str[1:] if is_negative else binary_str
      if not all(char in "01" for char in binary_str     ):
            raise ValueError("Non-binary value was passed to the function"     )

      snake_case_     :			List[Any]       =       (
          "0" * (4 * (divmod(len(lowerCAmelCase_     ) ,	4     )[0] + 1) - len(lowerCAmelCase_     )) + binary_str
      )

      snake_case_     :			List[Any]       =       []
      for x in range(0 ,	len(lowerCAmelCase_     ) ,	4     ):
            hexadecimal.append(BITS_TO_HEX[binary_str[x : x + 4]]     )
      snake_case_     :			List[Any]       =       "0x" + "".join(lowerCAmelCase_     )

      return "-" + hexadecimal_str if is_negative else hexadecimal_str


if __name__ == "__main__":
     from doctest import testmod

     testmod()




from __future__ import annotations

UpperCAmelCase							=       "Alexander Joslin"






def 					SCREAMING_SNAKE_CASE_			(		lowerCAmelCase_: int     ):

      if number <= 0:
            snake_case_     :			Dict       =       f"n must be greater than 0. Got n = {number}"
            raise ValueError(lowerCAmelCase_     )

      snake_case_     :			Tuple       =       [number + 1] * (number + 1)

      # starting position
      snake_case_     :			Union[str, Any]       =       0
      for i in range(1 ,	lowerCAmelCase_     ):
            snake_case_     :			int       =       min(table[i + 1] ,	table[i] + 1     )
            # check if out of bounds
            if i * 2 <= number:
                  snake_case_     :			Tuple       =       min(table[i * 2] ,	table[i] + 1     )
            # check if out of bounds
            if i * 3 <= number:
                  snake_case_     :			Dict       =       min(table[i * 3] ,	table[i] + 1     )
      return table[number]


if __name__ == "__main__":
     import doctest

     doctest.testmod()



