






import doctest
from collections import deque

import numpy as np


class       __lowercase      :







     '''simple docstring'''




     def __init__(				self       :			Optional[int]				):


         """simple docstring"""



         __A         =	[2, 1, 2, -1]
         __A         =	[1, 2, 3, 4]





     def 		lowerCAmelCase_     (				self       :			List[str]				):


         """simple docstring"""



         __A         =	len(self.first_signal				)
         __A         =	len(self.second_signal				)

         __A         =	max(lowercase_ ,	lowercase_				)

         # create a zero matrix of max_length x max_length
         __A         =	[[0] * max_length for i in range(lowercase_				)]

         # fills the smaller signal with zeros to make both signals of same length
         if length_first_signal < length_second_signal:
             self.first_signal += [0] * (max_length - length_first_signal)
         elif length_first_signal > length_second_signal:
             self.second_signal += [0] * (max_length - length_second_signal)
         for i in range(lowercase_				):
             __A         =	deque(self.second_signal				)
             rotated_signal.rotate(lowercase_				)
             for j, item in enumerate(lowercase_				):
                 matrix[i][j] += item

        # multiply the matrix with the first signal
         __A         =	np.matmul(np.transpose(lowercase_				) ,	np.transpose(self.first_signal				)				)

         # rounding-off to two decimal places
         return [round(lowercase_ ,	2				) for i in final_signal]


if __name__ == "__main__":
  doctest.testmod()












def 			_SCREAMING_SNAKE_CASE						( __lowercase   :			str = "The quick brown fox jumps over the lazy dog"			,				)						->      bool:





    """simple docstring"""

    __A         =	set()

    # Replace all the whitespace in our sentence
    __A         =	input_str.replace(""" """			,				""""""    )
    for alpha in input_str:
        if "a" <= alpha.lower() <= "z":
            frequency.add(alpha.lower()    )
    return len(__lowercase    ) == 2_6



def 			_SCREAMING_SNAKE_CASE						( __lowercase   :			str = "The quick brown fox jumps over the lazy dog"			,				)						->      bool:





    """simple docstring"""

    __A         =	[False] * 2_6
    for char in input_str:
        if char.islower():
            __A         =	True
        elif char.isupper():
            __A         =	True
    return all(__lowercase    )



def 			_SCREAMING_SNAKE_CASE						( __lowercase   :			str = "The quick brown fox jumps over the lazy dog"			,				)						->      bool:





    """simple docstring"""

    return len({char for char in input_str.lower() if char.isalpha()}    ) == 2_6



def 			_SCREAMING_SNAKE_CASE						( )						->      None:





    """simple docstring"""

    from timeit import timeit

    __A         =	"""from __main__ import is_pangram, is_pangram_faster, is_pangram_fastest"""
    print(timeit("""is_pangram()"""			,				setup=__lowercase    )    )
    print(timeit("""is_pangram_faster()"""			,				setup=__lowercase    )    )
    print(timeit("""is_pangram_fastest()"""			,				setup=__lowercase    )    )
    # 5.348480500048026, 2.6477354579837993, 1.8470395830227062
    # 5.036091582966037, 2.644472333951853,  1.8869528750656173


if __name__ == "__main__":
  import doctest

  doctest.testmod()
  benchmark()




