Make test paths portable

Updated test files to dynamically derive repository root paths from test file locations instead of using hardcoded absolute paths. This makes the tests work correctly regardless of where the repository is cloned.