def test_float_result(self): """ Checks that returned result is float """ corpus = ('i', 'have', 'a', 'cat', '<END>', 'his', 'name', 'is', 'bruno', '<END>', 'i', 'have', 'a', 'dog', 'too', '<END>', 'his', 'name', 'is', 'rex', '<END>', 'her', 'name', 'is', 'rex', 'too', '<END>') storage = WordStorage() storage.update(corpus) encoded = encode_text(storage, corpus) trie = NGramTrie(2, encoded) context = (storage.get_id('i'), ) word = storage.get_id('have') generator = LikelihoodBasedTextGenerator(storage, trie) actual = generator._calculate_maximum_likelihood(word, context) self.assertEqual(float, type(actual))
def test_calculate_likelihood_no_such_context(self): corpus = ('i', 'have', 'a', 'cat', '<END>', 'his', 'name', 'is', 'bruno', '<END>', 'i', 'have', 'a', 'dog', 'too', '<END>', 'his', 'name', 'is', 'rex', '<END>', 'her', 'name', 'is', 'rex', 'too', '<END>') storage = WordStorage() storage.update(corpus) encoded = encode_text(storage, corpus) trie = NGramTrie(3, encoded) word = storage.get_id('dog') context = (storage.get_id('<END>'), storage.get_id('<END>'),) generator = LikelihoodBasedTextGenerator(storage, trie) expected = 0.0 actual = generator._calculate_maximum_likelihood(word, context) self.assertEqual(expected, actual)