




'''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      lowerCAmelCase (			unittest.TestCase):


       def __init__( self     ,	__SCREAMING_SNAKE_CASE	)   ->	List[Any]:



            '''simple docstring'''




            __snake_case            =	parent




       def    lowerCAmelCase   ( self	)   ->	str:



            '''simple docstring'''




            return {}







def       _UpperCamelCase			()-> List[Any]:




     '''simple docstring'''





     __snake_case            =	'''<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>'''

     __snake_case            =	'''\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      lowerCAmelCase (			_a					, unittest.TestCase):
       __lowercase	:   Optional[Any]										=      MarkupLMFeatureExtractor if is_bsa_available() else None


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



            '''simple docstring'''




            __snake_case            =	MarkupLMFeatureExtractionTester(self	)


       @property
       def    lowerCAmelCase   ( self	)   ->	Any:



            '''simple docstring'''




            return self.feature_extract_tester.prepare_feat_extract_dict()




       def    lowerCAmelCase   ( self	)   ->	List[str]:



            '''simple docstring'''




            __snake_case            =	self.feature_extraction_class()

            # Test not batched input
            __snake_case            =	get_html_strings()[0]
            __snake_case            =	feature_extractor(__SCREAMING_SNAKE_CASE	)

            # fmt: off
            __snake_case            =	[['''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''']]
            __snake_case            =	[['''/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     ,	__SCREAMING_SNAKE_CASE	)
            self.assertEqual(encoding.xpaths     ,	__SCREAMING_SNAKE_CASE	)

            # Test batched
            __snake_case            =	get_html_strings()
            __snake_case            =	feature_extractor(__SCREAMING_SNAKE_CASE	)

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

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

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










def 						_lowerCAmelCase							(     _lowerCAmelCase			)    ->						int:


						'''simple docstring'''






						assert column_title.isupper()
						__snake_case				=		0
						__snake_case				=		len(_lowerCAmelCase			) - 1
						__snake_case				=		0

						while index >= 0:
												__snake_case				=		(ord(column_title[index]			) - 64) * pow(26   ,						_lowerCAmelCase			)
												answer += value
												power += 1
												index -= 1

						return answer


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

	testmod()





