


'''simple docstring'''




def 							a_       (						lowercase							,						lowercase = 1000    )			->str:






    '''simple docstring'''

    if (not isinstance(lowercase							,						lowercase    )) or (digit_position <= 0):
        raise ValueError("Digit position must be a positive integer"    )
    elif (not isinstance(lowercase							,						lowercase    )) or (precision < 0):
        raise ValueError("Precision must be a nonnegative integer"    )

    # compute an approximation of (16 ** (n - 1)) * pi whose fractional part is mostly
    # accurate
    __lowerCamelCase		:      Optional[int]											=					(
        4 * _subsum(lowercase							,						1							,						lowercase    )
        - 2 * _subsum(lowercase							,						4							,						lowercase    )
        - _subsum(lowercase							,						5							,						lowercase    )
        - _subsum(lowercase							,						6							,						lowercase    )
    )

    # return the first hex digit of the fractional part of the result
    return hex(int((sum_result % 1) * 16    )    )[2:]





def 							a_       (						lowercase							,						lowercase							,						lowercase    )			->float:






    '''simple docstring'''

    __lowerCamelCase		:      int											=					0.0
    for sum_index in range(digit_pos_to_extract + precision    ):
        __lowerCamelCase		:      int											=					8 * sum_index + denominator_addend
        if sum_index < digit_pos_to_extract:
            # if the exponential term is an integer and we mod it by the denominator
            # before dividing, only the integer part of the sum will change;
            # the fractional part will not
            __lowerCamelCase		:      Union[str, Any]											=					pow(
                16							,						digit_pos_to_extract - 1 - sum_index							,						lowercase    )
        else:
            __lowerCamelCase		:      Union[str, Any]											=					pow(16							,						digit_pos_to_extract - 1 - sum_index    )
        total += exponential_term / denominator
    return total


if __name__ == "__main__":
    import doctest

    doctest.testmod()









'''simple docstring'''




# tests directory-specific settings - this file is run automatically
# by pytest before any tests are run

import sys
import warnings
from os.path import abspath, dirname, join


# allow having multiple repository checkouts and not needing to remember to rerun
# 'pip install -e .[dev]' when switching between checkouts and running tests.
__lowercase  :      Tuple      		=				abspath(join(dirname(dirname(dirname(__file__))), """src"""))
sys.path.insert(1, git_repo_path)


# silence FutureWarning warnings in tests since often we can't act on them until
# they become normal warnings - i.e. the tests still need to test the current functionality
warnings.simplefilter(action="""ignore""", category=FutureWarning)





def 							a_       (						lowercase    )			->Any:






				'''simple docstring'''

				from diffusers.utils.testing_utils import pytest_addoption_shared

				pytest_addoption_shared(lowercase    )





def 							a_       (						lowercase    )			->str:






				'''simple docstring'''

				from diffusers.utils.testing_utils import pytest_terminal_summary_main

				__lowerCamelCase		:      Union[str, Any]											=					terminalreporter.config.getoption("--make-reports"    )
				if make_reports:
								pytest_terminal_summary_main(lowercase							,						id=lowercase    )





