def test_sentence_particle_preposition(self): random.seed(2743) nouns = [Noun('dog'), Noun('cat')] verbs = [ VerbGroup(verb=Verb('pick'), objects=2, preposition=BasicWord.preposition('with'), particle=BasicWord.particle('up')) ] generator = RandomSentences(verbs, nouns) subj = HE sentence = generator.sentence(subj, p_pronoun=1.0) expected = Sentence([ HE, Verb('pick'), THEM, BasicWord.particle('up'), BasicWord.preposition('with'), Noun('cat'), PERIOD ]) self.assertEqual(sentence, expected) sentence = generator.sentence(subj, p_pronoun=0.0) expected = Sentence([ HE, Verb('pick'), BasicWord.particle('up'), Noun('cat'), BasicWord.preposition('with'), Noun('dog'), EXCLAMATION ]) self.assertEqual(sentence, expected)
def test_sentence_particle(self): random.seed(47) nouns = [Noun('dog')] verbs = [ VerbGroup(verb=Verb('pick'), objects=1, preposition=None, particle=BasicWord.particle('up')) ] generator = RandomSentences(verbs, nouns) subj = HE sentence = generator.sentence(subj, p_pronoun=1.0) expected = Sentence( [HE, Verb('pick'), US, BasicWord.particle('up'), PERIOD]) self.assertEqual(sentence, expected) sentence = generator.sentence(subj, p_pronoun=0.0) expected = Sentence( [HE, Verb('pick'), BasicWord.particle('up'), Noun('dog'), PERIOD]) self.assertEqual(sentence, expected)
def test_assign_objects_one_object_particle(self): verb_group = VerbGroup(verb=Verb('pick'), preposition=None, objects=1, particle=BasicWord.particle('up')) self.assertEqual( assign_objects(verb_group, [IT]), [Verb('pick'), IT, BasicWord.particle('up')]) self.assertEqual( assign_objects(verb_group, [Noun('dog')]), [Verb('pick'), BasicWord.particle('up'), Noun('dog')])
def test_assign_objects_no_objects_particle_or_preposition(self): verb_group = VerbGroup(verb=Verb('chill'), preposition=BasicWord.preposition('out'), objects=0, particle=None) self.assertEqual( assign_objects(verb_group, []), [Verb('chill'), BasicWord.preposition('out')]) verb_group = VerbGroup(verb=Verb('run'), preposition=None, objects=0, particle=BasicWord.particle('away')) self.assertEqual(assign_objects(verb_group, []), [Verb('run'), BasicWord.particle('away')])
def test_init_verbs(self): verbs = [{ 'verb': 'take', 'irregular_past': 'took', 'objects': 2, 'particle': 'away', 'preposition': 'with' }, { 'verb': 'play', 'irregular_past': '', 'objects': 1, 'particle': '', 'preposition': '' }] lists = WordLists(verbs=verbs) expected_verbs = [ VerbGroup(verb=Verb('take', 'took'), preposition=BasicWord.preposition('with'), particle=BasicWord.particle('away'), objects=2), VerbGroup(verb=Verb('play'), preposition=None, particle=None, objects=1) ] self.assert_unordered_lists(lists.verbs, expected_verbs) self.assertEqual(lists.nouns, [])
def test_eq_false(self): verb = Verb('go') objects = 1 preposition = None particle = BasicWord.particle('x') to_test = VerbGroup(verb, preposition, particle, objects) new_verb = Verb('z') new_objects = 2 new_preposition = BasicWord.preposition('x') new_particle = BasicWord.particle('y') self.assertNotEqual(to_test, VerbGroup(new_verb, preposition, particle, objects)) self.assertNotEqual(to_test, VerbGroup(verb, new_preposition, particle, objects)) self.assertNotEqual(to_test, VerbGroup(verb, preposition, new_particle, objects)) self.assertNotEqual(to_test, VerbGroup(verb, preposition, particle, new_objects))
def test_eq_true(self): verb = Verb('go') objects = 1 preposition = None particle = BasicWord.particle('x') to_test = VerbGroup(verb, preposition, particle, objects) self.assertEqual(to_test, VerbGroup(verb, preposition, particle, objects))
def setUp(self): self.config_state = { 'error_probability': 1.0, 'noun_errors': True, 'pronoun_errors': True, 'verb_errors': True, 'is_do_errors': True, 'preposition_transpose_errors': True, 'punctuation_errors': True, 'tense': 'simple_present', 'probability_plural_noun': 1.0, 'probability_negative_verb': 1.0, 'probability_pronoun': 1.0, 'paragraph_type': 'chain', 'subject_pool': 1, 'paragraph_size': 1, } self.verbs = [ VerbGroup(Verb('go'), BasicWord.preposition('with'), BasicWord.particle('away'), 1), VerbGroup(Verb('eat'), None, None, 1) ] self.countable_nouns = [Noun('dog'), Noun('cat')] self.uncountable_nouns = [ Noun.uncountable_noun('water'), Noun.uncountable_noun('air').definite() ] self.static_nouns = [ Noun.proper_noun('Joe'), Noun.proper_noun('The Dude') ] self.word_lists = DummyWordLists(nouns=self.countable_nouns, verbs=self.verbs)
def test_assign_objects_two_objects_particle_and_preposition(self): verb_group = VerbGroup(verb=Verb('throw'), preposition=BasicWord.preposition('for'), objects=2, particle=BasicWord.particle('away')) self.assertEqual(assign_objects(verb_group, [HIM, IT]), [ Verb('throw'), HIM, BasicWord.particle('away'), BasicWord.preposition('for'), IT ]) self.assertEqual( assign_objects(verb_group, [Noun('cat'), Noun('dog')]), [ Verb('throw'), BasicWord.particle('away'), Noun('cat'), BasicWord.preposition('for'), Noun('dog') ])
def test_error_maker_preposition_errors_complex_case(self): sentence = Sentence([ Pronoun.I, Verb('pick'), Pronoun.IT, BasicWord.particle('up'), BasicWord.preposition('with'), Noun('toe').indefinite(), Punctuation.PERIOD ]) expected = Sentence([ Pronoun.I, BasicWord.preposition('with'), Noun('toe').indefinite(), Verb('pick'), Pronoun.IT, BasicWord.particle('up'), Punctuation.PERIOD ]) error_paragraph = ErrorMaker(Paragraph( [sentence])).preposition_errors(1.0).get_paragraph() self.assertEqual(error_paragraph.sentence_list(), [expected])
def test_init_with_values(self): verb = Verb('go') preposition = BasicWord.preposition('with') particle = BasicWord.particle('away') to_test = VerbGroup( verb=verb, preposition=preposition, particle=particle, objects=2) self.assertEqual(to_test.verb, verb) self.assertEqual(to_test.preposition, preposition) self.assertEqual(to_test.particle, particle) self.assertEqual(to_test.objects, 2)
def _generate_verb_group(verb_json): """ :param verb_json: keys='verb', 'irregular_past', 'objects', 'preposition', 'particle' :return: VerbGroup """ verb = Verb(verb_json['verb'], irregular_past=verb_json['irregular_past']) objects = verb_json['objects'] preposition = BasicWord.preposition(verb_json['preposition']) particle = BasicWord.particle((verb_json['particle'])) if preposition.value == '': preposition = None if particle.value == '': particle = None return VerbGroup(verb=verb, objects=objects, preposition=preposition, particle=particle)
def test_class_method_particle(self): particle = BasicWord.particle('up') self.assertEqual(particle, BasicWord('up', tags=self.particle))