

import unittest

from transformers import load_tool

from .test_tools_common import ToolTesterMixin


lowerCAmelCase__						=	"""
Hugging Face was founded in 2016 by French entrepreneurs Clément Delangue, Julien Chaumond, and Thomas Wolf originally as a company that developed a chatbot app targeted at teenagers.[2] After open-sourcing the model behind the chatbot, the company pivoted to focus on being a platform for machine learning.

In March 2021, Hugging Face raised $40 million in a Series B funding round.[3]

On April 28, 2021, the company launched the BigScience Research Workshop in collaboration with several other research groups to release an open large language model.[4] In 2022, the workshop concluded with the announcement of BLOOM, a multilingual large language model with 176 billion parameters.[5]
"""

class    a__  (   unittest.TestCase							,		snake_case     ):
			"""simple docstring"""







			def        UpperCamelCase						(      self    )					->  int:
							'''simple docstring'''






							A__            =     load_tool("summarization"    )
							self.tool.setup()
							A__            =     load_tool("summarization" , remote=lowercase    )


			def        UpperCamelCase						(      self    )					->  Optional[int]:
							'''simple docstring'''






							A__            =     self.tool(lowercase    )
							self.assertEqual(
							    lowercase , "Hugging Face was founded in 2016 by French entrepreneurs Clément Delangue, Julien Chaumond, and Thomas Wolf. In March 2021, Hugging Face raised $40 million in a Series B funding round. On April 28, 2021, the company launched the BigScience Research Workshop in collaboration with several other research groups to release an open large language model. In 2022, the workshop concluded with the announcement of BLOOM." , )


			def        UpperCamelCase						(      self    )					->  List[Any]:
							'''simple docstring'''






							A__            =     self.remote_tool(lowercase    )
							self.assertEqual(
							    lowercase , "Hugging Face was founded in 2016 by French entrepreneurs Clément Delangue, Julien Chaumond, and Thomas Wolf. In March 2021, Hugging Face raised $40 million in a Series B funding round. On April 28, 2021, the company launched the BigScience Research Workshop in collaboration with several other research groups to release an open large language model. In 2022, the workshop concluded with the announcement of BLOOM." , )


			def        UpperCamelCase						(      self    )					->  List[str]:
							'''simple docstring'''






							A__            =     self.tool(text=lowercase    )
							self.assertEqual(
							    lowercase , "Hugging Face was founded in 2016 by French entrepreneurs Clément Delangue, Julien Chaumond, and Thomas Wolf. In March 2021, Hugging Face raised $40 million in a Series B funding round. On April 28, 2021, the company launched the BigScience Research Workshop in collaboration with several other research groups to release an open large language model. In 2022, the workshop concluded with the announcement of BLOOM." , )


			def        UpperCamelCase						(      self    )					->  Tuple:
							'''simple docstring'''






							A__            =     self.remote_tool(text=lowercase    )
							self.assertEqual(
							    lowercase , "Hugging Face was founded in 2016 by French entrepreneurs Clément Delangue, Julien Chaumond, and Thomas Wolf. In March 2021, Hugging Face raised $40 million in a Series B funding round. On April 28, 2021, the company launched the BigScience Research Workshop in collaboration with several other research groups to release an open large language model. In 2022, the workshop concluded with the announcement of BLOOM." , )




import unittest

from cer import CER


lowerCAmelCase__						=	CER()

class    a__  (   unittest.TestCase     ):
			"""simple docstring"""







			def        UpperCamelCase						(      self    )					->  Tuple:
							'''simple docstring'''






							A__            =     ["White House"]
							A__            =     ["white house"]
							# S = 2, D = 0, I = 0, N = 11, CER = 2 / 11
							A__            =     cer.compute(predictions=lowercase , references=lowercase    )
							self.assertTrue(abs(char_error_rate - 0.18_1818_1818    ) < 1e-6    )


			def        UpperCamelCase						(      self    )					->  Any:
							'''simple docstring'''






							A__            =     ["were wolf"]
							A__            =     ["werewolf"]
							# S = 0, D = 0, I = 1, N = 9, CER = 1 / 9
							A__            =     cer.compute(predictions=lowercase , references=lowercase    )
							self.assertTrue(abs(char_error_rate - 0.111_1111    ) < 1e-6    )

							A__            =     ["werewolf"]
							A__            =     ["weae     wolf"]
							# S = 1, D = 1, I = 0, N = 8, CER = 0.25
							A__            =     cer.compute(predictions=lowercase , references=lowercase    )
							self.assertTrue(abs(char_error_rate - 0.25    ) < 1e-6    )

							# consecutive whitespaces case 1
							A__            =     ["were wolf"]
							A__            =     ["were               wolf"]
							# S = 0, D = 0, I = 0, N = 9, CER = 0
							A__            =     cer.compute(predictions=lowercase , references=lowercase    )
							self.assertTrue(abs(char_error_rate - 0.0    ) < 1e-6    )

							# consecutive whitespaces case 2
							A__            =     ["were   wolf"]
							A__            =     ["were               wolf"]
							# S = 0, D = 0, I = 0, N = 9, CER = 0
							A__            =     cer.compute(predictions=lowercase , references=lowercase    )
							self.assertTrue(abs(char_error_rate - 0.0    ) < 1e-6    )


			def        UpperCamelCase						(      self    )					->  str:
							'''simple docstring'''






							A__            =     ["werewolf"]
							A__            =     ["weaewolf"]
							# S = 1, D = 0, I = 0, N = 8, CER = 0.125
							A__            =     cer.compute(predictions=lowercase , references=lowercase    )
							self.assertTrue(abs(char_error_rate - 0.125    ) < 1e-6    )


			def        UpperCamelCase						(      self    )					->  Tuple:
							'''simple docstring'''






							A__            =     ["werewolf"]
							A__            =     ["wereawolf"]
							# S = 0, D = 1, I = 0, N = 8, CER = 0.125
							A__            =     cer.compute(predictions=lowercase , references=lowercase    )
							self.assertTrue(abs(char_error_rate - 0.125    ) < 1e-6    )


			def        UpperCamelCase						(      self    )					->  str:
							'''simple docstring'''






							A__            =     ["werewolf"]
							A__            =     ["wereolf"]
							# S = 0, D = 0, I = 1, N = 8, CER = 0.125
							A__            =     cer.compute(predictions=lowercase , references=lowercase    )
							self.assertTrue(abs(char_error_rate - 0.125    ) < 1e-6    )


			def        UpperCamelCase						(      self    )					->  str:
							'''simple docstring'''






							A__            =     ["werewolf"]
							A__            =     cer.compute(predictions=lowercase , references=lowercase    )
							self.assertEqual(lowercase , 0.0    )


			def        UpperCamelCase						(      self    )					->  Any:
							'''simple docstring'''






							A__            =     ["werewolf", "I am your father"]
							A__            =     cer.compute(predictions=lowercase , references=lowercase    )
							self.assertEqual(lowercase , 0.0    )

							A__            =     ["werewolf", "I am your father", "doge"]
							A__            =     ["werxwolf", "I       am your father", "doge"]
							# S = 1, D = 0, I = 0, N = 28, CER = 1 / 28
							A__            =     cer.compute(predictions=lowercase , references=lowercase    )
							self.assertTrue(abs(char_error_rate - 0.0357_1428    ) < 1e-6    )


			def        UpperCamelCase						(      self    )					->  str:
							'''simple docstring'''






							A__            =     ["My hovercraft", "is full of eels"]
							A__            =     ["My hovercraft is full", " of eels"]
							# S = 0, D = 0, I = 2, N = 28, CER = 2 / 28
							# whitespace at the front of " of eels" will be strip during preporcessing
							# so need to insert 2 whitespaces
							A__            =     cer.compute(predictions=lowercase , references=lowercase , concatenate_texts=lowercase    )
							self.assertTrue(abs(char_error_rate - 0.07_1428    ) < 1e-6    )


			def        UpperCamelCase						(      self    )					->  List[str]:
							'''simple docstring'''






							A__            =     ["我能吞下玻璃而不伤身体"]
							A__            =     [" 能吞虾玻璃而 不霜身体啦"]
							# S = 3, D = 2, I = 0, N = 11, CER = 5 / 11
							A__            =     cer.compute(predictions=lowercase , references=lowercase    )
							self.assertTrue(abs(char_error_rate - 0.45_4545_4545    ) < 1e-6    )

							A__            =     ["我能吞下玻璃", "而不伤身体"]
							A__            =     ["我    能 吞 下 玻 璃", "而不伤身体"]
							# S = 0, D = 5, I = 0, N = 11, CER = 5 / 11
							A__            =     cer.compute(predictions=lowercase , references=lowercase    )
							self.assertTrue(abs(char_error_rate - 0.4545_4545_4545    ) < 1e-6    )

							A__            =     ["我能吞下玻璃而不伤身体"]
							A__            =     cer.compute(predictions=lowercase , references=lowercase    )
							self.assertFalse(lowercase , 0.0    )


			def        UpperCamelCase						(      self    )					->  Optional[Any]:
							'''simple docstring'''






							A__            =     [""]
							A__            =     ["Hypothesis"]
							with self.assertRaises(lowercase    ):
											cer.compute(predictions=lowercase , references=lowercase    )


if __name__ == "__main__":
	unittest.main()

