As of now, we only have a single evaluation task, that is, "provide tests for this code". In a future release we want to run other tasks as well, like "repair this compilation error". For this, we need structural changes.
Tasks:
[x] Introduce string enum TaskIdentifier
[x] Change Model interface such that it has a RunTask(TaskIdentifier,...) method
[x] Remove GenerateTestsForFile from Model interface as this becomes a task
[x] Add a method IsTaskSupported(TaskIdentifier) to the Model interface to let models specify if they support a specific task.
[x] Introduce proper Repository type
[x] Each repository can allow/disallow certain tasks
[x] This should not be hardcoded. Therefore a repository.json file can be created in the repository's root directory. If no such file exists, all tasks are allowed.
[ ] Create Task interface and suitable implementations
[ ] TaskPostRunTests which calls Model.RunTask and then runs the repository tests to validate the result
As of now, we only have a single evaluation task, that is, "provide tests for this code". In a future release we want to run other tasks as well, like "repair this compilation error". For this, we need structural changes.
Tasks:
TaskIdentifier
Model
interface such that it has aRunTask(TaskIdentifier,...)
methodGenerateTestsForFile
fromModel
interface as this becomes a taskIsTaskSupported(TaskIdentifier)
to theModel
interface to let models specify if they support a specific task.Repository
typerepository.json
file can be created in the repository's root directory. If no such file exists, all tasks are allowed.Task
interface and suitable implementationsTaskPostRunTests
which callsModel.RunTask
and then runs the repository tests to validate the result