


import os
import sys
import unittest


a : int		=				os.path.abspath(os.path.dirname(os.path.dirname(os.path.dirname(__file__))))
sys.path.append(os.path.join(git_repo_path, '''utils'''))

import check_dummies  # noqa: E402
from check_dummies import create_dummy_files, create_dummy_object, find_backend, read_init  # noqa: E402


# Align TRANSFORMERS_PATH in check_dummies with the current path
a : List[Any]		=				os.path.join(git_repo_path, '''src''', '''transformers''')

a : Any		=				'''
{0} = None
'''

a : Any		=				'''
class {0}(metaclass=DummyObject):
    _backends = {1}

    def __init__(self, *args, **kwargs):
        requires_backends(self, {1})
'''


a : Optional[Any]		=				'''
def {0}(*args, **kwargs):
    requires_backends({0}, {1})
'''
class 	lowerCamelCase_       (				unittest.TestCase				):



					'''simple docstring'''







					def A      (				self						)   ->			Optional[Any]:







								'''simple docstring'''

								__lowercase 					=   find_backend('''    _import_structure["models.albert"].append("AlbertTokenizerFast")'''						)
								self.assertIsNone(snake_case_						)

								__lowercase 					=   find_backend('''    if not is_tokenizers_available():'''						)
								self.assertEqual(snake_case_ ,       '''tokenizers'''						)

								__lowercase 					=   find_backend('''    if not is_tensorflow_text_available():'''						)
								self.assertEqual(snake_case_ ,       '''tensorflow_text'''						)

								__lowercase 					=   find_backend('''    if not (is_sentencepiece_available() and is_tokenizers_available()):'''						)
								self.assertEqual(snake_case_ ,       '''sentencepiece_and_tokenizers'''						)

								__lowercase 					=   find_backend(
								    '''    if not (is_sentencepiece_available() and is_tensorflow_text_available()):'''						)
								self.assertEqual(snake_case_ ,       '''sentencepiece_and_tensorflow_text'''						)

								__lowercase 					=   find_backend(
								    '''    if not (is_sentencepiece_available() and is_tokenizers_available() and is_vision_available()):'''						)
								self.assertEqual(snake_case_ ,       '''sentencepiece_and_tokenizers_and_vision'''						)






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







								'''simple docstring'''

								__lowercase 					=   read_init()
								# We don't assert on the exact list of keys to allow for smooth grow of backend-specific objects
								self.assertIn('''torch''' ,       snake_case_						)
								self.assertIn('''tensorflow_text''' ,       snake_case_						)
								self.assertIn('''sentencepiece_and_tokenizers''' ,       snake_case_						)

								# Likewise, we can't assert on the exact content of a key
								self.assertIn('''BertModel''' ,       objects['''torch''']						)
								self.assertIn('''TFBertModel''' ,       objects['''tf''']						)
								self.assertIn('''FlaxBertModel''' ,       objects['''flax''']						)
								self.assertIn('''BertModel''' ,       objects['''torch''']						)
								self.assertIn('''TFBertTokenizer''' ,       objects['''tensorflow_text''']						)
								self.assertIn('''convert_slow_tokenizer''' ,       objects['''sentencepiece_and_tokenizers''']						)






					def A      (				self						)   ->			Optional[Any]:







								'''simple docstring'''

								__lowercase 					=   create_dummy_object('''CONSTANT''' ,       '''\'torch\''''						)
								self.assertEqual(snake_case_ ,       '''\nCONSTANT = None\n'''						)

								__lowercase 					=   create_dummy_object('''function''' ,       '''\'torch\''''						)
								self.assertEqual(
								    snake_case_ ,       '''\ndef function(*args, **kwargs):\n    requires_backends(function, \'torch\')\n'''						)

								__lowercase 					=   '''
class FakeClass(metaclass=DummyObject):
    _backends = \'torch\'

    def __init__(self, *args, **kwargs):
        requires_backends(self, \'torch\')
'''
								__lowercase 					=   create_dummy_object('''FakeClass''' ,       '''\'torch\''''						)
								self.assertEqual(snake_case_ ,       snake_case_						)






					def A      (				self						)   ->			Optional[int]:







								'''simple docstring'''

								__lowercase 					=   '''# This file is autogenerated by the command `make fix-copies`, do not edit.
from ..utils import DummyObject, requires_backends


CONSTANT = None


def function(*args, **kwargs):
    requires_backends(function, ["torch"])


class FakeClass(metaclass=DummyObject):
    _backends = ["torch"]

    def __init__(self, *args, **kwargs):
        requires_backends(self, ["torch"])
'''
								__lowercase 					=   create_dummy_files({'''torch''': ['''CONSTANT''', '''function''', '''FakeClass''']}						)
								self.assertEqual(dummy_files['''torch'''] ,       snake_case_						)






import unittest

from knapsack import knapsack as k
class 	lowerCamelCase_       (				unittest.TestCase				):



					'''simple docstring'''







					def A      (				self						)   ->			Optional[Any]:







								'''simple docstring'''

								__lowercase 					=   0
								__lowercase 					=   [0]
								__lowercase 					=   [0]
								__lowercase 					=   len(snake_case_						)
								self.assertEqual(k.knapsack(snake_case_ ,       snake_case_ ,       snake_case_ ,       snake_case_						) ,       0						)

								__lowercase 					=   [6_0]
								__lowercase 					=   [1_0]
								__lowercase 					=   len(snake_case_						)
								self.assertEqual(k.knapsack(snake_case_ ,       snake_case_ ,       snake_case_ ,       snake_case_						) ,       0						)






					def A      (				self						)   ->			Tuple:







								'''simple docstring'''

								__lowercase 					=   3
								__lowercase 					=   [1, 2, 3]
								__lowercase 					=   [3, 2, 1]
								__lowercase 					=   len(snake_case_						)
								self.assertEqual(k.knapsack(snake_case_ ,       snake_case_ ,       snake_case_ ,       snake_case_						) ,       5						)






					def A      (				self						)   ->			str:







								'''simple docstring'''

								__lowercase 					=   5_0
								__lowercase 					=   [6_0, 1_0_0, 1_2_0]
								__lowercase 					=   [1_0, 2_0, 3_0]
								__lowercase 					=   len(snake_case_						)
								self.assertEqual(k.knapsack(snake_case_ ,       snake_case_ ,       snake_case_ ,       snake_case_						) ,       2_2_0						)


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


