| 1234567891011121314151617181920212223242526272829 |
- import pytest
- from ..src.interfaces.pulseq_adapter import PulseqLoader
- from ..src.hardware.constraints import HardwareConstraints
- @pytest.fixture
- def hw():
- return HardwareConstraints()
- def test_pulseq_loader_removes_zero_duration_blocks(hw):
- loader = PulseqLoader(hw)
- seq_mock = {
- "block_events": [1, 2, 3, 4, 5], # 5 блоков
- "block_durations": {1: 5e-3, 2: 0, 3: 3e-3, 4: 0, 5: 1e-3}, # Второй и четвёртый блоки = 0 (должны удалиться)
- "blocks": {
- 1: {"rf": True, "gx": None, "gy": None, "gz": None, "adc": None},
- 2: {"rf": None, "gx": None, "gy": None, "gz": None, "adc": None}, # Длительность 0 (удалится)
- 3: {"rf": None, "gx": True, "gy": None, "gz": None, "adc": None},
- 4: {"rf": None, "gx": None, "gy": None, "gz": None, "adc": None}, # Длительность 0 (удалится)
- 5: {"rf": None, "gx": None, "gy": None, "gz": None, "adc": True},
- }
- }
- parsed_blocks = loader._parse_blocks(seq_mock)
- # Проверяем, что блоки с нулевой длительностью удалены
- assert len(parsed_blocks) == 3 # Было 5, удалилось 2
- assert parsed_blocks[0]["type"] == "RF"
- assert parsed_blocks[1]["type"] == "GRAD"
- assert parsed_blocks[2]["type"] == "GRAD"
|