old_contents: """
  Find the area of various geometric shapes
  """
  
  import math
  
  
  def area_rectangle(base, height):
      """
      Calculate the area of a rectangle
  
      >> area_rectangle(10,20)
      200
      """
      return base * height
  
  
  def area_square(side_length):
      """
      Calculate the area of a square
  
      >>> area_square(10)
      100
      """
      return side_length * side_length
  
  
  def area_triangle(length, breadth):
      """
      Calculate the area of a triangle
  
      >>> area_triangle(10,10)
      50.0
      """
      return 1 / 2 * length * breadth
  
  
  def area_parallelogram(base, height):
      """
      Calculate the area of a parallelogram
  
      >> area_parallelogram(10,20)
      200
      """
      return base * height
  
  
  def area_trapezium(base1, base2, height):
      """
      Calculate the area of a trapezium
  
      >> area_trapezium(10,20,30)
      450
      """
      return 1 / 2 * (base1 + base2) * height
  
  
  def area_circle(radius):
      """
      Calculate the area of a circle
  
      >> area_circle(20)
      1256.6370614359173
      """
      return math.pi * radius * radius
  
  
  def main():
      print("Areas of various geometric shapes: \n")
      print(f"Rectangle: {area_rectangle(10, 20)=}")
      print(f"Square: {area_square(10)=}")
      print(f"Triangle: {area_triangle(10, 10)=}")
      print(f"Parallelogram: {area_parallelogram(10, 20)=}")
      print(f"Trapezium: {area_trapezium(10, 20, 30)=}")
      print(f"Circle: {area_circle(20)=}")
  
  
  if __name__ == "__main__":
      main()
  
new_contents: """
  Find the area of various geometric shapes
  """
  from math import pi
  from typing import Union
  
  
  def surface_area_cube(side_length: Union[int, float]) -> float:
      """
      Calculate the Surface Area of a Cube.
  
      >>> surface_area_cube(1)
      6
      >>> surface_area_cube(3)
      54
      """
      return 6 * pow(side_length, 2)
  
  
  def surface_area_sphere(radius: float) -> float:
      """
      Calculate the Surface Area of a Sphere.
      Wikipedia reference: https://en.wikipedia.org/wiki/Sphere
      :return 4 * pi * r^2
  
      >>> surface_area_sphere(5)
      314.1592653589793
      >>> surface_area_sphere(1)
      12.566370614359172
      """
      return 4 * pi * pow(radius, 2)
  
  
  def area_rectangle(base, height):
      """
      Calculate the area of a rectangle
  
      >> area_rectangle(10,20)
      200
      """
      return base * height
  
  
  def area_square(side_length):
      """
      Calculate the area of a square
  
      >>> area_square(10)
      100
      """
      return side_length * side_length
  
  
  def area_triangle(length, breadth):
      """
      Calculate the area of a triangle
  
      >>> area_triangle(10,10)
      50.0
      """
      return 1 / 2 * length * breadth
  
  
  def area_parallelogram(base, height):
      """
      Calculate the area of a parallelogram
  
      >> area_parallelogram(10,20)
      200
      """
      return base * height
  
  
  def area_trapezium(base1, base2, height):
      """
      Calculate the area of a trapezium
  
      >> area_trapezium(10,20,30)
      450
      """
      return 1 / 2 * (base1 + base2) * height
  
  
  def area_circle(radius):
      """
      Calculate the area of a circle
  
      >> area_circle(20)
      1256.6370614359173
      """
      return pi * radius * radius
  
  
  def main():
      print("Areas of various geometric shapes: \n")
      print(f"Rectangle: {area_rectangle(10, 20)=}")
      print(f"Square: {area_square(10)=}")
      print(f"Triangle: {area_triangle(10, 10)=}")
      print(f"Parallelogram: {area_parallelogram(10, 20)=}")
      print(f"Trapezium: {area_trapezium(10, 20, 30)=}")
      print(f"Circle: {area_circle(20)=}")
      print("Surface Areas of various geometric shapes: \n")
      print(f"Cube: {surface_area_cube(20)=}")
      print(f"Sphere: {surface_area_sphere(20)=}")
  
  
  if __name__ == "__main__":
      main()
  
subject: Add surface area class (#2183)