BurnyCoder's picture
Publish fact-checked research documentation and independent audit evidence
76b9910 verified
Raw History Blame Contribute Delete
4.09 kB
UTC=2026-09-08T01:03:52.5109219Z
commit=d0cd2c07e3641531c39037223eb98e309f44c4dc
command=uv run --no-sync pytest --ignore=tests/test_pgs.py -q
.................................................F...................... [ 88%]
......... [100%]
================================== FAILURES ===================================
_______________ test_calibration_uses_only_the_configured_grid ________________
tmp_path = WindowsPath('C:/Users/Happy/Documents/projects/rl-locomotion-steering-vectors/.cache/pytest/86916/test_calibration_uses_only_the0')
monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x0000022C1C00D5E0>
def test_calibration_uses_only_the_configured_grid(tmp_path, monkeypatch):
"""Local: inspect collected strengths; global: make the frozen grid govern candidate and controls."""
collected = [] # Capture actual rollout requests rather than inspecting implementation text.
def collect(*args, **kwargs):
"""Local: record a condition request; global: avoid consuming real validation seeds in a unit test."""
collected.append(kwargs.get("alpha", 0.0)) # Baseline is separate from the nonzero signed grid.
return [] # Other boundaries below supply the irrelevant statistical payload.
monkeypatch.setattr(experiment, "collect_episodes", collect) # Keep the calibration loop under test.
monkeypatch.setattr(experiment, "summaries", lambda *args: []) # Pure sequencing needs no simulated physical summaries.
monkeypatch.setattr(experiment, "paired_effect", lambda *args, **kwargs: {"gate": False}) # A null outcome must not suppress a grid condition.
config = Config(strength_grid="-0.02,-0.01,0.01,0.02") # Use a grid with no values shared by the old hard-coded tuple.
> rows = calibrate(None, "halfcheetah", tmp_path, {"speed": np.ones(2)}, [5], config) # Real persistence writes the selected protocol's outcomes.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests\test_experiment.py:56:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
src\rl_locomotion_steering_vectors\experiment.py:46: in calibrate
save_json(run_dir / "validation.json", results) # Persist after every grid point.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src\rl_locomotion_steering_vectors\storage.py:42: in save_json
temporary.replace(path) # Publish only the completed JSON document.
^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = WindowsPath('C:/Users/Happy/Documents/projects/rl-locomotion-steering-vectors/.cache/pytest/86916/test_calibration_uses_only_the0/validation.json.tmp')
target = WindowsPath('C:/Users/Happy/Documents/projects/rl-locomotion-steering-vectors/.cache/pytest/86916/test_calibration_uses_only_the0/validation.json')
def replace(self, target):
"""
Rename this path to the target path, overwriting if that path exists.
The target path may be absolute or relative. Relative paths are
interpreted relative to the current working directory, *not* the
directory of the Path object.
Returns the new Path instance pointing to the target path.
"""
> os.replace(self, target)
E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\Happy\\Documents\\projects\\rl-locomotion-steering-vectors\\.cache\\pytest\\86916\\test_calibration_uses_only_the0\\validation.json.tmp' -> 'C:\\Users\\Happy\\Documents\\projects\\rl-locomotion-steering-vectors\\.cache\\pytest\\86916\\test_calibration_uses_only_the0\\validation.json'
.cache\python\cpython-3.12-windows-x86_64-none\Lib\pathlib.py:1376: PermissionError
=========================== short test summary info ===========================
FAILED tests/test_experiment.py::test_calibration_uses_only_the_configured_grid
1 failed, 80 passed in 19.42s