
import pytest

import datasets.config
from datasets.utils.info_utils import is_small_dataset






@pytest.mark.parametrize('dataset_size'	, [None, 400 * 2**20, 600 * 2**20]			)
@pytest.mark.parametrize('input_in_memory_max_size'	, ['default', 0, 100 * 2**20, 900 * 2**20]			)
def 	a_		(	__lowercase       :     Optional[int]	, __lowercase       :     Optional[Any]	, __lowercase       :     List[str]			)			->  List[str]:
			if input_in_memory_max_size != "default":
						monkeypatch.setattr(datasets.config	, 'IN_MEMORY_MAX_SIZE'	, __lowercase			)
			_snake_case          =      datasets.config.IN_MEMORY_MAX_SIZE
			if input_in_memory_max_size == "default":
						assert in_memory_max_size == 0
			else:
						assert in_memory_max_size == input_in_memory_max_size
			if dataset_size and in_memory_max_size:
						_snake_case          =      dataset_size < in_memory_max_size
			else:
						_snake_case          =      False
			_snake_case          =      is_small_dataset(__lowercase			)
			assert result == expected

from functools import lru_cache






@lru_cache
def 	a_		(	__lowercase       :     int			)			->  int:
			if num < 0:
						raise ValueError('Number should not be negative.'			)

			return 1 if num in (0, 1) else num * factorial(num - 1			)


if __name__ == "__main__":
			import doctest

			doctest.testmod()