def test_get_adjacent_words_empty_inputs(self):
     """
     Checks that function can handle empty argument inputs
     """
     expected = []
     actual = get_adjacent_words([], 'happy', 2, 3)
     self.assertEqual(expected, actual)
     actual = get_adjacent_words(['happy'], '', 2, 3)
     self.assertEqual(expected, actual)
 def test_get_adjacent_words_bad_number_inputs(self):
     """
     Checks that function can handle incorrect number inputs
     """
     expected = []
     actual = get_adjacent_words(['happy', 'man'], 'happy', -1, 0)
     self.assertEqual(expected, actual)
     actual = get_adjacent_words(['happy', 'man'], 'man', -1, 0)
     self.assertEqual(expected, actual)
     expected = [['man']]
     actual = get_adjacent_words(['happy', 'man'], 'happy', 0, 1)
     self.assertEqual(expected, actual)
 def test_get_adjacent_words_bad_inputs(self):
     """
     Checks that function can handle incorrect inputs
     """
     bad_inputs = [[], {}, 'string', (), None, 9.34, True, [None]]
     expected = []
     for bad_input in bad_inputs:
         actual_1 = get_adjacent_words(['happy', 'man', 'went'], 'man',
                                       bad_input, bad_input)
         actual_2 = get_adjacent_words(bad_input, 'happy', 2, 3)
         actual_3 = get_adjacent_words(['happy', 'man', 'went'], bad_input,
                                       1, 2)
         self.assertEqual(expected, actual_1)
         self.assertEqual(expected, actual_2)
         self.assertEqual(expected, actual_3)
 def test_get_adjacent_words_big_right_number_input(self):
     """
     Checks if function can handle great right range numbers,
     that exceed the number of given tokens
     """
     expected = [['man']]
     actual = get_adjacent_words(['one', 'happy', 'man'], 'happy', 0, 1000)
     self.assertEqual(expected, actual)
 def test_big_text_get_adjacent_words_term(self):
     """
     Checks if adjacent words for a given term can be found properly
     """
     text = read_from_file('lab_1/data.txt')
     tokens = tokenize(text)
     expected = [['although', 'products']]
     actual = get_adjacent_words(tokens, 'tex', 4, 31)
     self.assertEqual(expected, actual)
    def test_get_adjacent_words_several_contexts_big_text(self):
        """
        Checks if adjacent words for a given term can be found in real text properly
        """
        text = read_from_file('lab_1/data.txt')
        tokens = tokenize(text)

        expected = [['epithelial', 'channels'], ['means', 'aluminate'],
                    ['by', 'bicarbonate'], ['the', 'salt']]
        actual = get_adjacent_words(tokens, 'sodium', 1, 1)
        self.assertEqual(expected, actual)
    def test_get_adjacent_words_ideal(self):
        """
        Ideal get adjacent words scenario
        """
        tokens = [
            'the', 'weather', 'is', 'sunny', 'the', 'man', 'is', 'happy',
            'the', 'dog', 'is', 'happy', 'but', 'the', 'cat', 'is', 'sad'
        ]
        word = 'happy'
        left_n = 2
        right_n = 3

        expected = [['man', 'is'], ['dog', 'cat']]
        actual = get_adjacent_words(tokens, word, left_n, right_n)
        self.assertEqual(expected, actual)