



'''simple docstring'''


import unittest

from transformers.testing_utils import require_bsa
from transformers.utils import is_bsa_available

from ...test_feature_extraction_common import FeatureExtractionSavingTestMixin


if is_bsa_available():
  from transformers import MarkupLMFeatureExtractor







class 	UpperCAmelCase	(		unittest.TestCase):


 '''simple docstring'''




 def __init__(   self							,  lowerCAmelCase_) ->      int:



      """simple docstring"""







      a_       		=parent




 def       lowercase_  (   self) ->      Tuple:



      """simple docstring"""







      return {}






def  UpperCAmelCase_       (		):


     '''simple docstring'''







     a_       		="<HTML>\n\n    <HEAD>\n    <TITLE>sample document</TITLE>\n    </HEAD>\n\n    <BODY BGCOLOR=\"FFFFFF\">\n    <HR>\n    <a href=\"http://google.com\">Goog</a>\n    <H1>This is one header</H1>\n    <H2>This is a another Header</H2>\n    <P>Travel from\n        <P>\n        <B>SFO to JFK</B>\n        <BR>\n        <B><I>on May 2, 2015 at 2:00 pm. For details go to confirm.com </I></B>\n        <HR>\n        <div style=\"color:#0000FF\">\n            <h3>Traveler <b> name </b> is\n            <p> John Doe </p>\n        </div>"

     a_       		="\n    <!DOCTYPE html>\n    <html>\n    <body>\n\n    <h1>My First Heading</h1>\n    <p>My first paragraph.</p>\n\n    </body>\n    </html>\n    "

     return [html_string_a, html_string_a]







@require_bsa
class 	UpperCAmelCase	(		__a					,	unittest.TestCase):


 '''simple docstring'''




 __magic_name__					: Optional[int]  =      MarkupLMFeatureExtractor if is_bsa_available() else None




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



      """simple docstring"""







      a_       		=MarkupLMFeatureExtractionTester(self)




 @property
 def       lowercase_  (   self) ->      Dict:



      """simple docstring"""







      return self.feature_extract_tester.prepare_feat_extract_dict()




 def       lowercase_  (   self) ->      List[Any]:



      """simple docstring"""







      a_       		=self.feature_extraction_class()

      # Test not batched input
      a_       		=get_html_strings()[0]
      a_       		=feature_extractor(lowerCAmelCase_)

      # fmt: off
      a_       		=[["sample document", "Goog", "This is one header", "This is a another Header", "Travel from", "SFO to JFK", "on May 2, 2015 at 2:00 pm. For details go to confirm.com", "Traveler", "name", "is", "John Doe"]]
      a_       		=[["/html/head/title", "/html/body/a", "/html/body/h1", "/html/body/h2", "/html/body/p", "/html/body/p/p/b[1]", "/html/body/p/p/b[2]/i", "/html/body/p/p/div/h3", "/html/body/p/p/div/h3/b", "/html/body/p/p/div/h3", "/html/body/p/p/div/h3/p"]]
      # fmt: on

      self.assertEqual(encoding.nodes							,  lowerCAmelCase_)
      self.assertEqual(encoding.xpaths							,  lowerCAmelCase_)

      # Test batched
      a_       		=get_html_strings()
      a_       		=feature_extractor(lowerCAmelCase_)

      # fmt: off
      a_       		=expected_nodes + [["My First Heading", "My first paragraph."]]
      a_       		=expected_xpaths + [["/html/body/h1", "/html/body/p"]]

      self.assertEqual(len(encoding.nodes)							,  2)
      self.assertEqual(len(encoding.xpaths)							,  2)

      self.assertEqual(encoding.nodes							,  lowerCAmelCase_)
      self.assertEqual(encoding.xpaths							,  lowerCAmelCase_)







'''simple docstring'''


from .testing import (
    are_the_same_tensors,
    execute_subprocess_async,
    require_bnb,
    require_cpu,
    require_cuda,
    require_huggingface_suite,
    require_mps,
    require_multi_gpu,
    require_multi_xpu,
    require_safetensors,
    require_single_gpu,
    require_single_xpu,
    require_torch_min_version,
    require_tpu,
    require_xpu,
    skip,
    slow,
)
from .training import RegressionDataset, RegressionModel, RegressionModelaXPU


from .scripts import test_script, test_sync, test_ops  # isort: skip


