29 lines
1.1 KiB
Python
29 lines
1.1 KiB
Python
from __future__ import annotations
|
|
|
|
import numpy as np
|
|
|
|
from sensorium.environment import build_fixture_observation_frame
|
|
|
|
|
|
def test_fixture_observation_frame_is_mixed_modality_and_deterministic():
|
|
f1 = build_fixture_observation_frame(monotonic_tick=7, source_clock="test-clock")
|
|
f2 = build_fixture_observation_frame(monotonic_tick=7, source_clock="test-clock")
|
|
assert f1.frame_id == f2.frame_id
|
|
assert f1.environment_sha256 == f2.environment_sha256
|
|
assert f1.trace_hash == f2.trace_hash
|
|
assert {unit.pack_id for unit in f1.units} == {
|
|
"audio_core_v1",
|
|
"sensorimotor_core_v1",
|
|
"vision_core_v1",
|
|
}
|
|
for unit in f1.units:
|
|
assert unit.versor.shape == (32,)
|
|
assert unit.versor.dtype == np.float32
|
|
assert unit.versor_condition < 1e-6
|
|
|
|
|
|
def test_fixture_observation_frame_tick_changes_identity_not_unit_set():
|
|
f1 = build_fixture_observation_frame(monotonic_tick=7)
|
|
f2 = build_fixture_observation_frame(monotonic_tick=8)
|
|
assert f1.trace_hash != f2.trace_hash
|
|
assert [unit.merge_key for unit in f1.units] == [unit.merge_key for unit in f2.units]
|