From b6b0b0f0c44478e7d55478fd729ed667cb955253 Mon Sep 17 00:00:00 2001
From: Manuel Gunther <siebenkopf@googlemail.com>
Date: Wed, 25 Oct 2017 15:02:55 -0600
Subject: [PATCH] Fixed issue with --directory flag in evaluate.py

---
 bob/bio/base/script/evaluate.py   | 5 +++--
 bob/bio/base/test/test_scripts.py | 6 +++---
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/bob/bio/base/script/evaluate.py b/bob/bio/base/script/evaluate.py
index c4a6d0b3..26dcd77a 100644
--- a/bob/bio/base/script/evaluate.py
+++ b/bob/bio/base/script/evaluate.py
@@ -75,8 +75,9 @@ def command_line_arguments(command_line_parameters):
 
   # some sanity checks:
   for f in args.dev_files + (args.eval_files or []):
-    if not os.path.exists(f):
-      raise ValueError("The provided score file '%s' does not exist", f)
+    real_file = os.path.join(args.directory, f)
+    if not os.path.exists(real_file):
+      raise ValueError("The provided score file '%s' does not exist", real_file)
 
   if args.eval_files is not None and len(args.dev_files) != len(args.eval_files):
     logger.error("The number of --dev-files (%d) and --eval-files (%d) are not identical", len(args.dev_files), len(args.eval_files))
diff --git a/bob/bio/base/test/test_scripts.py b/bob/bio/base/test/test_scripts.py
index c7ac7681..d990835b 100644
--- a/bob/bio/base/test/test_scripts.py
+++ b/bob/bio/base/test/test_scripts.py
@@ -478,12 +478,12 @@ def test_fusion():
 def test_evaluate_closedset():
   # tests our 'evaluate' script using the reference files
   test_dir = tempfile.mkdtemp(prefix='bobtest_')
-  reference_files = [os.path.join(data_dir, s) for s in ('scores-nonorm-dev', 'scores-ztnorm-dev')]
+  reference_files = ('scores-nonorm-dev', 'scores-ztnorm-dev')
   plots = [os.path.join(test_dir, '%s.pdf')%f for f in ['roc', 'cmc', 'det', 'epc']]
   parameters = [
     '--dev-files', reference_files[0], reference_files[1],
     '--eval-files', reference_files[0], reference_files[1],
-    '--directory', os.path.join(data_dir),
+    '--directory', data_dir,  # will not be ignored since reference files are relative
     '--legends', 'no norm', 'ZT norm',
     '--criterion', 'HTER',
     '--roc', plots[0],
@@ -516,7 +516,7 @@ def test_evaluate_openset():
   parameters = [
     '--dev-files', reference_file,
     '--eval-files', reference_file,
-    '--directory', os.path.join(data_dir),
+    '--directory', "/non/existing/directory", # will be ignored since reference_file is absolute
     '--legends', 'Test',
     '--dir', plot,
     '--min-far-value', '1e-6',
-- 
GitLab