



def    _lowerCAmelCase    (_lowerCAmelCase = 10_00):
					UpperCamelCase_  ,    UpperCamelCase_		  =   1, 1
					UpperCamelCase_		  =   []
					for i in range(1   ,	n + 1):
										UpperCamelCase_		  =   prev_numerator + 2 * prev_denominator
										UpperCamelCase_		  =   prev_numerator + prev_denominator
										if len(str(_lowerCAmelCase)) > len(str(_lowerCAmelCase)):
															result.append(_lowerCAmelCase)
										UpperCamelCase_		  =   numerator
										UpperCamelCase_		  =   denominator

					return len(_lowerCAmelCase)


if __name__ == "__main__":
	print(F"{solution() = }")





import os

import pytest

from datasets import (
    get_dataset_config_info,
    get_dataset_config_names,
    get_dataset_infos,
    get_dataset_split_names,
    inspect_dataset,
    inspect_metric,
)


UpperCAmelCase   :							Optional[Any]							 =pytest.mark.integration



@pytest.mark.parametrize("path"   ,	["paws", "csv"])
def    _lowerCAmelCase    (_lowerCAmelCase   ,	_lowerCAmelCase):
					inspect_dataset(_lowerCAmelCase   ,	_lowerCAmelCase)
					UpperCamelCase_		  =   path + ".py"
					assert script_name in os.listdir(_lowerCAmelCase)
					assert "__pycache__" not in os.listdir(_lowerCAmelCase)



@pytest.mark.filterwarnings("ignore:inspect_metric is deprecated:FutureWarning")
@pytest.mark.filterwarnings("ignore:metric_module_factory is deprecated:FutureWarning")
@pytest.mark.parametrize("path"   ,	["accuracy"])
def    _lowerCAmelCase    (_lowerCAmelCase   ,	_lowerCAmelCase):
					inspect_metric(_lowerCAmelCase   ,	_lowerCAmelCase)
					UpperCamelCase_		  =   path + ".py"
					assert script_name in os.listdir(_lowerCAmelCase)
					assert "__pycache__" not in os.listdir(_lowerCAmelCase)



@pytest.mark.parametrize(
    "path, config_name, expected_splits"   ,	[
        ("squad", "plain_text", ["train", "validation"]),
        ("dalle-mini/wit", "dalle-mini--wit", ["train"]),
        ("paws", "labeled_final", ["train", "test", "validation"]),
    ]   ,	)
def    _lowerCAmelCase    (_lowerCAmelCase   ,	_lowerCAmelCase   ,	_lowerCAmelCase):
					UpperCamelCase_		  =   get_dataset_config_info(_lowerCAmelCase   ,	config_name=_lowerCAmelCase)
					assert info.config_name == config_name
					assert list(info.splits.keys()) == expected_splits



@pytest.mark.parametrize(
    "path, config_name, expected_exception"   ,	[
        ("paws", None, ValueError),
    ]   ,	)
def    _lowerCAmelCase    (_lowerCAmelCase   ,	_lowerCAmelCase   ,	_lowerCAmelCase):
					with pytest.raises(_lowerCAmelCase):
										get_dataset_config_info(_lowerCAmelCase   ,	config_name=_lowerCAmelCase)



@pytest.mark.parametrize(
    "path, expected"   ,	[
        ("squad", "plain_text"),
        ("acronym_identification", "default"),
        ("lhoestq/squad", "plain_text"),
        ("lhoestq/test", "default"),
        ("lhoestq/demo1", "lhoestq--demo1"),
        ("dalle-mini/wit", "dalle-mini--wit"),
    ]   ,	)
def    _lowerCAmelCase    (_lowerCAmelCase   ,	_lowerCAmelCase):
					UpperCamelCase_		  =   get_dataset_config_names(_lowerCAmelCase)
					assert expected in config_names



@pytest.mark.parametrize(
    "path, expected_configs, expected_splits_in_first_config"   ,	[
        ("squad", ["plain_text"], ["train", "validation"]),
        ("dalle-mini/wit", ["dalle-mini--wit"], ["train"]),
        ("paws", ["labeled_final", "labeled_swap", "unlabeled_final"], ["train", "test", "validation"]),
    ]   ,	)
def    _lowerCAmelCase    (_lowerCAmelCase   ,	_lowerCAmelCase   ,	_lowerCAmelCase):
					UpperCamelCase_		  =   get_dataset_infos(_lowerCAmelCase)
					assert list(infos.keys()) == expected_configs
					UpperCamelCase_		  =   expected_configs[0]
					assert expected_config in infos
					UpperCamelCase_		  =   infos[expected_config]
					assert info.config_name == expected_config
					assert list(info.splits.keys()) == expected_splits_in_first_config



@pytest.mark.parametrize(
    "path, expected_config, expected_splits"   ,	[
        ("squad", "plain_text", ["train", "validation"]),
        ("dalle-mini/wit", "dalle-mini--wit", ["train"]),
        ("paws", "labeled_final", ["train", "test", "validation"]),
    ]   ,	)
def    _lowerCAmelCase    (_lowerCAmelCase   ,	_lowerCAmelCase   ,	_lowerCAmelCase):
					UpperCamelCase_		  =   get_dataset_infos(_lowerCAmelCase)
					assert expected_config in infos
					UpperCamelCase_		  =   infos[expected_config]
					assert info.config_name == expected_config
					assert list(info.splits.keys()) == expected_splits






@pytest.mark.parametrize(
    "path, config_name, expected_exception"   ,	[
        ("paws", None, ValueError),
    ]   ,	)
def    _lowerCAmelCase    (_lowerCAmelCase   ,	_lowerCAmelCase   ,	_lowerCAmelCase):
					with pytest.raises(_lowerCAmelCase):
										get_dataset_split_names(_lowerCAmelCase   ,	config_name=_lowerCAmelCase)
