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

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

import _pytest

from transformers.testing_utils import HfDoctestModule, HfDocTestParser


# allow having multiple repository checkouts and not needing to remember to rerun
# 'pip install -e .[dev]' when switching between checkouts and running tests.
lowerCamelCase__     :		List[Any]        = abspath(join(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 		UpperCamelCase						(   lowercase_ )		->						Optional[Any]:


  '''simple docstring'''






  config.addinivalue_line(
      """markers"""			,			"""is_pt_tf_cross_test: mark test to run only when PT and TF interactions are tested""" )
  config.addinivalue_line(
      """markers"""			,			"""is_pt_flax_cross_test: mark test to run only when PT and FLAX interactions are tested""" )
  config.addinivalue_line("""markers"""			,			"""is_pipeline_test: mark test to run only when pipelines are tested""" )
  config.addinivalue_line("""markers"""			,			"""is_staging_test: mark test to run only in the staging environment""" )
  config.addinivalue_line("""markers"""			,			"""accelerate_tests: mark test that require accelerate""" )
  config.addinivalue_line("""markers"""			,			"""tool_tests: mark the tool tests that are run on their specific schedule""" )

def 		UpperCamelCase						(   lowercase_ )		->						Dict:


  '''simple docstring'''






  from transformers.testing_utils import pytest_addoption_shared

  pytest_addoption_shared(lowercase_ )

def 		UpperCamelCase						(   lowercase_ )		->						Union[str, Any]:


  '''simple docstring'''






  from transformers.testing_utils import pytest_terminal_summary_main

  lowercase__	: List[str]     		=   terminalreporter.config.getoption("""--make-reports""" )
  if make_reports:
    pytest_terminal_summary_main(lowercase_			,			id=lowercase_ )

def 		UpperCamelCase						(   lowercase_			,			lowercase_ )		->						List[str]:


  '''simple docstring'''






  if exitstatus == 5:
    lowercase__	: Optional[Any]     		=   0


# Doctest custom flag to ignore output.
lowerCamelCase__     :		Dict        = doctest.register_optionflag("""IGNORE_RESULT""")

lowerCamelCase__     :		List[str]        = doctest.OutputChecker



class    _snake_case (						UpperCAmelCase_				):


 def   lowercase__  (       self       ,	SCREAMING_SNAKE_CASE_       ,	SCREAMING_SNAKE_CASE_       ,	SCREAMING_SNAKE_CASE_):


   '''simple docstring'''




   if IGNORE_RESULT & optionflags:
     return True
   return OutputChecker.check_output(self       ,	SCREAMING_SNAKE_CASE_       ,	SCREAMING_SNAKE_CASE_       ,	SCREAMING_SNAKE_CASE_)

lowerCamelCase__     :		Optional[Any]        = CustomOutputChecker
lowerCamelCase__     :		Tuple        = HfDoctestModule



lowerCamelCase__     :		Union[str, Any]        = HfDocTestParser













import numpy as np
from sklearn.datasets import fetch_california_housing
from sklearn.metrics import mean_absolute_error, mean_squared_error
from sklearn.model_selection import train_test_split
from xgboost import XGBRegressor


def       SCREAMING_SNAKE_CASE__  (       _lowercase     : dict			)   ->							tuple:




		'''simple docstring'''
		return (data["data"], data["target"])


def       SCREAMING_SNAKE_CASE__  (       _lowercase     : np.ndarray   ,    _lowercase     : np.ndarray   ,    _lowercase     : np.ndarray			)   ->							np.ndarray:




		'''simple docstring'''
		lowercase__					:      List[str]      =		XGBRegressor(verbosity=0   ,    random_state=42			)
		xgb.fit(_lowercase   ,    _lowercase			)
		# Predict target for test data
		lowercase__					:      Union[str, Any]      =		xgb.predict(_lowercase			)
		lowercase__					:      Tuple      =		predictions.reshape(len(_lowercase			)   ,    1			)
		return predictions


def       SCREAMING_SNAKE_CASE__  (       )   ->							None:




		'''simple docstring'''
		lowercase__					:      List[str]      =		fetch_california_housing()
		lowercase__   ,				lowercase__					:      Optional[int]      =		data_handling(_lowercase			)
		lowercase__   ,				lowercase__   ,				lowercase__   ,				lowercase__					:      Optional[Any]      =		train_test_split(
		    _lowercase   ,    _lowercase   ,    test_size=0.25   ,    random_state=1			)
		lowercase__					:      Any      =		xgboost(_lowercase   ,    _lowercase   ,    _lowercase			)
		# Error printing
		print(f"""Mean Absolute Error : {mean_absolute_error(_lowercase   ,    _lowercase			)}"""			)
		print(f"""Mean Square Error  : {mean_squared_error(_lowercase   ,    _lowercase			)}"""			)


if __name__ == "__main__":
			import doctest

			doctest.testmod(verbose=True)
			main()


