


def      lowerCamelCase_    (       _a	,   _a	,   _a	,   _a	,   _a	,   ):




		"""simple docstring"""






		lowerCAmelCase__   :			int         =					[redshift, radiation_density, matter_density, dark_energy]
		if any(p < 0 for p in parameters       ):
				raise ValueError('''All input parameters must be positive'''       )

		if any(p > 1 for p in parameters[1:4]       ):
				raise ValueError('''Relative densities cannot be greater than one'''       )
		else:
				lowerCAmelCase__   :			int         =					1 - (matter_density + radiation_density + dark_energy)

				lowerCAmelCase__   :			Optional[int]         =					(
				    radiation_density * (redshift + 1) ** 4
				    + matter_density * (redshift + 1) ** 3
				    + curvature * (redshift + 1) ** 2
				    + dark_energy
				)

				lowerCAmelCase__   :			int         =					hubble_constant * e_a ** (1 / 2)
				return hubble


if __name__ == "__main__":
		import doctest

		# run doctest
		doctest.testmod()

		# demo LCDM approximation
		lowerCamelCase						=		0.3

		print(
		    hubble_parameter(
		        hubble_constant=6_8.3,
		        radiation_density=1E-4,
		        matter_density=matter_density,
		        dark_energy=1 - matter_density,
		        redshift=0,
		    )
		)











def 						__SCREAMING_SNAKE_CASE  (				UpperCamelCase__ )  ->				list[int]:







			'''simple docstring'''

			if length <= 0 or not isinstance(UpperCamelCase__			,			UpperCamelCase__ ):
						raise ValueError('''Length must be a positive integer.''' )
			return [n * (2 * n - 1) for n in range(UpperCamelCase__ )]


if __name__ == "__main__":
				print(hexagonal_numbers(length=5))
				print(hexagonal_numbers(length=10))



