'''simple docstring'''




from __future__ import annotations




class       __UpperCAmelCase							:





       '''simple docstring'''



       def __init__( self       ,	_SCREAMING_SNAKE_CASE					)						->	None:
           A_      =  vertices
           A_      =  [[0] * vertices for _ in range(_SCREAMING_SNAKE_CASE					)]

       def    __A			( self       ,	_SCREAMING_SNAKE_CASE					)						->	None:
           print('''Vertex \t Distance from Source'''					)
           for vertex in range(self.vertices					):
               print(_SCREAMING_SNAKE_CASE       ,	'''\t\t'''       ,	distances_from_source[vertex]					)

       def    __A			( self       ,	_SCREAMING_SNAKE_CASE       ,	_SCREAMING_SNAKE_CASE					)						->	int:
           A_      =  1E7
           A_      =  0

           # Search not nearest vertex not in the shortest path tree
           for vertex in range(self.vertices					):
               if distances_from_source[vertex] < minimum and visited[vertex] is False:
                   A_      =  distances_from_source[vertex]
                   A_      =  vertex
           return min_index

       def    __A			( self       ,	_SCREAMING_SNAKE_CASE					)						->	None:
           A_      =  [int(1E7					)] * self.vertices  # distances from the source
           A_      =  0
           A_      =  [False] * self.vertices

           for _ in range(self.vertices					):
               A_      =  self.minimum_distance(_SCREAMING_SNAKE_CASE       ,	_SCREAMING_SNAKE_CASE					)
               A_      =  True

               # Update dist value of the adjacent vertices
               # of the picked vertex only if the current
               # distance is greater than new distance and
               # the vertex in not in the shortest path tree
               for v in range(self.vertices					):
                   if (
                       self.graph[u][v] > 0
                       and visited[v] is False
                       and distances[v] > distances[u] + self.graph[u][v]
                   ):
                       A_      =  distances[u] + self.graph[u][v]

           self.print_solution(_SCREAMING_SNAKE_CASE					)


if __name__ == "__main__":
  __snake_case  : List[Any]		       =    Graph(9)
  __snake_case  : List[Any]		       =    [
      [0, 4, 0, 0, 0, 0, 0, 8, 0],
      [4, 0, 8, 0, 0, 0, 0, 11, 0],
      [0, 8, 0, 7, 0, 4, 0, 0, 2],
      [0, 0, 7, 0, 9, 14, 0, 0, 0],
      [0, 0, 0, 9, 0, 10, 0, 0, 0],
      [0, 0, 4, 14, 10, 0, 2, 0, 0],
      [0, 0, 0, 0, 0, 2, 0, 1, 6],
      [8, 11, 0, 0, 0, 0, 1, 0, 7],
      [0, 0, 2, 0, 0, 0, 6, 7, 0],
  ]
  graph.dijkstra(0)







'''simple docstring'''




import json
import os
import tempfile

import datasets
from utils import generate_example_dataset, get_duration


__snake_case  : Dict		       =    500_000

__snake_case       ,       __snake_case  : List[str]		       =    os.path.split(__file__)
__snake_case  : Optional[Any]		       =    os.path.join(RESULTS_BASEPATH, 'results', RESULTS_FILENAME.replace('.py', '.json'))





@get_duration
def 	_UpperCAmelCase       (				_UpperCamelCase       :      datasets.Dataset  )      -> Union[str, Any]:
    A_      =  dataset.select(range(0,  len(_UpperCamelCase  ),  2  )  )





@get_duration
def 	_UpperCAmelCase       (				_UpperCamelCase       :      datasets.Dataset  )      -> str:
    A_      =  dataset.sort('''numbers'''  )





@get_duration
def 	_UpperCAmelCase       (				_UpperCamelCase       :      datasets.Dataset  )      -> str:
    A_      =  dataset.shuffle()





@get_duration
def 	_UpperCAmelCase       (				_UpperCamelCase       :      datasets.Dataset  )      -> Optional[Any]:
    A_      =  dataset.train_test_split(0.1  )





@get_duration
def 	_UpperCAmelCase       (				_UpperCamelCase       :      datasets.Dataset,  _UpperCamelCase       :      Optional[int]=10  )      -> Dict:
    for shard_id in range(_UpperCamelCase  ):
        A_      =  dataset.shard(_UpperCamelCase,  _UpperCamelCase  )





def 	_UpperCAmelCase       (				)      -> Any:
    A_      =  {'''num examples''': SPEED_TEST_N_EXAMPLES}
    A_      =  (select, sort, shuffle, train_test_split, shard)
    with tempfile.TemporaryDirectory() as tmp_dir:
        print('''generating dataset'''  )
        A_      =  datasets.Features({'''text''': datasets.Value('''string'''  ), '''numbers''': datasets.Value('''float32'''  )}  )
        A_      =  generate_example_dataset(
            os.path.join(_UpperCamelCase,  '''dataset.arrow'''  ),  _UpperCamelCase,  num_examples=_UpperCamelCase  )
        print('''Functions'''  )
        for func in functions:
            print(func.__name__  )
            A_      =  func(_UpperCamelCase  )

    with open(_UpperCamelCase,  '''wb'''  ) as f:
        f.write(json.dumps(_UpperCamelCase  ).encode('''utf-8'''  )  )


if __name__ == "__main__":  # useful to run the profiler
  benchmark_indices_mapping()






