| | from unittest import TestCase |
| |
|
| | from autogpt.promptgenerator import PromptGenerator |
| |
|
| |
|
| | class TestPromptGenerator(TestCase): |
| | """ |
| | Test cases for the PromptGenerator class, which is responsible for generating |
| | prompts for the AI with constraints, commands, resources, and performance evaluations. |
| | """ |
| |
|
| | @classmethod |
| | def setUpClass(cls): |
| | """ |
| | Set up the initial state for each test method by creating an instance of PromptGenerator. |
| | """ |
| | cls.generator = PromptGenerator() |
| |
|
| | |
| | def test_add_constraint(self): |
| | """ |
| | Test if the add_constraint() method adds a constraint to the generator's constraints list. |
| | """ |
| | constraint = "Constraint1" |
| | self.generator.add_constraint(constraint) |
| | self.assertIn(constraint, self.generator.constraints) |
| |
|
| | |
| | def test_add_command(self): |
| | """ |
| | Test if the add_command() method adds a command to the generator's commands list. |
| | """ |
| | command_label = "Command Label" |
| | command_name = "command_name" |
| | args = {"arg1": "value1", "arg2": "value2"} |
| | self.generator.add_command(command_label, command_name, args) |
| | command = { |
| | "label": command_label, |
| | "name": command_name, |
| | "args": args, |
| | } |
| | self.assertIn(command, self.generator.commands) |
| |
|
| | def test_add_resource(self): |
| | """ |
| | Test if the add_resource() method adds a resource to the generator's resources list. |
| | """ |
| | resource = "Resource1" |
| | self.generator.add_resource(resource) |
| | self.assertIn(resource, self.generator.resources) |
| |
|
| | def test_add_performance_evaluation(self): |
| | """ |
| | Test if the add_performance_evaluation() method adds an evaluation to the generator's |
| | performance_evaluation list. |
| | """ |
| | evaluation = "Evaluation1" |
| | self.generator.add_performance_evaluation(evaluation) |
| | self.assertIn(evaluation, self.generator.performance_evaluation) |
| |
|
| | def test_generate_prompt_string(self): |
| | """ |
| | Test if the generate_prompt_string() method generates a prompt string with all the added |
| | constraints, commands, resources, and evaluations. |
| | """ |
| | |
| | constraints = ["Constraint1", "Constraint2"] |
| | commands = [ |
| | { |
| | "label": "Command1", |
| | "name": "command_name1", |
| | "args": {"arg1": "value1"}, |
| | }, |
| | { |
| | "label": "Command2", |
| | "name": "command_name2", |
| | "args": {}, |
| | }, |
| | ] |
| | resources = ["Resource1", "Resource2"] |
| | evaluations = ["Evaluation1", "Evaluation2"] |
| |
|
| | |
| | for constraint in constraints: |
| | self.generator.add_constraint(constraint) |
| | for command in commands: |
| | self.generator.add_command( |
| | command["label"], command["name"], command["args"] |
| | ) |
| | for resource in resources: |
| | self.generator.add_resource(resource) |
| | for evaluation in evaluations: |
| | self.generator.add_performance_evaluation(evaluation) |
| |
|
| | |
| | prompt_string = self.generator.generate_prompt_string() |
| | self.assertIsNotNone(prompt_string) |
| |
|
| | |
| | for constraint in constraints: |
| | self.assertIn(constraint, prompt_string) |
| | for command in commands: |
| | self.assertIn(command["name"], prompt_string) |
| | for key, value in command["args"].items(): |
| | self.assertIn(f'"{key}": "{value}"', prompt_string) |
| | for resource in resources: |
| | self.assertIn(resource, prompt_string) |
| | for evaluation in evaluations: |
| | self.assertIn(evaluation, prompt_string) |
| |
|
| | self.assertIn("constraints", prompt_string.lower()) |
| | self.assertIn("commands", prompt_string.lower()) |
| | self.assertIn("resources", prompt_string.lower()) |
| | self.assertIn("performance evaluation", prompt_string.lower()) |
| |
|