

def 		_snake_case(       SCREAMING_SNAKE_CASE__     :      list[int] )				-> tuple[int, int]:





    '''simple docstring'''






    if len(SCREAMING_SNAKE_CASE__ ) == 1:
        return a[0], a[0]
    else:
        # split A into half.
        A__        =  a[: len(SCREAMING_SNAKE_CASE__ ) // 2]
        A__        =  a[len(SCREAMING_SNAKE_CASE__ ) // 2 :]

        # 2 sub problems, 1/2 of original size.
        A__ ,		A__        =  max_difference(SCREAMING_SNAKE_CASE__ )
        A__ ,		A__        =  max_difference(SCREAMING_SNAKE_CASE__ )

        # get min of first and max of second
        # linear time
        A__        =  min(SCREAMING_SNAKE_CASE__ )
        A__        =  max(SCREAMING_SNAKE_CASE__ )

        # 3 cases, either (small1, big1),
        # (min_first, max_second), (small2, big2)
        # constant comparisons
        if biga - smalla > max_second - min_first and biga - smalla > biga - smalla:
            return smalla, biga
        elif biga - smalla > max_second - min_first:
            return smalla, biga
        else:
            return min_first, max_second


if __name__ == "__main__":
     import doctest

     doctest.testmod()




import math
import os

import cva
import numpy as np

lowercase_									=    255.0
def 		_snake_case(       SCREAMING_SNAKE_CASE__     :      float       ,     SCREAMING_SNAKE_CASE__     :      float )				-> float:





    '''simple docstring'''






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

    return 20 * math.logaa(PIXEL_MAX / math.sqrt(SCREAMING_SNAKE_CASE__ ) )
def 		_snake_case(       )				-> None:





    '''simple docstring'''






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

    A__        =  cva.imread(os.path.join(SCREAMING_SNAKE_CASE__       ,     'image_data/PSNR-example-base.png' ) )
    A__        =  cva.imread(
        os.path.join(SCREAMING_SNAKE_CASE__       ,     '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(SCREAMING_SNAKE_CASE__       ,     SCREAMING_SNAKE_CASE__ )} dB' )

    # # Value expected: 31.53dB (Wikipedia Example)
    print('\n-- Second Test --' )
    print(f'PSNR value is {peak_signal_to_noise_ratio(SCREAMING_SNAKE_CASE__       ,     SCREAMING_SNAKE_CASE__ )} dB' )


if __name__ == "__main__":
     main()

