Skip to content

Commit

Permalink
Fixed issue with detection of duplicated results
Browse files Browse the repository at this point in the history
  • Loading branch information
AKuederle committed Sep 19, 2023
1 parent 5c762c7 commit e494b6e
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 10 deletions.
16 changes: 16 additions & 0 deletions gaitmap-bench/tests/test_result_loading.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
from gaitmap_bench import is_config_set, config
from gaitmap_bench.docu_utils import set_docs_config
from gaitmap_challenges.results import get_all_result_paths
from gaitmap_challenges.stride_segmentation.egait_segmentation_validation_2014_original_label import Challenge
import pytest


@pytest.fixture(scope="module", autouse=True)
def _config():
is_config_set() or set_docs_config()


def test_multi_version_results(recwarn):
assert len(recwarn) == 0
get_all_result_paths(Challenge, config().results_dir)
assert len(recwarn) == 0
28 changes: 18 additions & 10 deletions gaitmap-challenges/gaitmap_challenges/results.py
Original file line number Diff line number Diff line change
Expand Up @@ -85,9 +85,11 @@ def get_all_result_paths(
) from e

entries = {}
versions = {}
for run in folder.rglob("metadata.json"):
meta = load_run_metadata(run.parent)
entries.setdefault(tuple(meta["entry_name"]), []).append(run.parent)
versions.setdefault(tuple(meta["entry_name"]), []).append(meta["challenge_version"])

if len(entries) == 0:
raise ValueError(
Expand All @@ -97,16 +99,22 @@ def get_all_result_paths(

sorted_entries = {}
for name, entry_list in entries.items():
parents = {e.parent for e in entry_list}
if len(parents) > 1:
warnings.warn(
f"We found results from the same entry name ({name}) in different folders. "
"This could indicate that you forgot to correctly name one of your entries when you saved a "
"run, or that files/folders where manually copied around. "
"Both can lead to issues. "
"Please double check your results folder.",
stacklevel=2,
)
versions_per_entry = versions[name]
parents_per_version = {}
for version, entry in zip(versions_per_entry, entry_list):
parents_per_version.setdefault(version, []).append(entry.parent)

for version, parents in parents_per_version.items():
if len(set(parents)) > 1:
warnings.warn(
f"We found results from the same entry name ({name}) for the same challenge version "
f"({version}) in different folders. "
"This could indicate that you forgot to correctly name one of your entries when you saved a "
"run, or that files/folders where manually copied around. "
"Both can lead to issues. "
"Please double check your results folder.",
stacklevel=1,
)
sorted_entries[name] = sorted(entry_list, key=lambda e: e.name, reverse=False)

return entries
Expand Down

0 comments on commit e494b6e

Please sign in to comment.