




'''simple docstring'''





import math
import os

import cva
import numpy as np

UpperCamelCase_		:    int									=		2_5_5.0





def 			__a			(     _UpperCamelCase:					float      ,		_UpperCamelCase:					float					)		->				float:

     """simple docstring"""




     _snake_case							=   np.mean((original - contrast) ** 2					)
     if mse == 0:
          return 100

     return 20 * math.logaa(PIXEL_MAX / math.sqrt(_UpperCamelCase					)					)





def 			__a			(     )		->				None:

     """simple docstring"""




     _snake_case							=   os.path.dirname(os.path.realpath(_UpperCamelCase					)					)
     # Loading images (original image and compressed image)
     _snake_case							=   cva.imread(os.path.join(_UpperCamelCase      ,		"image_data/original_image.png"					)					)
     _snake_case							=   cva.imread(os.path.join(_UpperCamelCase      ,		"image_data/compressed_image.png"					)      ,		1					)

     _snake_case							=   cva.imread(os.path.join(_UpperCamelCase      ,		"image_data/PSNR-example-base.png"					)					)
     _snake_case							=   cva.imread(
         os.path.join(_UpperCamelCase      ,		"image_data/PSNR-example-comp-10.jpg"					)      ,		1					)

     # Value expected: 29.73dB
     print("-- First Test --"					)
     print(F"""PSNR value is {peak_signal_to_noise_ratio(_UpperCamelCase      ,		_UpperCamelCase					)} dB"""					)

     # # Value expected: 31.53dB (Wikipedia Example)
     print("\n-- Second Test --"					)
     print(F"""PSNR value is {peak_signal_to_noise_ratio(_UpperCamelCase      ,		_UpperCamelCase					)} dB"""					)


if __name__ == "__main__":
   main()








'''simple docstring'''





import json
import os
import tempfile

import datasets
from utils import generate_example_dataset, get_duration


UpperCamelCase_		:    List[str]									=		500000

UpperCamelCase_			,			UpperCamelCase_		:    Dict									=		os.path.split(__file__)
UpperCamelCase_		:    int									=		os.path.join(RESULTS_BASEPATH, '''results''', RESULTS_FILENAME.replace('''.py''', '''.json'''))





@get_duration
def 			__a			(     _UpperCamelCase:					datasets.Dataset					)		->				List[Any]:

     """simple docstring"""




     _snake_case							=   dataset.select(range(0      ,		len(_UpperCamelCase					)      ,		2					)					)





@get_duration
def 			__a			(     _UpperCamelCase:					datasets.Dataset					)		->				List[Any]:

     """simple docstring"""




     _snake_case							=   dataset.sort("numbers"					)





@get_duration
def 			__a			(     _UpperCamelCase:					datasets.Dataset					)		->				List[Any]:

     """simple docstring"""




     _snake_case							=   dataset.shuffle()





@get_duration
def 			__a			(     _UpperCamelCase:					datasets.Dataset					)		->				Any:

     """simple docstring"""




     _snake_case							=   dataset.train_test_split(0.1					)





@get_duration
def 			__a			(     _UpperCamelCase:					datasets.Dataset      ,		_UpperCamelCase:					int=10					)		->				List[str]:

     """simple docstring"""




     for shard_id in range(_UpperCamelCase					):
          _snake_case							=   dataset.shard(_UpperCamelCase      ,		_UpperCamelCase					)





def 			__a			(     )		->				int:

     """simple docstring"""




     _snake_case							=   {"num examples": SPEED_TEST_N_EXAMPLES}
     _snake_case							=   (select, sort, shuffle, train_test_split, shard)
     with tempfile.TemporaryDirectory() as tmp_dir:
          print("generating dataset"					)
          _snake_case							=   datasets.Features({"text": datasets.Value("string"					), "numbers": datasets.Value("float32"					)}					)
          _snake_case							=   generate_example_dataset(
              os.path.join(_UpperCamelCase      ,		"dataset.arrow"					)      ,		_UpperCamelCase      ,		num_examples=_UpperCamelCase					)
          print("Functions"					)
          for func in functions:
               print(func.__name__					)
               _snake_case							=   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()


