




from collections import namedtuple

_snake_case										=       namedtuple("from_to", "from_ to")

_snake_case										=       {
    "cubicmeter": from_to(1, 1),
    "litre": from_to(0.0_0_1, 1000),
    "kilolitre": from_to(1, 1),
    "gallon": from_to(0.0_0_4_5_4, 2_6_4.1_7_2),
    "cubicyard": from_to(0.7_6_4_5_5, 1.3_0_7_9_5),
    "cubicfoot": from_to(0.0_2_8, 3_5.3_1_4_7),
    "cup": from_to(0.0_0_0_2_3_6_5_8_8, 4_2_2_6.7_5),
}







def 				lowerCAmelCase_	(     snake_case_,snake_case_,snake_case_     ):
      if from_type not in METRIC_CONVERSION:
            raise ValueError(
                f'''Invalid \'from_type\' value: {from_type!r}  Supported values are:\n'''
                + """, """.join(snake_case_     )     )
      if to_type not in METRIC_CONVERSION:
            raise ValueError(
                f'''Invalid \'to_type\' value: {to_type!r}.  Supported values are:\n'''
                + """, """.join(snake_case_     )     )
      return value * METRIC_CONVERSION[from_type].from_ * METRIC_CONVERSION[to_type].to


if __name__ == "__main__":
  import doctest

  doctest.testmod()







def 				lowerCAmelCase_	(     snake_case_,snake_case_     ):
      while b:
            _A			,   _A							:     List[str]			=						b, a % b
      return a







def 				lowerCAmelCase_	(     snake_case_,snake_case_     ):
      return a if b == 0 else euclidean_gcd_recursive(snake_case_,a % b     )







def 				lowerCAmelCase_	(     ):
      print(f'''euclidean_gcd(3, 5) = {euclidean_gcd(3,5     )}'''     )
      print(f'''euclidean_gcd(5, 3) = {euclidean_gcd(5,3     )}'''     )
      print(f'''euclidean_gcd(1, 3) = {euclidean_gcd(1,3     )}'''     )
      print(f'''euclidean_gcd(3, 6) = {euclidean_gcd(3,6     )}'''     )
      print(f'''euclidean_gcd(6, 3) = {euclidean_gcd(6,3     )}'''     )

      print(f'''euclidean_gcd_recursive(3, 5) = {euclidean_gcd_recursive(3,5     )}'''     )
      print(f'''euclidean_gcd_recursive(5, 3) = {euclidean_gcd_recursive(5,3     )}'''     )
      print(f'''euclidean_gcd_recursive(1, 3) = {euclidean_gcd_recursive(1,3     )}'''     )
      print(f'''euclidean_gcd_recursive(3, 6) = {euclidean_gcd_recursive(3,6     )}'''     )
      print(f'''euclidean_gcd_recursive(6, 3) = {euclidean_gcd_recursive(6,3     )}'''     )


if __name__ == "__main__":
  main()

