Files
LaGriT/test/testlagrit/helper_functions.py
2025-12-17 11:00:57 +08:00

41 lines
1.3 KiB
Python

import os
from typing import List
def collect_test_dirs(test_root: str, test_levels: List[int]) -> List[str]:
"""Returns a list of test directories.
Args:
test_root (str): Should be `{LAGRIT_ROOT}/test/`
test_levels (List): A list containing one or more of [1, 2, 3]
Returns:
List[str]: A list of absolute paths to valid test directories.
"""
all_test_dirs = []
# Get absolute path of 'level01', 'level02', etc.
# test_levels = [os.path.join(test_root, level) for level in test_levels]
for level in test_levels:
if isinstance(level, int):
level = "level%02d" % level
level_abspath = os.path.join(test_root, level)
assert os.path.isdir(level_abspath), "Could not find level: %s" % level_abspath
# Grabs and appends all subfolders in a 'level0X/' directory
# Requires each subfolder to have a 'reference/' directory
for test_dir in sorted(os.listdir(level_abspath)):
if test_dir == "test_results":
continue
test_dir = os.path.join(level_abspath, test_dir)
reference_dir = os.path.join(test_dir, "reference/")
if os.path.isdir(test_dir) and os.path.isdir(reference_dir):
all_test_dirs.append(test_dir)
return all_test_dirs