






'''simple docstring'''







def     _UpperCamelCase				(  snake_case__				):
      barcode //= 10  # exclude the last digit
      __A		 =   False
      __A		 =   0

      # extract and check each digit
      while barcode != 0:
            __A		 =   1 if checker else 3
            s += mult * (barcode % 10)
            barcode //= 10
            __A		 =   not checker

      return (10 - (s % 10)) % 10


def     _UpperCamelCase				(  snake_case__				):
      return len(str(snake_case__				)				) == 13 and get_check_digit(snake_case__				) == barcode % 10


def     _UpperCamelCase				(  snake_case__				):
      if str(snake_case__				).isalpha():
            __A		 =   f"Barcode '{barcode}' has alphabetic characters."
            raise ValueError(snake_case__				)
      elif int(snake_case__				) < 0:
            raise ValueError("The entered barcode has a negative value. Try again."				)
      else:
            return int(snake_case__				)


if __name__ == "__main__":
       import doctest

       doctest.testmod()
       __A   :							int     	=						get_barcode(input('Barcode: ').strip())

       if is_valid(barcode):
              print(F"""'{barcode}' is a valid barcode.""")
       else:
              print(F"""'{barcode}' is NOT a valid barcode.""")










'''simple docstring'''







from __future__ import annotations


def     _UpperCamelCase				(  snake_case__				):
      __A		 =   [0] * len(snake_case__				)
      for i in range(1				,      len(snake_case__				)				):
            __A		 =   duration_times[i - 1] + waiting_times[i - 1]
      return waiting_times


def     _UpperCamelCase				(  snake_case__				,      snake_case__				):
      return [
          duration_time + waiting_times[i]
          for i, duration_time in enumerate(snake_case__				)
      ]


def     _UpperCamelCase				(  snake_case__				):
      return sum(snake_case__				) / len(snake_case__				)


def     _UpperCamelCase				(  snake_case__				):
      return sum(snake_case__				) / len(snake_case__				)


if __name__ == "__main__":
       # process id's
       __A   :							List[str]     	=						[1, 2, 3]

       # ensure that we actually have processes
       if len(processes) == 0:
              print('Zero amount of processes')
              raise SystemExit(0)

       # duration time of all processes
       __A   :							List[Any]     	=						[1_9, 8, 9]

       # ensure we can match each id to a duration time
       if len(duration_times) != len(processes):
              print('Unable to match all id\'s with their duration time')
              raise SystemExit(0)

       # get the waiting times and the turnaround times
       __A   :							Dict     	=						calculate_waiting_times(duration_times)
       __A   :							Optional[int]     	=						calculate_turnaround_times(duration_times, waiting_times)

       # get the average times
       __A   :							Dict     	=						calculate_average_waiting_time(waiting_times)
       __A   :							Tuple     	=						calculate_average_turnaround_time(turnaround_times)

       # print all the results
       print('Process ID\tDuration Time\tWaiting Time\tTurnaround Time')
       for i, process in enumerate(processes):
              print(
                  F"""{process}\t\t{duration_times[i]}\t\t{waiting_times[i]}\t\t"""
                  F"""{turnaround_times[i]}"""
              )
       print(F"""Average waiting time = {average_waiting_time}""")
       print(F"""Average turn around time = {average_turnaround_time}""")


