



"""simple docstring"""







UpperCAmelCase:  Optional[Any]			     =				{
    """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 (  __UpperCAmelCase      ):
		_lowercase				: Any     =   str(__UpperCAmelCase      ).strip()

		# Exceptions
		if not binary_str:
				raise ValueError("""Empty string was passed to the function"""      )
		_lowercase				: Tuple     =   binary_str[0] == """-"""
		_lowercase				: List[str]     =   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"""      )

		_lowercase				: Any     =   (
		    """0""" * (4 * (divmod(len(__UpperCAmelCase      )   ,				4      )[0] + 1) - len(__UpperCAmelCase      )) + binary_str
		)

		_lowercase				: Union[str, Any]     =   []
		for x in range(0   ,				len(__UpperCAmelCase      )   ,				4      ):
				hexadecimal.append(BITS_TO_HEX[binary_str[x : x + 4]]      )
		_lowercase				: str     =   """0x""" + """""".join(__UpperCAmelCase      )

		return "-" + hexadecimal_str if is_negative else hexadecimal_str


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

		testmod()






"""simple docstring"""





def 							_lowerCAmelCase   (    UpperCAmelCase  :				int					):


					'''simple docstring'''






					if not isinstance(UpperCAmelCase   ,				UpperCAmelCase					):
										raise ValueError('''double_factorial() only accepts integral values'''					)
					if n < 0:
										raise ValueError('''double_factorial() not defined for negative values'''					)
					return 1 if n <= 1 else n * double_factorial(n - 2					)


if __name__ == "__main__":
				import doctest

				doctest.testmod()


