# Проверки logic_analyzer_files: фиксируют ожидаемое поведение на воспроизводимых входных # данных. # Сценарии для навигации по файлу: # test_csv_preserves_irregular_time_and_channel_names # test_dsview_csv_metadata_and_units # test_csv_rejects_invalid_data # test_sal_chunks_levels_and_long_runs # test_sal_rejects_truncated_and_unknown_version # test_dsl_sparse_channels_blocks_and_padding # test_cancelled_import # Тестовые значения и подмены окружения относятся к проверке контракта; они не являются # настройками рабочего устройства. import csv import json from pathlib import Path import struct import tempfile import unittest import zipfile from logic_analyzer.files import read_capture, ImportCancelled def run_bytes(length): value = length - 1 if value < 64: return bytes([value]) parts = [value & 127] value >>= 7 while value >= 64: parts.append(128 | (value & 127)) value >>= 7 return bytes([64 | value] + list(reversed(parts))) def sal_binary(version=1, initial=1): head = b'' + struct.pack('