code: 
  
  
  
  
  """simple docstring"""
  
  from __future__ import annotations
  
  from collections.abc import Callable
  
  
  
  def   UpperCamelCase__     (		lowercase__  :     Callable[[int | float], int | float]       ,     lowercase__  :     int | float       ,     lowercase__  :     int | float       ,     lowercase__  :     int = 100       ,     ):
  		snake_case		:						List[Any]								=				x_start
  		snake_case		:						str								=				fnc(lowercase__   )
  		snake_case		:						Dict								=				0.0
  
  		for _ in range(lowercase__   ):
  				# Approximates small segments of curve as linear and solve
  				# for trapezoidal area
  				snake_case		:						Any								=				(x_end - x_start) / steps + xa
  				snake_case		:						Union[str, Any]								=				fnc(lowercase__   )
  				area += abs(fxa + fxa   ) * (xa - xa) / 2
  
  				# Increment step
  				snake_case		:						Optional[int]								=				xa
  				snake_case		:						Optional[int]								=				fxa
  		return area
  
  
  if __name__ == "__main__":
  
  
  
  							def   UpperCamelCase__     (		lowercase__  :     Optional[Any]   ):
  									return x**3
  
  							print("f(x) = x^3")
  							print("The area between the curve, x = -10, x = 10 and the x axis is:")
  							__A 		=			10
  							while i <= 100_000:
  														__A 		=			trapezoidal_area(f, -5, 5, i)
  														print(f'with {i} steps: {area}')
  														i *= 10
  
  
style_context: 
  
  
  
  
  """simple docstring"""
  
  def   UpperCamelCase__     (		lowercase__  :     int   ):
  		if not isinstance(lowercase__       ,     lowercase__   ):
  				snake_case		:						Optional[Any]								=				F'''Input value of [number={number}] must be an integer'''
  				raise TypeError(lowercase__   )
  		if number < 0 or number % 2 == 1:
  				return False
  		snake_case		:						str								=				int(number**0.5   )
  		return number == number_sqrt * (number_sqrt + 1)
  
  
  if __name__ == "__main__":
  							import doctest
  
  							doctest.testmod()
  
  