


'''simple docstring'''


from math import factorial






def  __lowerCAmelCase (__lowerCAmelCase      , __lowerCAmelCase      , __lowerCAmelCase   ):



		if successes > trials:
				raise ValueError("successes must be lower or equal to trials"   )
		if trials < 0 or successes < 0:
				raise ValueError("the function is defined for non-negative integers"   )
		if not isinstance(_lowerCamelCase      , _lowerCamelCase   ) or not isinstance(_lowerCamelCase      , _lowerCamelCase   ):
				raise ValueError("the function is defined for non-negative integers"   )
		if not 0 < prob < 1:
				raise ValueError("prob has to be in range of 1 - 0"   )
		_UpperCAmelCase		:       Dict								=      (prob**successes) * ((1 - prob) ** (trials - successes))
		# Calculate the binomial coefficient: n! / k!(n-k)!
		_UpperCAmelCase		:       Union[str, Any]								=      float(factorial(_lowerCamelCase   )   )
		coefficient /= factorial(_lowerCamelCase   ) * factorial(trials - successes   )
		return probability * coefficient


if __name__ == "__main__":
						from doctest import testmod

						testmod()
						print('Probability of 2 successes out of 4 trails')
						print('with probability of 0.75 is:', end=' ')
						print(binomial_distribution(2, 4, 0.75))









'''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.
lowerCamelCase__    	=     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  __lowerCAmelCase (__lowerCAmelCase   ):
		from transformers.testing_utils import pytest_addoption_shared

		pytest_addoption_shared(__lowerCAmelCase   )






def  __lowerCAmelCase (__lowerCAmelCase   ):
		from transformers.testing_utils import pytest_terminal_summary_main

		_UpperCAmelCase		:       Optional[int]								=      terminalreporter.config.getoption("--make-reports"   )
		if make_reports:
				pytest_terminal_summary_main(__lowerCAmelCase      , id=__lowerCAmelCase   )



