diff --git a/cmd/eval-dev-quality/cmd/evaluate_test.go b/cmd/eval-dev-quality/cmd/evaluate_test.go index 9fbd5550..572e1e70 100644 --- a/cmd/eval-dev-quality/cmd/evaluate_test.go +++ b/cmd/eval-dev-quality/cmd/evaluate_test.go @@ -253,7 +253,7 @@ func TestEvaluateExecute(t *testing.T) { filepath.Join("result-directory", "README.md"): func(t *testing.T, filePath, data string) { validateReportLinks(t, data, []string{"symflower_symbolic-execution"}) }, - filepath.Join("result-directory", string(evaluatetask.IdentifierWriteTests), "symflower_symbolic-execution", "golang", "golang", "plain.log"): nil, + filepath.Join("result-directory", string(evaluatetask.IdentifierWriteTests), "symflower_symbolic-execution", "golang", "golang", "plain", "evaluation.log"): nil, }, }) validate(t, &testCase{ @@ -339,10 +339,10 @@ func TestEvaluateExecute(t *testing.T) { filepath.Join("result-directory", "README.md"): func(t *testing.T, filePath, data string) { validateReportLinks(t, data, []string{"symflower_symbolic-execution"}) }, - filepath.Join("result-directory", string(evaluatetask.IdentifierWriteTests), "symflower_symbolic-execution", "golang", "golang", "plain.log"): func(t *testing.T, filePath, data string) { + filepath.Join("result-directory", string(evaluatetask.IdentifierWriteTests), "symflower_symbolic-execution", "golang", "golang", "plain", "evaluation.log"): func(t *testing.T, filePath, data string) { assert.Contains(t, data, "coverage objects: [{") }, - filepath.Join("result-directory", string(evaluatetask.IdentifierWriteTests), "symflower_symbolic-execution", "java", "java", "plain.log"): func(t *testing.T, filePath, data string) { + filepath.Join("result-directory", string(evaluatetask.IdentifierWriteTests), "symflower_symbolic-execution", "java", "java", "plain", "evaluation.log"): func(t *testing.T, filePath, data string) { assert.Contains(t, data, "coverage objects: [{") }, }, @@ -412,7 +412,7 @@ func TestEvaluateExecute(t *testing.T) { filepath.Join("result-directory", "README.md"): func(t *testing.T, filePath, data string) { validateReportLinks(t, data, []string{"symflower_symbolic-execution"}) }, - filepath.Join("result-directory", string(evaluatetask.IdentifierWriteTests), "symflower_symbolic-execution", "golang", "golang", "plain.log"): nil, + filepath.Join("result-directory", string(evaluatetask.IdentifierWriteTests), "symflower_symbolic-execution", "golang", "golang", "plain", "evaluation.log"): nil, }, }) validate(t, &testCase{ @@ -462,7 +462,7 @@ func TestEvaluateExecute(t *testing.T) { filepath.Join("result-directory", "README.md"): func(t *testing.T, filePath, data string) { validateReportLinks(t, data, []string{"symflower_symbolic-execution"}) }, - filepath.Join("result-directory", string(evaluatetask.IdentifierWriteTests), "symflower_symbolic-execution", "golang", "golang", "plain.log"): nil, + filepath.Join("result-directory", string(evaluatetask.IdentifierWriteTests), "symflower_symbolic-execution", "golang", "golang", "plain", "evaluation.log"): nil, }, }) }) @@ -526,7 +526,7 @@ func TestEvaluateExecute(t *testing.T) { assert.Contains(t, data, "unloading model") }, filepath.Join("result-directory", "README.md"): nil, - filepath.Join("result-directory", string(evaluatetask.IdentifierWriteTests), "ollama_"+log.CleanModelNameForFileSystem(providertesting.OllamaTestModel), "golang", "golang", "plain.log"): nil, + filepath.Join("result-directory", string(evaluatetask.IdentifierWriteTests), "ollama_"+log.CleanModelNameForFileSystem(providertesting.OllamaTestModel), "golang", "golang", "plain", "evaluation.log"): nil, }, ExpectedOutputValidate: func(t *testing.T, output, resultPath string) { assert.Contains(t, output, `Starting services for provider "ollama"`) @@ -548,7 +548,7 @@ func TestEvaluateExecute(t *testing.T) { filepath.Join("result-directory", "evaluation.csv"): nil, filepath.Join("result-directory", "evaluation.log"): nil, filepath.Join("result-directory", "README.md"): nil, - filepath.Join("result-directory", string(evaluatetask.IdentifierWriteTests), "symflower_symbolic-execution", "golang", "golang", "plain.log"): nil, + filepath.Join("result-directory", string(evaluatetask.IdentifierWriteTests), "symflower_symbolic-execution", "golang", "golang", "plain", "evaluation.log"): nil, }, ExpectedOutputValidate: func(t *testing.T, output, resultPath string) { assert.NotContains(t, output, `Starting services for provider "ollama"`) @@ -597,7 +597,7 @@ func TestEvaluateExecute(t *testing.T) { assert.Contains(t, data, "response-no-error=2") }, filepath.Join("result-directory", "README.md"): nil, - filepath.Join("result-directory", string(evaluatetask.IdentifierWriteTests), "custom-ollama_"+log.CleanModelNameForFileSystem(providertesting.OllamaTestModel), "golang", "golang", "plain.log"): nil, + filepath.Join("result-directory", string(evaluatetask.IdentifierWriteTests), "custom-ollama_"+log.CleanModelNameForFileSystem(providertesting.OllamaTestModel), "golang", "golang", "plain", "evaluation.log"): nil, }, }) } @@ -697,7 +697,7 @@ func TestEvaluateExecute(t *testing.T) { assert.Contains(t, data, "Run 3/3") }, filepath.Join("result-directory", "README.md"): nil, - filepath.Join("result-directory", string(evaluatetask.IdentifierWriteTests), "symflower_symbolic-execution", "golang", "golang", "plain.log"): func(t *testing.T, filePath, data string) { + filepath.Join("result-directory", string(evaluatetask.IdentifierWriteTests), "symflower_symbolic-execution", "golang", "golang", "plain", "evaluation.log"): func(t *testing.T, filePath, data string) { assert.Equal(t, 3, strings.Count(data, `Evaluating model "symflower/symbolic-execution"`)) }, }, @@ -852,10 +852,10 @@ func TestEvaluateExecute(t *testing.T) { }, filepath.Join("result-directory", "symflower", "symbolic-execution", "evaluation.log"): nil, filepath.Join("result-directory", "symflower", "symbolic-execution", "README.md"): nil, - filepath.Join("result-directory", "symflower", "symbolic-execution", string(evaluatetask.IdentifierWriteTests), "symflower_symbolic-execution", "golang", "golang", "plain.log"): func(t *testing.T, filePath, data string) { + filepath.Join("result-directory", "symflower", "symbolic-execution", string(evaluatetask.IdentifierWriteTests), "symflower_symbolic-execution", "golang", "golang", "plain", "evaluation.log"): func(t *testing.T, filePath, data string) { assert.Equal(t, 1, strings.Count(data, `Evaluating model "symflower/symbolic-execution"`)) }, - filepath.Join("result-directory", "symflower", "symbolic-execution", string(evaluatetask.IdentifierWriteTests), "symflower_symbolic-execution", "java", "java", "plain.log"): func(t *testing.T, filePath, data string) { + filepath.Join("result-directory", "symflower", "symbolic-execution", string(evaluatetask.IdentifierWriteTests), "symflower_symbolic-execution", "java", "java", "plain", "evaluation.log"): func(t *testing.T, filePath, data string) { assert.Equal(t, 1, strings.Count(data, `Evaluating model "symflower/symbolic-execution"`)) }, @@ -903,10 +903,10 @@ func TestEvaluateExecute(t *testing.T) { }, filepath.Join("result-directory", "symflower", "symbolic-execution-0", "evaluation.log"): nil, filepath.Join("result-directory", "symflower", "symbolic-execution-0", "README.md"): nil, - filepath.Join("result-directory", "symflower", "symbolic-execution-0", string(evaluatetask.IdentifierWriteTests), "symflower_symbolic-execution", "golang", "golang", "plain.log"): func(t *testing.T, filePath, data string) { + filepath.Join("result-directory", "symflower", "symbolic-execution-0", string(evaluatetask.IdentifierWriteTests), "symflower_symbolic-execution", "golang", "golang", "plain", "evaluation.log"): func(t *testing.T, filePath, data string) { assert.Equal(t, 1, strings.Count(data, `Evaluating model "symflower/symbolic-execution"`)) }, - filepath.Join("result-directory", "symflower", "symbolic-execution-0", string(evaluatetask.IdentifierWriteTests), "symflower_symbolic-execution", "java", "java", "plain.log"): func(t *testing.T, filePath, data string) { + filepath.Join("result-directory", "symflower", "symbolic-execution-0", string(evaluatetask.IdentifierWriteTests), "symflower_symbolic-execution", "java", "java", "plain", "evaluation.log"): func(t *testing.T, filePath, data string) { assert.Equal(t, 1, strings.Count(data, `Evaluating model "symflower/symbolic-execution"`)) }, @@ -954,10 +954,10 @@ func TestEvaluateExecute(t *testing.T) { }, filepath.Join("result-directory", "symflower", "symbolic-execution-1", "evaluation.log"): nil, filepath.Join("result-directory", "symflower", "symbolic-execution-1", "README.md"): nil, - filepath.Join("result-directory", "symflower", "symbolic-execution-1", string(evaluatetask.IdentifierWriteTests), "symflower_symbolic-execution", "golang", "golang", "plain.log"): func(t *testing.T, filePath, data string) { + filepath.Join("result-directory", "symflower", "symbolic-execution-1", string(evaluatetask.IdentifierWriteTests), "symflower_symbolic-execution", "golang", "golang", "plain", "evaluation.log"): func(t *testing.T, filePath, data string) { assert.Equal(t, 1, strings.Count(data, `Evaluating model "symflower/symbolic-execution"`)) }, - filepath.Join("result-directory", "symflower", "symbolic-execution-1", string(evaluatetask.IdentifierWriteTests), "symflower_symbolic-execution", "java", "java", "plain.log"): func(t *testing.T, filePath, data string) { + filepath.Join("result-directory", "symflower", "symbolic-execution-1", string(evaluatetask.IdentifierWriteTests), "symflower_symbolic-execution", "java", "java", "plain", "evaluation.log"): func(t *testing.T, filePath, data string) { assert.Equal(t, 1, strings.Count(data, `Evaluating model "symflower/symbolic-execution"`)) }, }, @@ -993,7 +993,7 @@ func TestEvaluateExecute(t *testing.T) { filepath.Join("result-directory", "evaluation.csv"): nil, filepath.Join("result-directory", "evaluation.log"): nil, filepath.Join("result-directory", "README.md"): nil, - filepath.Join("result-directory", string(evaluatetask.IdentifierWriteTests), "symflower_symbolic-execution", "golang", "golang", "plain.log"): nil, + filepath.Join("result-directory", string(evaluatetask.IdentifierWriteTests), "symflower_symbolic-execution", "golang", "golang", "plain", "evaluation.log"): nil, }, }) validate(t, &testCase{ @@ -1014,7 +1014,7 @@ func TestEvaluateExecute(t *testing.T) { filepath.Join("result-directory-0", "evaluation.csv"): nil, filepath.Join("result-directory-0", "evaluation.log"): nil, filepath.Join("result-directory-0", "README.md"): nil, - filepath.Join("result-directory-0", string(evaluatetask.IdentifierWriteTests), "symflower_symbolic-execution", "golang", "golang", "plain.log"): nil, + filepath.Join("result-directory-0", string(evaluatetask.IdentifierWriteTests), "symflower_symbolic-execution", "golang", "golang", "plain", "evaluation.log"): nil, }, }) } diff --git a/evaluate/evaluate_test.go b/evaluate/evaluate_test.go index 7dfbdb90..c11ddba4 100644 --- a/evaluate/evaluate_test.go +++ b/evaluate/evaluate_test.go @@ -220,7 +220,7 @@ func TestEvaluate(t *testing.T) { ExpectedTotalScore: 2, ExpectedResultFiles: map[string]func(t *testing.T, filePath string, data string){ "evaluation.log": nil, - filepath.Join(string(evaluatetask.IdentifierWriteTests), mockedModel.ID(), "golang", "golang", "plain.log"): nil, + filepath.Join(string(evaluatetask.IdentifierWriteTests), mockedModel.ID(), "golang", "golang", "plain", "evaluation.log"): nil, "evaluation.csv": nil, }, }) @@ -279,7 +279,7 @@ func TestEvaluate(t *testing.T) { ExpectedTotalScore: 2, ExpectedResultFiles: map[string]func(t *testing.T, filePath string, data string){ "evaluation.log": nil, - filepath.Join(string(evaluatetask.IdentifierWriteTests), log.CleanModelNameForFileSystem(mockedModelID), "golang", "golang", "plain.log"): func(t *testing.T, filePath, data string) { + filepath.Join(string(evaluatetask.IdentifierWriteTests), log.CleanModelNameForFileSystem(mockedModelID), "golang", "golang", "plain", "evaluation.log"): func(t *testing.T, filePath, data string) { assert.Contains(t, data, ErrEmptyResponseFromModel.Error()) }, "evaluation.csv": nil, @@ -349,7 +349,7 @@ func TestEvaluate(t *testing.T) { ExpectedTotalScore: 2, ExpectedResultFiles: map[string]func(t *testing.T, filePath string, data string){ "evaluation.log": nil, - filepath.Join(string(evaluatetask.IdentifierWriteTests), log.CleanModelNameForFileSystem(mockedModelID), "golang", "golang", "plain.log"): func(t *testing.T, filePath, data string) { + filepath.Join(string(evaluatetask.IdentifierWriteTests), log.CleanModelNameForFileSystem(mockedModelID), "golang", "golang", "plain", "evaluation.log"): func(t *testing.T, filePath, data string) { assert.Contains(t, data, "Attempt 1/3: "+ErrEmptyResponseFromModel.Error()) }, "evaluation.csv": nil, @@ -418,7 +418,7 @@ func TestEvaluate(t *testing.T) { ExpectedTotalScore: 2, ExpectedResultFiles: map[string]func(t *testing.T, filePath string, data string){ "evaluation.log": nil, - filepath.Join(string(evaluatetask.IdentifierWriteTests), log.CleanModelNameForFileSystem(mockedModelID), "golang", "golang", "plain.log"): func(t *testing.T, filePath, data string) { + filepath.Join(string(evaluatetask.IdentifierWriteTests), log.CleanModelNameForFileSystem(mockedModelID), "golang", "golang", "plain", "evaluation.log"): func(t *testing.T, filePath, data string) { assert.Contains(t, data, "DONE 0 tests, 1 error") }, "evaluation.csv": nil, @@ -545,8 +545,8 @@ func TestEvaluate(t *testing.T) { ExpectedTotalScore: 0, ExpectedResultFiles: map[string]func(t *testing.T, filePath string, data string){ "evaluation.log": nil, - filepath.Join(string(evaluatetask.IdentifierWriteTests), log.CleanModelNameForFileSystem(mockedModelID), "golang", "golang", "plain.log"): nil, - filepath.Join(string(evaluatetask.IdentifierWriteTests), log.CleanModelNameForFileSystem(mockedModelID), "golang", "golang", "next.log"): nil, + filepath.Join(string(evaluatetask.IdentifierWriteTests), log.CleanModelNameForFileSystem(mockedModelID), "golang", "golang", "plain", "evaluation.log"): nil, + filepath.Join(string(evaluatetask.IdentifierWriteTests), log.CleanModelNameForFileSystem(mockedModelID), "golang", "golang", "next", "evaluation.log"): nil, "evaluation.csv": nil, }, }) @@ -646,8 +646,8 @@ func TestEvaluate(t *testing.T) { ExpectedTotalScore: 0, ExpectedResultFiles: map[string]func(t *testing.T, filePath string, data string){ "evaluation.log": nil, - filepath.Join(string(evaluatetask.IdentifierWriteTests), log.CleanModelNameForFileSystem(mockedModelID), "golang", "golang", "plain.log"): nil, - filepath.Join(string(evaluatetask.IdentifierWriteTests), log.CleanModelNameForFileSystem(mockedModelID), "golang", "golang", "next.log"): nil, + filepath.Join(string(evaluatetask.IdentifierWriteTests), log.CleanModelNameForFileSystem(mockedModelID), "golang", "golang", "plain", "evaluation.log"): nil, + filepath.Join(string(evaluatetask.IdentifierWriteTests), log.CleanModelNameForFileSystem(mockedModelID), "golang", "golang", "next", "evaluation.log"): nil, "evaluation.csv": nil, }, }) @@ -713,7 +713,7 @@ func TestEvaluate(t *testing.T) { ExpectedTotalScore: 0, ExpectedResultFiles: map[string]func(t *testing.T, filePath string, data string){ "evaluation.log": nil, - filepath.Join(string(evaluatetask.IdentifierWriteTests), log.CleanModelNameForFileSystem(mockedModelID), "golang", "golang", "plain.log"): nil, + filepath.Join(string(evaluatetask.IdentifierWriteTests), log.CleanModelNameForFileSystem(mockedModelID), "golang", "golang", "plain", "evaluation.log"): nil, "evaluation.csv": nil, }, }) @@ -782,7 +782,7 @@ func TestEvaluate(t *testing.T) { ExpectedTotalScore: 6, ExpectedResultFiles: map[string]func(t *testing.T, filePath string, data string){ "evaluation.log": nil, - filepath.Join(string(evaluatetask.IdentifierWriteTests), log.CleanModelNameForFileSystem(mockedModelID), "golang", "golang", "plain.log"): nil, + filepath.Join(string(evaluatetask.IdentifierWriteTests), log.CleanModelNameForFileSystem(mockedModelID), "golang", "golang", "plain", "evaluation.log"): nil, "evaluation.csv": nil, }, ExpectedOutputValidate: func(t *testing.T, output string, resultPath string) { @@ -854,7 +854,7 @@ func TestEvaluate(t *testing.T) { ExpectedTotalScore: 6, ExpectedResultFiles: map[string]func(t *testing.T, filePath string, data string){ "evaluation.log": nil, - filepath.Join(string(evaluatetask.IdentifierWriteTests), log.CleanModelNameForFileSystem(mockedModelID), "golang", "golang", "plain.log"): nil, + filepath.Join(string(evaluatetask.IdentifierWriteTests), log.CleanModelNameForFileSystem(mockedModelID), "golang", "golang", "plain", "evaluation.log"): nil, "evaluation.csv": nil, }, ExpectedOutputValidate: func(t *testing.T, output string, resultPath string) { @@ -955,7 +955,7 @@ func TestEvaluate(t *testing.T) { ExpectedTotalScore: 6, ExpectedResultFiles: map[string]func(t *testing.T, filePath string, data string){ "evaluation.log": nil, - filepath.Join(string(evaluatetask.IdentifierWriteTests), log.CleanModelNameForFileSystem(mockedModelID), "golang", "golang", "plain.log"): nil, + filepath.Join(string(evaluatetask.IdentifierWriteTests), log.CleanModelNameForFileSystem(mockedModelID), "golang", "golang", "plain", "evaluation.log"): nil, "evaluation.csv": nil, }, }) @@ -1039,7 +1039,7 @@ func TestEvaluate(t *testing.T) { ExpectedTotalScore: 6, ExpectedResultFiles: map[string]func(t *testing.T, filePath string, data string){ "evaluation.log": nil, - filepath.Join(string(evaluatetask.IdentifierWriteTests), log.CleanModelNameForFileSystem(mockedModelID), "golang", "golang", "plain.log"): nil, + filepath.Join(string(evaluatetask.IdentifierWriteTests), log.CleanModelNameForFileSystem(mockedModelID), "golang", "golang", "plain", "evaluation.log"): nil, "evaluation.csv": nil, }, }) @@ -1105,7 +1105,7 @@ func TestEvaluate(t *testing.T) { ExpectedTotalScore: 2, ExpectedResultFiles: map[string]func(t *testing.T, filePath string, data string){ "evaluation.log": nil, - filepath.Join(string(evaluatetask.IdentifierWriteTests), log.CleanModelNameForFileSystem(mockedModelID), "golang", "golang", "plain.log"): nil, + filepath.Join(string(evaluatetask.IdentifierWriteTests), log.CleanModelNameForFileSystem(mockedModelID), "golang", "golang", "plain", "evaluation.log"): nil, "evaluation.csv": nil, }, }) diff --git a/log/logger.go b/log/logger.go index 6b46b584..6a254dbe 100644 --- a/log/logger.go +++ b/log/logger.go @@ -333,7 +333,7 @@ var defaultLogFileSpawners = []logFileSpawner{ repositoryName := attributes[AttributeKeyRepository] taskIdentifier := attributes[AttributeKeyTask] - return filepath.Join(resultPath, taskIdentifier, CleanModelNameForFileSystem(modelID), languageID, repositoryName+".log") + return filepath.Join(resultPath, taskIdentifier, CleanModelNameForFileSystem(modelID), languageID, repositoryName, "evaluation.log") }, }, } diff --git a/log/logger_test.go b/log/logger_test.go index f61218a8..6313457c 100644 --- a/log/logger_test.go +++ b/log/logger_test.go @@ -104,15 +104,15 @@ func TestLoggerWith(t *testing.T) { ExpectedLogOutput: ` Spawning new log file at $TEMPORARY_PATH/evaluation.log - Spawning new log file at $TEMPORARY_PATH/taskA/modelA/languageA/repositoryA.log + Spawning new log file at $TEMPORARY_PATH/taskA/modelA/languageA/repositoryA/evaluation.log Every log file `, ExpectedFiles: map[string]string{ "evaluation.log": ` - Spawning new log file at $TEMPORARY_PATH/taskA/modelA/languageA/repositoryA.log + Spawning new log file at $TEMPORARY_PATH/taskA/modelA/languageA/repositoryA/evaluation.log Every log file `, - filepath.Join("taskA", "modelA", "languageA", "repositoryA.log"): ` + filepath.Join("taskA", "modelA", "languageA", "repositoryA", "evaluation.log"): ` Every log file `, }, @@ -135,20 +135,20 @@ func TestLoggerWith(t *testing.T) { ExpectedLogOutput: ` Spawning new log file at $TEMPORARY_PATH/evaluation.log - Spawning new log file at $TEMPORARY_PATH/taskA/modelA/languageA/repositoryA.log - Spawning new log file at $TEMPORARY_PATH/taskB/modelA/languageA/repositoryA.log + Spawning new log file at $TEMPORARY_PATH/taskA/modelA/languageA/repositoryA/evaluation.log + Spawning new log file at $TEMPORARY_PATH/taskB/modelA/languageA/repositoryA/evaluation.log Only in A log files `, ExpectedFiles: map[string]string{ "evaluation.log": ` - Spawning new log file at $TEMPORARY_PATH/taskA/modelA/languageA/repositoryA.log - Spawning new log file at $TEMPORARY_PATH/taskB/modelA/languageA/repositoryA.log + Spawning new log file at $TEMPORARY_PATH/taskA/modelA/languageA/repositoryA/evaluation.log + Spawning new log file at $TEMPORARY_PATH/taskB/modelA/languageA/repositoryA/evaluation.log Only in A log files `, - filepath.Join("taskA", "modelA", "languageA", "repositoryA.log"): ` + filepath.Join("taskA", "modelA", "languageA", "repositoryA", "evaluation.log"): ` Only in A log files `, - filepath.Join("taskB", "modelA", "languageA", "repositoryA.log"): "", + filepath.Join("taskB", "modelA", "languageA", "repositoryA", "evaluation.log"): "", }, }) validate(t, &testCase{ @@ -169,16 +169,16 @@ func TestLoggerWith(t *testing.T) { ExpectedLogOutput: ` Spawning new log file at $TEMPORARY_PATH/evaluation.log - Spawning new log file at $TEMPORARY_PATH/taskA/modelA/languageA/repositoryA.log - Spawning new log file at $TEMPORARY_PATH/taskA/modelA/languageA/repositoryB.log + Spawning new log file at $TEMPORARY_PATH/taskA/modelA/languageA/repositoryA/evaluation.log + Spawning new log file at $TEMPORARY_PATH/taskA/modelA/languageA/repositoryB/evaluation.log `, ExpectedFiles: map[string]string{ "evaluation.log": ` - Spawning new log file at $TEMPORARY_PATH/taskA/modelA/languageA/repositoryA.log - Spawning new log file at $TEMPORARY_PATH/taskA/modelA/languageA/repositoryB.log + Spawning new log file at $TEMPORARY_PATH/taskA/modelA/languageA/repositoryA/evaluation.log + Spawning new log file at $TEMPORARY_PATH/taskA/modelA/languageA/repositoryB/evaluation.log `, - filepath.Join("taskA", "modelA", "languageA", "repositoryA.log"): "", - filepath.Join("taskA", "modelA", "languageA", "repositoryB.log"): "", + filepath.Join("taskA", "modelA", "languageA", "repositoryA", "evaluation.log"): "", + filepath.Join("taskA", "modelA", "languageA", "repositoryB", "evaluation.log"): "", }, }) }