add mapping support, pronoun conjugation to actor stance callables

This commit is contained in:
Cal 2024-04-21 15:18:09 -06:00
parent 7f41e5a649
commit f755f052d3
4 changed files with 119 additions and 24 deletions

View file

@ -435,6 +435,7 @@ class TestDefaultCallables(TestCase):
("$You() $conj(smile) at him.", "You smile at him.", "Char1 smiles at him."),
("$You() $conj(smile) at $You(char1).", "You smile at You.", "Char1 smiles at Char1."),
("$You() $conj(smile) at $You(char2).", "You smile at Char2.", "Char1 smiles at You."),
("$You() $conj(smile) while $You(char2) $conj(waves, char2).", "You smile while Char2 waves.", "Char1 smiles while You wave."),
(
"$You(char2) $conj(smile) at $you(char1).",
"Char2 smile at you.",
@ -512,6 +513,15 @@ class TestDefaultCallables(TestCase):
ret = self.parser.parse(string, caller=self.obj1, raise_errors=True)
self.assertEqual(expected, ret)
def test_pronoun_mapping(self):
self.obj1.gender = "female"
self.obj2.gender = "male"
string = "Char1 raises $pron(your, char1) fist as Char2 raises $pron(yours, char2)"
expected = "Char1 raises her fist as Char2 raises his"
ret = self.parser.parse(string, caller=self.obj1, mapping={'char1': self.obj1, 'char2': self.obj2}, raise_errors=True)
self.assertEqual(expected, ret)
def test_pronoun_viewpoint(self):
string = "Char1 smiles at $pron(I)"