{"receipt_id":"agent1-1","seq":1,"branch_id":"agent1","kind":"command","cmd":"git ls-files -z","path":null,"exit_code":0,"stdout_tail":"oc/source/examples/legacy_serialized_pulses/stored_template.json\u0000doc/source/examples/legacy_serialized_pulses/table_template.json\u0000doc/source/examples/parameters/free_induction_decay.json\u0000doc/source/examples/serialized_pulses/S_init.json\u0000doc/source/examples/serialized_pulses/adprep.json\u0000doc/source/examples/serialized_pulses/adread.json\u0000doc/source/examples/serialized_pulses/free_induction_decay.json\u0000doc/source/examples/serialized_pulses/my_other_pulse.json\u0000doc/source/index.rst\u0000doc/source/learners_guide.rst\u0000pylint.rc\u0000pyproject.toml\u0000qctoolkit/__init__.py\u0000qupulse/__init__.py\u0000qupulse/__init__.pyi\u0000qupulse/_program/__init__.py\u0000qupulse/_program/_loop.py\u0000qupulse/_program/seqc.py\u0000qupulse/_program/tabor.py\u0000qupulse/_program/transformation.py\u0000qupulse/_program/volatile.py\u0000qupulse/_program/waveforms.py\u0000qupulse/comparable.py\u0000qupulse/examples/VolatileParameters.py\u0000qupulse/expressions/__init__.py\u0000qupulse/expressions/protocol.py\u0000qupulse/expressions/sympy.py\u0000qupulse/expressions/wrapper.py\u0000qupulse/hardware/__init__.py\u0000qupulse/hardware/awgs/__init__.py\u0000qupulse/hardware/awgs/base.py\u0000qupulse/hardware/awgs/tabor.py\u0000qupulse/hardware/awgs/tektronix.py\u0000qupulse/hardware/awgs/zihdawg.py\u0000qupulse/hardware/dacs/__init__.py\u0000qupulse/hardware/dacs/alazar.py\u0000qupulse/hardware/dacs/alazar2.py\u0000qupulse/hardware/dacs/dac_base.py\u0000qupulse/hardware/feature_awg/__init__.py\u0000qupulse/hardware/feature_awg/base.py\u0000qupulse/hardware/feature_awg/base_features.py\u0000qupulse/hardware/feature_awg/channel_tuple_wrapper.py\u0000qupulse/hardware/feature_awg/features.py\u0000qupulse/hardware/feature_awg/tabor.py\u0000qupulse/hardware/setup.py\u0000qupulse/hardware/util.py\u0000qupulse/parameter_scope.py\u0000qupulse/plotting.py\u0000qupulse/program/__init__.py\u0000qupulse/program/loop.py\u0000qupulse/program/transformation.py\u0000qupulse/program/volatile.py\u0000qupulse/program/waveforms.py\u0000qupulse/pulses/__init__.py\u0000qupulse/pulses/abstract_pulse_template.py\u0000qupulse/pulses/arithmetic_pulse_template.py\u0000qupulse/pulses/constant_pulse_template.py\u0000qupulse/pulses/function_pulse_template.py\u0000qupulse/pulses/interpolation.py\u0000qupulse/pulses/loop_pulse_template.py\u0000qupulse/pulses/mapping_pulse_template.py\u0000qupulse/pulses/measurement.py\u0000qupulse/pulses/multi_channel_pulse_template.py\u0000qupulse/pulses/parameters.py\u0000qupulse/pulses/plotting.py\u0000qupulse/pulses/point_pulse_template.py\u0000qupulse/pulses/pulse_template.py\u0000qupulse/pulses/pulse_template_parameter_mapping.py\u0000qupulse/pulses/range.py\u0000qupulse/pulses/repetition_pulse_template.py\u0000qupulse/pulses/sequence_pulse_template.py\u0000qupulse/pulses/table_pulse_template.py\u0000qupulse/pulses/time_reversal_pulse_template.py\u0000qupulse/serialization.py\u0000qupulse/utils/__init__.py\u0000qupulse/utils/numeric.py\u0000qupulse/utils/performance.py\u0000qupulse/utils/sympy.py\u0000qupulse/utils/tree.py\u0000qupulse/utils/types.py\u0000readthedocs.yml\u0000setup.cfg\u0000setup.py\u0000tests/__init__.py\u0000tests/_program/__init__.py\u0000tests/_program/loop_tests.py\u0000tests/_program/seqc_tests.py\u0000tests/_program/tabor_tests.py\u0000tests/_program/transformation_tests.py\u0000tests/_program/waveforms_tests.py\u0000tests/backward_compatibility/__init__.py\u0000tests/backward_compatibility/charge_scan_1/binary_program_validation.json\u0000tests/backward_compatibility/charge_scan_1/binary_program_validation.py\u0000tests/backward_compatibility/charge_scan_1/channel_mapping.json\u0000tests/backward_compatibility/charge_scan_1/hdawg_preparation_commands.json\u0000tests/backward_compatibility/charge_scan_1/measurement_mapping.json\u0000tests/backward_compatibility/charge_scan_1/parameters.json\u0000tests/backward_compatibility/charge_scan_1/pulse_storage/charge_scan.json\u0000tests/backward_compatibility/charge_scan_1/pulse_storage_converted_2018/charge_scan.json\u0000tests/backward_compatibility/charge_scan_1/tabor_preparation_commands.json\u0000tests/backward_compatibility/hardware_test_helper.py\u0000tests/backward_compatibility/tabor_backward_compatibility_tests.py\u0000tests/backward_compatibility/zhinst_charge_scan_test.py\u0000tests/comparable_tests.py\u0000tests/expressions/__init__.py\u0000tests/expressions/expression_tests.py\u0000tests/hardware/__init__.py\u0000tests/hardware/alazar_tests.py\u0000tests/hardware/base_tests.py\u0000tests/hardware/dummy_devices.py\u0000tests/hardware/dummy_modules.py\u0000tests/hardware/feature_awg/__init__.py\u0000tests/hardware/feature_awg/awg_new_driver_base_tests.py\u0000tests/hardware/feature_awg/channel_tuple_wrapper_tests.py\u0000tests/hardware/feature_awg/tabor_new_driver_clock_tests.py\u0000tests/hardware/feature_awg/tabor_new_driver_exex_test.py\u0000tests/hardware/feature_awg/tabor_new_driver_simulator_based_tests.py\u0000tests/hardware/feature_awg/tabor_new_driver_tests.py\u0000tests/hardware/setup_tests.py\u0000tests/hardware/tabor_clock_tests.py\u0000tests/hardware/tabor_dummy_based_tests.py\u0000tests/hardware/tabor_exex_test.py\u0000tests/hardware/tabor_simulator_based_tests.py\u0000tests/hardware/tabor_tests.py\u0000tests/hardware/tektronix_tests.py\u0000tests/hardware/util_tests.py\u0000tests/hardware/zihdawg_tests.py\u0000tests/parameter_scope_tests.py\u0000tests/pulses/__init__.py\u0000tests/pulses/abstract_pulse_template_tests.py\u0000tests/pulses/arithmetic_pulse_template_tests.py\u0000tests/pulses/bug_tests.py\u0000tests/pulses/constant_pulse_template_tests.py\u0000tests/pulses/function_pulse_tests.py\u0000tests/pulses/interpolation_tests.py\u0000tests/pulses/loop_pulse_template_tests.py\u0000tests/pulses/mapping_pulse_template_tests.py\u0000tests/pulses/measurement_tests.py\u0000tests/pulses/multi_channel_pulse_template_tests.py\u0000tests/pulses/parameters_tests.py\u0000tests/pulses/plotting_tests.py\u0000tests/pulses/point_pulse_template_tests.py\u0000tests/pulses/pulse_template_parameter_mapping_tests.py\u0000tests/pulses/pulse_template_tests.py\u0000tests/pulses/repetition_pulse_template_tests.py\u0000tests/pulses/sequence_pulse_template_tests.py\u0000tests/pulses/sequencing_dummies.py\u0000tests/pulses/table_pulse_template_tests.py\u0000tests/pulses/time_reversal_pulse_template_tests.py\u0000tests/qctoolkit_alias_tests.py\u0000tests/serialization_dummies.py\u0000tests/serialization_tests.py\u0000tests/utils/__init__.py\u0000tests/utils/numeric_tests.py\u0000tests/utils/performance_tests.py\u0000tests/utils/sympy_tests.py\u0000tests/utils/time_type_tests.py\u0000tests/utils/tree_tests.py\u0000tests/utils/types_tests.py\u0000tests/utils/utils_tests.py\u0000","stderr_tail":"","stdout_sha256":"f2cce3df057f07bc8c4f8d07e091e4b1da7db011cde13cc7b9f12fc665df53b3","log_path":"~/dev/nebius-hackathon/pilot/v2-P/qutech__qupulse-797/runs/pilot-qutech__qupulse-797-b67d817a55/logs/agent1/agent1-1.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T17:14:36.452536Z","duration_s":0.002954,"timed_out":false,"image_before":"4e023120-1b5e-49b9-a9e5-c7bfc48a61ed","image_after":"b3f5e920-9ccf-45f7-a551-97e526d6e574","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-2","seq":2,"branch_id":"agent1","kind":"command","cmd":"grep -rn -- test_calc_sampled_segments_deduplication tests/_program/tabor_tests.py","path":null,"exit_code":0,"stdout_tail":"384:    def test_calc_sampled_segments_deduplication(self):\n","stderr_tail":"","stdout_sha256":"7e71b5e47d75f393a24300094c480a4adf1fe4a88177f58f1d45f3d1b25c7435","log_path":"~/dev/nebius-hackathon/pilot/v2-P/qutech__qupulse-797/runs/pilot-qutech__qupulse-797-b67d817a55/logs/agent1/agent1-2.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T17:14:52.252462Z","duration_s":0.003117,"timed_out":false,"image_before":"b3f5e920-9ccf-45f7-a551-97e526d6e574","image_after":"9f2a5728-b1f0-4dab-9348-32ccc45bbab3","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-3","seq":3,"branch_id":"agent1","kind":"command","cmd":"/opt/receipts-dd819673aedc496c97c5015ab404fef7/bin/busybox mkdir -p /opt/receipts/reports && python -I /opt/receipts-dd819673aedc496c97c5015ab404fef7/receipts_pytest.py tests/_program/tabor_tests.py::TaborProgramTests::test_calc_sampled_segments_deduplication -v -o junit_family=xunit1 -p no:cacheprovider -rA --continue-on-collection-errors --junitxml=/opt/receipts/reports/agent1-3.xml","path":null,"exit_code":1,"stdout_tail":"============================= test session starts ==============================\nplatform linux -- Python 3.10.19, pytest-9.0.2, pluggy-1.6.0 -- /usr/local/bin/python\nbenchmark: 5.2.3 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=False warmup_iterations=100000)\nrootdir: /qupulse\nconfigfile: setup.cfg\nplugins: benchmark-5.2.3\ncollecting ... collected 1 item\n\ntests/_program/tabor_tests.py::TaborProgramTests::test_calc_sampled_segments_deduplication FAILED [100%]\n\n=================================== FAILURES ===================================\n__________ TaborProgramTests.test_calc_sampled_segments_deduplication __________\n\nself = <tests._program.tabor_tests.TaborProgramTests testMethod=test_calc_sampled_segments_deduplication>\n\n    def test_calc_sampled_segments_deduplication(self):\n        wf1 = ConstantWaveform(duration=2, amplitude=0.1, channel='A')\n        wf2 = SubsetWaveform(\n            ConstantWaveform.from_mapping(duration=2, constant_values={'A': 0.1, 'B': 0.2}),\n            {'A'}\n        )\n        wf3 = ConstantWaveform(duration=1, amplitude=0.2, channel='A')\n    \n        loop = Loop(children=[\n            Loop(waveform=wf1),\n            Loop(waveform=wf2),\n            Loop(waveform=wf3),\n        ])\n        prog = TaborProgram(loop, self.instr_props, ('A', None), (None, None), **self.program_entry_kwargs)\n        sampled, sampled_length = prog.get_sampled_segments()\n>       self.assertEqual(len(sampled), 2)\nE       AssertionError: 3 != 2\n\ntests/_program/tabor_tests.py:399: AssertionError\n=============================== warnings summary ===============================\nqupulse/utils/types.py:36\n  /qupulse/qupulse/utils/types.py:36: UserWarning: gmpy2 not found. Using fractions.Fraction as fallback. Install gmpy2 for better performance.time_from_float might produce slightly different results\n    warnings.warn('gmpy2 not found. Using fractions.Fraction as fallback. Install gmpy2 for better performance.'\n\nqupulse/utils/sympy.py:26\n  /qupulse/qupulse/utils/sympy.py:26: UserWarning: scipy is not installed. This reduces the set of available functions to those present in numpy + manually vectorized functions in math.\n    warnings.warn('scipy is not installed. This reduces the set of available functions to those present in numpy + '\n\n-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html\n------------ generated xml file: /opt/receipts/reports/agent1-3.xml ------------\n=========================== short test summary info ============================\nFAILED tests/_program/tabor_tests.py::TaborProgramTests::test_calc_sampled_segments_deduplication\n======================== 1 failed, 2 warnings in 2.10s =========================\n","stderr_tail":"","stdout_sha256":"152e99510ceca573b99e63050caf3433ee03e345cb861cffe3064cad049544b6","log_path":"~/dev/nebius-hackathon/pilot/v2-P/qutech__qupulse-797/runs/pilot-qutech__qupulse-797-b67d817a55/logs/agent1/agent1-3.log","tree_digest":"0e5639a76d3c4f301cb04f6adbb87d0b44cd626c571c340e430d71bbd260aecb","tree_download_s":3.083849832881242,"started_at":"2026-10-03T17:14:56.873386Z","duration_s":2.776653,"timed_out":false,"image_before":"9f2a5728-b1f0-4dab-9348-32ccc45bbab3","image_after":"52af99c0-5f94-4bca-bf49-4971130c5436","junit":{"passed":[],"failed":["tests/_program/tabor_tests.py::TaborProgramTests::test_calc_sampled_segments_deduplication"],"errors":[],"skipped":[],"collection_errors":[],"failure_text":{"tests/_program/tabor_tests.py::TaborProgramTests::test_calc_sampled_segments_deduplication":"AssertionError: 3 != 2\nself = <tests._program.tabor_tests.TaborProgramTests testMethod=test_calc_sampled_segments_deduplication>\n\n    def test_calc_sampled_segments_deduplication(self):\n        wf1 = ConstantWaveform(duration=2, amplitude=0.1, channel='A')\n        wf2 = SubsetWaveform(\n            ConstantWaveform.from_mapping(duration=2, constant_values={'A': 0.1, 'B': 0.2}),\n            {'A'}\n        )\n        wf3 = ConstantWaveform(duration=1, amplitude=0.2, channel='A')\n    \n        loop = Loop(children=[\n            Loop(waveform=wf1),\n            Loop(waveform=wf2),\n            Loop(waveform=wf3),\n        ])\n        prog = TaborProgram(loop, self.instr_props, ('A', None), (None, None), **self.program_entry_kwargs)\n        sampled, sampled_length = prog.get_sampled_segments()\n>       self.assertEqual(len(sampled), 2)\nE       AssertionError: 3 != 2\n\ntests/_program/tabor_tests.py:399: AssertionError"}},"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-4","seq":4,"branch_id":"agent1","kind":"write","cmd":"/opt/receipts-ec61a29f3750401e95ed6e2f2ac3fd2b/bin/busybox sh -c 'mkdir -p /qupulse/qupulse/_program && cp /opt/receipts-ec61a29f3750401e95ed6e2f2ac3fd2b/incoming/4ac220441ac66f5073db3ef35b0d3e41a50cc94a671706f1289e901a77141b5b /qupulse/qupulse/_program/tabor.py'","path":"qupulse/_program/tabor.py","exit_code":0,"stdout_tail":"","stderr_tail":"","stdout_sha256":"4ac220441ac66f5073db3ef35b0d3e41a50cc94a671706f1289e901a77141b5b","log_path":"~/dev/nebius-hackathon/pilot/v2-P/qutech__qupulse-797/runs/pilot-qutech__qupulse-797-b67d817a55/logs/agent1/agent1-4.log","tree_digest":null,"tree_download_s":null,"started_at":"2026-10-03T17:15:14.439729Z","duration_s":0.004471,"timed_out":false,"image_before":"52af99c0-5f94-4bca-bf49-4971130c5436","image_after":"3f704cec-f227-4291-9e17-8914aed6bbe6","junit":null,"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-5","seq":5,"branch_id":"agent1","kind":"command","cmd":"/opt/receipts-0304f80fc17b4fefb6fc126628878c7c/bin/busybox mkdir -p /opt/receipts/reports && python -I /opt/receipts-0304f80fc17b4fefb6fc126628878c7c/receipts_pytest.py tests/_program/tabor_tests.py::TaborProgramTests::test_calc_sampled_segments_deduplication -v -o junit_family=xunit1 -p no:cacheprovider -rA --continue-on-collection-errors --junitxml=/opt/receipts/reports/agent1-5.xml","path":null,"exit_code":0,"stdout_tail":"============================= test session starts ==============================\nplatform linux -- Python 3.10.19, pytest-9.0.2, pluggy-1.6.0 -- /usr/local/bin/python\nbenchmark: 5.2.3 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=False warmup_iterations=100000)\nrootdir: /qupulse\nconfigfile: setup.cfg\nplugins: benchmark-5.2.3\ncollecting ... collected 1 item\n\ntests/_program/tabor_tests.py::TaborProgramTests::test_calc_sampled_segments_deduplication PASSED [100%]\n\n=============================== warnings summary ===============================\nqupulse/utils/types.py:36\n  /qupulse/qupulse/utils/types.py:36: UserWarning: gmpy2 not found. Using fractions.Fraction as fallback. Install gmpy2 for better performance.time_from_float might produce slightly different results\n    warnings.warn('gmpy2 not found. Using fractions.Fraction as fallback. Install gmpy2 for better performance.'\n\nqupulse/utils/sympy.py:26\n  /qupulse/qupulse/utils/sympy.py:26: UserWarning: scipy is not installed. This reduces the set of available functions to those present in numpy + manually vectorized functions in math.\n    warnings.warn('scipy is not installed. This reduces the set of available functions to those present in numpy + '\n\n-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html\n==================================== PASSES ====================================\n------------ generated xml file: /opt/receipts/reports/agent1-5.xml ------------\n=========================== short test summary info ============================\nPASSED tests/_program/tabor_tests.py::TaborProgramTests::test_calc_sampled_segments_deduplication\n======================== 1 passed, 2 warnings in 2.07s =========================\n","stderr_tail":"","stdout_sha256":"00aa0ec83418b2ad383a93536d948d50c7eaf3be71e3daf2181c2627ea2be497","log_path":"~/dev/nebius-hackathon/pilot/v2-P/qutech__qupulse-797/runs/pilot-qutech__qupulse-797-b67d817a55/logs/agent1/agent1-5.log","tree_digest":"4c958932209d507ee70122162ba634c6c72beb9a19e3593573aee417bd66c7a6","tree_download_s":3.712916542077437,"started_at":"2026-10-03T17:15:17.181318Z","duration_s":2.766564,"timed_out":false,"image_before":"3f704cec-f227-4291-9e17-8914aed6bbe6","image_after":"288f91ee-b304-47f2-92c2-140da7cfc235","junit":{"passed":["tests/_program/tabor_tests.py::TaborProgramTests::test_calc_sampled_segments_deduplication"],"failed":[],"errors":[],"skipped":[],"collection_errors":[],"failure_text":{}},"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-6","seq":6,"branch_id":"agent1","kind":"command","cmd":"/opt/receipts-5cafde990f584086b0b65d49368402cc/bin/busybox mkdir -p /opt/receipts/reports && python -I /opt/receipts-5cafde990f584086b0b65d49368402cc/receipts_pytest.py tests/_program/tabor_tests.py -v -o junit_family=xunit1 -p no:cacheprovider -rA --continue-on-collection-errors --junitxml=/opt/receipts/reports/agent1-6.xml","path":null,"exit_code":0,"stdout_tail":"ntTests::test_eq PASSED         [ 77%]\ntests/_program/tabor_tests.py::TaborSegmentTests::test_from_binary_data PASSED [ 79%]\ntests/_program/tabor_tests.py::TaborSegmentTests::test_from_binary_segment PASSED [ 81%]\ntests/_program/tabor_tests.py::TaborSegmentTests::test_from_sampled PASSED [ 83%]\ntests/_program/tabor_tests.py::TaborSegmentTests::test_num_points PASSED [ 85%]\ntests/_program/tabor_tests.py::TaborMakeCombinedTest::test_empty_segment_list PASSED [ 87%]\ntests/_program/tabor_tests.py::TaborMakeCombinedTest::test_make_comb_both PASSED [ 89%]\ntests/_program/tabor_tests.py::TaborMakeCombinedTest::test_make_single_chan PASSED [ 91%]\ntests/_program/tabor_tests.py::TaborMakeCombinedPyTaborCompareTest::test_empty_segment_list SKIPPED [ 93%]\ntests/_program/tabor_tests.py::TaborMakeCombinedPyTaborCompareTest::test_make_comb_both SKIPPED [ 95%]\ntests/_program/tabor_tests.py::TaborMakeCombinedPyTaborCompareTest::test_make_single_chan SKIPPED [ 97%]\ntests/_program/tabor_tests.py::TaborMemoryManagementTests::test_find_place_for_segments_in_memory PASSED [100%]\n\n=============================== warnings summary ===============================\nqupulse/utils/types.py:36\n  /qupulse/qupulse/utils/types.py:36: UserWarning: gmpy2 not found. Using fractions.Fraction as fallback. Install gmpy2 for better performance.time_from_float might produce slightly different results\n    warnings.warn('gmpy2 not found. Using fractions.Fraction as fallback. Install gmpy2 for better performance.'\n\nqupulse/utils/sympy.py:26\n  /qupulse/qupulse/utils/sympy.py:26: UserWarning: scipy is not installed. This reduces the set of available functions to those present in numpy + manually vectorized functions in math.\n    warnings.warn('scipy is not installed. This reduces the set of available functions to those present in numpy + '\n\n-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html\n==================================== PASSES ====================================\n------------ generated xml file: /opt/receipts/reports/agent1-6.xml ------------\n=========================== short test summary info ============================\nPASSED tests/_program/tabor_tests.py::LoopTests::test_cleanup\nPASSED tests/_program/tabor_tests.py::LoopTests::test_cleanup_single_rep\nPASSED tests/_program/tabor_tests.py::LoopTests::test_cleanup_warnings\nPASSED tests/_program/tabor_tests.py::LoopTests::test_compare_key\nPASSED tests/_program/tabor_tests.py::LoopTests::test_depth\nPASSED tests/_program/tabor_tests.py::LoopTests::test_flatten_and_balance\nPASSED tests/_program/tabor_tests.py::LoopTests::test_flatten_and_balance_comparison_based\nPASSED tests/_program/tabor_tests.py::LoopTests::test_get_measurement_windows\nPASSED tests/_program/tabor_tests.py::LoopTests::test_is_balanced\nPASSED tests/_program/tabor_tests.py::LoopTests::test_is_leaf\nPASSED tests/_program/tabor_tests.py::LoopTests::test_repr\nPASSED tests/_program/tabor_tests.py::LoopTests::test_str\nPASSED tests/_program/tabor_tests.py::LoopTests::test_unroll\nPASSED tests/_program/tabor_tests.py::PlottableProgramTests::test_builtint_conversion\nPASSED tests/_program/tabor_tests.py::PlottableProgramTests::test_eq\nPASSED tests/_program/tabor_tests.py::PlottableProgramTests::test_from_read_data\nPASSED tests/_program/tabor_tests.py::PlottableProgramTests::test_get_advanced_sequence_table\nPASSED tests/_program/tabor_tests.py::PlottableProgramTests::test_get_as_single_waveform\nPASSED tests/_program/tabor_tests.py::PlottableProgramTests::test_get_repetitions\nPASSED tests/_program/tabor_tests.py::PlottableProgramTests::test_get_waveforms\nPASSED tests/_program/tabor_tests.py::PlottableProgramTests::test_init\nPASSED tests/_program/tabor_tests.py::PlottableProgramTests::test_iter\nPASSED tests/_program/tabor_tests.py::TaborProgramTests::test_advanced_sequence_exceptions\nPASSED tests/_program/tabor_tests.py::TaborProgramTests::test_calc_sampled_segments_deduplication\nPASSED tests/_program/tabor_tests.py::TaborProgramTests::test_depth_0_single_waveform\nPASSED tests/_program/tabor_tests.py::TaborProgramTests::test_depth_1_advanced_sequence\nPASSED tests/_program/tabor_tests.py::TaborProgramTests::test_depth_1_advanced_sequence_unroll\nPASSED tests/_program/tabor_tests.py::TaborProgramTests::test_depth_1_single_sequence\nPASSED tests/_program/tabor_tests.py::TaborProgramTests::test_depth_1_single_sequence_2\nPASSED tests/_program/tabor_tests.py::TaborProgramTests::test_depth_1_single_waveform\nPASSED tests/_program/tabor_tests.py::TaborProgramTests::test_init\nPASSED tests/_program/tabor_tests.py::TaborProgramTests::test_sampled_segments\nPASSED tests/_program/tabor_tests.py::TaborProgramTests::test_update_volatile_parameters_with_depth1\nPASSED tests/_program/tabor_tests.py::TaborProgramTests::test_update_volatile_parameters_with_depth2\nPASSED tests/_program/tabor_tests.py::TaborSegmentTests::test_data_a\nPASSED tests/_program/tabor_tests.py::TaborSegmentTests::test_data_b\nPASSED tests/_program/tabor_tests.py::TaborSegmentTests::test_eq\nPASSED tests/_program/tabor_tests.py::TaborSegmentTests::test_from_binary_data\nPASSED tests/_program/tabor_tests.py::TaborSegmentTests::test_from_binary_segment\nPASSED tests/_program/tabor_tests.py::TaborSegmentTests::test_from_sampled\nPASSED tests/_program/tabor_tests.py::TaborSegmentTests::test_num_points\nPASSED tests/_program/tabor_tests.py::TaborMakeCombinedTest::test_empty_segment_list\nPASSED tests/_program/tabor_tests.py::TaborMakeCombinedTest::test_make_comb_both\nPASSED tests/_program/tabor_tests.py::TaborMakeCombinedTest::test_make_single_chan\nPASSED tests/_program/tabor_tests.py::TaborMemoryManagementTests::test_find_place_for_segments_in_memory\nSKIPPED [1] tests/_program/tabor_tests.py:693: Cannot compare to pytabor results\nSKIPPED [1] tests/_program/tabor_tests.py:669: Cannot compare to pytabor results\nSKIPPED [1] tests/_program/tabor_tests.py:683: Cannot compare to pytabor results\n================== 45 passed, 3 skipped, 2 warnings in 2.28s ===================\n","stderr_tail":"","stdout_sha256":"6091a340e3fc01f5ee3a421592aa0502f776c7b179ce4376405e73d2d4106617","log_path":"~/dev/nebius-hackathon/pilot/v2-P/qutech__qupulse-797/runs/pilot-qutech__qupulse-797-b67d817a55/logs/agent1/agent1-6.log","tree_digest":"4c958932209d507ee70122162ba634c6c72beb9a19e3593573aee417bd66c7a6","tree_download_s":3.151805666042492,"started_at":"2026-10-03T17:15:28.050886Z","duration_s":2.960668,"timed_out":false,"image_before":"288f91ee-b304-47f2-92c2-140da7cfc235","image_after":"8a2e952b-c113-4049-a217-14119d200b6c","junit":{"passed":["tests/_program/loop_tests.py::tests::_program::tabor_tests::LoopTests::test_cleanup","tests/_program/loop_tests.py::tests::_program::tabor_tests::LoopTests::test_cleanup_single_rep","tests/_program/loop_tests.py::tests::_program::tabor_tests::LoopTests::test_cleanup_warnings","tests/_program/loop_tests.py::tests::_program::tabor_tests::LoopTests::test_compare_key","tests/_program/loop_tests.py::tests::_program::tabor_tests::LoopTests::test_depth","tests/_program/loop_tests.py::tests::_program::tabor_tests::LoopTests::test_flatten_and_balance","tests/_program/loop_tests.py::tests::_program::tabor_tests::LoopTests::test_flatten_and_balance_comparison_based","tests/_program/loop_tests.py::tests::_program::tabor_tests::LoopTests::test_get_measurement_windows","tests/_program/loop_tests.py::tests::_program::tabor_tests::LoopTests::test_is_balanced","tests/_program/loop_tests.py::tests::_program::tabor_tests::LoopTests::test_is_leaf","tests/_program/loop_tests.py::tests::_program::tabor_tests::LoopTests::test_repr","tests/_program/loop_tests.py::tests::_program::tabor_tests::LoopTests::test_str","tests/_program/loop_tests.py::tests::_program::tabor_tests::LoopTests::test_unroll","tests/_program/tabor_tests.py::PlottableProgramTests::test_builtint_conversion","tests/_program/tabor_tests.py::PlottableProgramTests::test_eq","tests/_program/tabor_tests.py::PlottableProgramTests::test_from_read_data","tests/_program/tabor_tests.py::PlottableProgramTests::test_get_advanced_sequence_table","tests/_program/tabor_tests.py::PlottableProgramTests::test_get_as_single_waveform","tests/_program/tabor_tests.py::PlottableProgramTests::test_get_repetitions","tests/_program/tabor_tests.py::PlottableProgramTests::test_get_waveforms","tests/_program/tabor_tests.py::PlottableProgramTests::test_init","tests/_program/tabor_tests.py::PlottableProgramTests::test_iter","tests/_program/tabor_tests.py::TaborProgramTests::test_advanced_sequence_exceptions","tests/_program/tabor_tests.py::TaborProgramTests::test_calc_sampled_segments_deduplication","tests/_program/tabor_tests.py::TaborProgramTests::test_depth_0_single_waveform","tests/_program/tabor_tests.py::TaborProgramTests::test_depth_1_advanced_sequence","tests/_program/tabor_tests.py::TaborProgramTests::test_depth_1_advanced_sequence_unroll","tests/_program/tabor_tests.py::TaborProgramTests::test_depth_1_single_sequence","tests/_program/tabor_tests.py::TaborProgramTests::test_depth_1_single_sequence_2","tests/_program/tabor_tests.py::TaborProgramTests::test_depth_1_single_waveform","tests/_program/tabor_tests.py::TaborProgramTests::test_init","tests/_program/tabor_tests.py::TaborProgramTests::test_sampled_segments","tests/_program/tabor_tests.py::TaborProgramTests::test_update_volatile_parameters_with_depth1","tests/_program/tabor_tests.py::TaborProgramTests::test_update_volatile_parameters_with_depth2","tests/_program/tabor_tests.py::TaborSegmentTests::test_data_a","tests/_program/tabor_tests.py::TaborSegmentTests::test_data_b","tests/_program/tabor_tests.py::TaborSegmentTests::test_eq","tests/_program/tabor_tests.py::TaborSegmentTests::test_from_binary_data","tests/_program/tabor_tests.py::TaborSegmentTests::test_from_binary_segment","tests/_program/tabor_tests.py::TaborSegmentTests::test_from_sampled","tests/_program/tabor_tests.py::TaborSegmentTests::test_num_points","tests/_program/tabor_tests.py::TaborMakeCombinedTest::test_empty_segment_list","tests/_program/tabor_tests.py::TaborMakeCombinedTest::test_make_comb_both","tests/_program/tabor_tests.py::TaborMakeCombinedTest::test_make_single_chan","tests/_program/tabor_tests.py::TaborMemoryManagementTests::test_find_place_for_segments_in_memory"],"failed":[],"errors":[],"skipped":["tests/_program/tabor_tests.py::TaborMakeCombinedPyTaborCompareTest::test_empty_segment_list","tests/_program/tabor_tests.py::TaborMakeCombinedPyTaborCompareTest::test_make_comb_both","tests/_program/tabor_tests.py::TaborMakeCombinedPyTaborCompareTest::test_make_single_chan"],"collection_errors":[],"failure_text":{}},"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-7","seq":7,"branch_id":"agent1","kind":"command","cmd":"/opt/receipts-3c745149cb954a0082987a8a5a095637/bin/busybox mkdir -p /opt/receipts/reports && python -I /opt/receipts-3c745149cb954a0082987a8a5a095637/receipts_pytest.py --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning tests/_program/tabor_tests.py tests/pulses/sequencing_dummies.py -o junit_family=xunit1 -p no:cacheprovider -rA --continue-on-collection-errors --junitxml=/opt/receipts/reports/agent1-7.xml","path":null,"exit_code":0,"stdout_tail":"============================= test session starts ==============================\ncollected 48 items\n\ntests/_program/tabor_tests.py .......................................... [ 87%]\n..sss.                                                                   [100%]\n\n=============================== warnings summary ===============================\nqupulse/utils/types.py:36\n  /qupulse/qupulse/utils/types.py:36: UserWarning: gmpy2 not found. Using fractions.Fraction as fallback. Install gmpy2 for better performance.time_from_float might produce slightly different results\n    warnings.warn('gmpy2 not found. Using fractions.Fraction as fallback. Install gmpy2 for better performance.'\n\nqupulse/utils/sympy.py:26\n  /qupulse/qupulse/utils/sympy.py:26: UserWarning: scipy is not installed. This reduces the set of available functions to those present in numpy + manually vectorized functions in math.\n    warnings.warn('scipy is not installed. This reduces the set of available functions to those present in numpy + '\n\n-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html\n==================================== PASSES ====================================\n------------ generated xml file: /opt/receipts/reports/agent1-7.xml ------------\n=========================== short test summary info ============================\nPASSED tests/_program/tabor_tests.py::LoopTests::test_cleanup\nPASSED tests/_program/tabor_tests.py::LoopTests::test_cleanup_single_rep\nPASSED tests/_program/tabor_tests.py::LoopTests::test_cleanup_warnings\nPASSED tests/_program/tabor_tests.py::LoopTests::test_compare_key\nPASSED tests/_program/tabor_tests.py::LoopTests::test_depth\nPASSED tests/_program/tabor_tests.py::LoopTests::test_flatten_and_balance\nPASSED tests/_program/tabor_tests.py::LoopTests::test_flatten_and_balance_comparison_based\nPASSED tests/_program/tabor_tests.py::LoopTests::test_get_measurement_windows\nPASSED tests/_program/tabor_tests.py::LoopTests::test_is_balanced\nPASSED tests/_program/tabor_tests.py::LoopTests::test_is_leaf\nPASSED tests/_program/tabor_tests.py::LoopTests::test_repr\nPASSED tests/_program/tabor_tests.py::LoopTests::test_str\nPASSED tests/_program/tabor_tests.py::LoopTests::test_unroll\nPASSED tests/_program/tabor_tests.py::PlottableProgramTests::test_builtint_conversion\nPASSED tests/_program/tabor_tests.py::PlottableProgramTests::test_eq\nPASSED tests/_program/tabor_tests.py::PlottableProgramTests::test_from_read_data\nPASSED tests/_program/tabor_tests.py::PlottableProgramTests::test_get_advanced_sequence_table\nPASSED tests/_program/tabor_tests.py::PlottableProgramTests::test_get_as_single_waveform\nPASSED tests/_program/tabor_tests.py::PlottableProgramTests::test_get_repetitions\nPASSED tests/_program/tabor_tests.py::PlottableProgramTests::test_get_waveforms\nPASSED tests/_program/tabor_tests.py::PlottableProgramTests::test_init\nPASSED tests/_program/tabor_tests.py::PlottableProgramTests::test_iter\nPASSED tests/_program/tabor_tests.py::TaborProgramTests::test_advanced_sequence_exceptions\nPASSED tests/_program/tabor_tests.py::TaborProgramTests::test_calc_sampled_segments_deduplication\nPASSED tests/_program/tabor_tests.py::TaborProgramTests::test_depth_0_single_waveform\nPASSED tests/_program/tabor_tests.py::TaborProgramTests::test_depth_1_advanced_sequence\nPASSED tests/_program/tabor_tests.py::TaborProgramTests::test_depth_1_advanced_sequence_unroll\nPASSED tests/_program/tabor_tests.py::TaborProgramTests::test_depth_1_single_sequence\nPASSED tests/_program/tabor_tests.py::TaborProgramTests::test_depth_1_single_sequence_2\nPASSED tests/_program/tabor_tests.py::TaborProgramTests::test_depth_1_single_waveform\nPASSED tests/_program/tabor_tests.py::TaborProgramTests::test_init\nPASSED tests/_program/tabor_tests.py::TaborProgramTests::test_sampled_segments\nPASSED tests/_program/tabor_tests.py::TaborProgramTests::test_update_volatile_parameters_with_depth1\nPASSED tests/_program/tabor_tests.py::TaborProgramTests::test_update_volatile_parameters_with_depth2\nPASSED tests/_program/tabor_tests.py::TaborSegmentTests::test_data_a\nPASSED tests/_program/tabor_tests.py::TaborSegmentTests::test_data_b\nPASSED tests/_program/tabor_tests.py::TaborSegmentTests::test_eq\nPASSED tests/_program/tabor_tests.py::TaborSegmentTests::test_from_binary_data\nPASSED tests/_program/tabor_tests.py::TaborSegmentTests::test_from_binary_segment\nPASSED tests/_program/tabor_tests.py::TaborSegmentTests::test_from_sampled\nPASSED tests/_program/tabor_tests.py::TaborSegmentTests::test_num_points\nPASSED tests/_program/tabor_tests.py::TaborMakeCombinedTest::test_empty_segment_list\nPASSED tests/_program/tabor_tests.py::TaborMakeCombinedTest::test_make_comb_both\nPASSED tests/_program/tabor_tests.py::TaborMakeCombinedTest::test_make_single_chan\nPASSED tests/_program/tabor_tests.py::TaborMemoryManagementTests::test_find_place_for_segments_in_memory\nSKIPPED [1] tests/_program/tabor_tests.py:693: Cannot compare to pytabor results\nSKIPPED [1] tests/_program/tabor_tests.py:669: Cannot compare to pytabor results\nSKIPPED [1] tests/_program/tabor_tests.py:683: Cannot compare to pytabor results\n================== 45 passed, 3 skipped, 2 warnings in 2.30s ===================\n","stderr_tail":"","stdout_sha256":"4835367c45d5156443aeb18c379d3f9adca674b9369bb72e411b3adb55dcd521","log_path":"~/dev/nebius-hackathon/pilot/v2-P/qutech__qupulse-797/runs/pilot-qutech__qupulse-797-b67d817a55/logs/agent1/agent1-7.log","tree_digest":"4c958932209d507ee70122162ba634c6c72beb9a19e3593573aee417bd66c7a6","tree_download_s":4.705578166991472,"started_at":"2026-10-03T17:15:39.094231Z","duration_s":2.955098,"timed_out":false,"image_before":"8a2e952b-c113-4049-a217-14119d200b6c","image_after":"ceb9f0a9-71f1-43cc-a085-c9463996208f","junit":{"passed":["tests/_program/loop_tests.py::tests::_program::tabor_tests::LoopTests::test_cleanup","tests/_program/loop_tests.py::tests::_program::tabor_tests::LoopTests::test_cleanup_single_rep","tests/_program/loop_tests.py::tests::_program::tabor_tests::LoopTests::test_cleanup_warnings","tests/_program/loop_tests.py::tests::_program::tabor_tests::LoopTests::test_compare_key","tests/_program/loop_tests.py::tests::_program::tabor_tests::LoopTests::test_depth","tests/_program/loop_tests.py::tests::_program::tabor_tests::LoopTests::test_flatten_and_balance","tests/_program/loop_tests.py::tests::_program::tabor_tests::LoopTests::test_flatten_and_balance_comparison_based","tests/_program/loop_tests.py::tests::_program::tabor_tests::LoopTests::test_get_measurement_windows","tests/_program/loop_tests.py::tests::_program::tabor_tests::LoopTests::test_is_balanced","tests/_program/loop_tests.py::tests::_program::tabor_tests::LoopTests::test_is_leaf","tests/_program/loop_tests.py::tests::_program::tabor_tests::LoopTests::test_repr","tests/_program/loop_tests.py::tests::_program::tabor_tests::LoopTests::test_str","tests/_program/loop_tests.py::tests::_program::tabor_tests::LoopTests::test_unroll","tests/_program/tabor_tests.py::PlottableProgramTests::test_builtint_conversion","tests/_program/tabor_tests.py::PlottableProgramTests::test_eq","tests/_program/tabor_tests.py::PlottableProgramTests::test_from_read_data","tests/_program/tabor_tests.py::PlottableProgramTests::test_get_advanced_sequence_table","tests/_program/tabor_tests.py::PlottableProgramTests::test_get_as_single_waveform","tests/_program/tabor_tests.py::PlottableProgramTests::test_get_repetitions","tests/_program/tabor_tests.py::PlottableProgramTests::test_get_waveforms","tests/_program/tabor_tests.py::PlottableProgramTests::test_init","tests/_program/tabor_tests.py::PlottableProgramTests::test_iter","tests/_program/tabor_tests.py::TaborProgramTests::test_advanced_sequence_exceptions","tests/_program/tabor_tests.py::TaborProgramTests::test_calc_sampled_segments_deduplication","tests/_program/tabor_tests.py::TaborProgramTests::test_depth_0_single_waveform","tests/_program/tabor_tests.py::TaborProgramTests::test_depth_1_advanced_sequence","tests/_program/tabor_tests.py::TaborProgramTests::test_depth_1_advanced_sequence_unroll","tests/_program/tabor_tests.py::TaborProgramTests::test_depth_1_single_sequence","tests/_program/tabor_tests.py::TaborProgramTests::test_depth_1_single_sequence_2","tests/_program/tabor_tests.py::TaborProgramTests::test_depth_1_single_waveform","tests/_program/tabor_tests.py::TaborProgramTests::test_init","tests/_program/tabor_tests.py::TaborProgramTests::test_sampled_segments","tests/_program/tabor_tests.py::TaborProgramTests::test_update_volatile_parameters_with_depth1","tests/_program/tabor_tests.py::TaborProgramTests::test_update_volatile_parameters_with_depth2","tests/_program/tabor_tests.py::TaborSegmentTests::test_data_a","tests/_program/tabor_tests.py::TaborSegmentTests::test_data_b","tests/_program/tabor_tests.py::TaborSegmentTests::test_eq","tests/_program/tabor_tests.py::TaborSegmentTests::test_from_binary_data","tests/_program/tabor_tests.py::TaborSegmentTests::test_from_binary_segment","tests/_program/tabor_tests.py::TaborSegmentTests::test_from_sampled","tests/_program/tabor_tests.py::TaborSegmentTests::test_num_points","tests/_program/tabor_tests.py::TaborMakeCombinedTest::test_empty_segment_list","tests/_program/tabor_tests.py::TaborMakeCombinedTest::test_make_comb_both","tests/_program/tabor_tests.py::TaborMakeCombinedTest::test_make_single_chan","tests/_program/tabor_tests.py::TaborMemoryManagementTests::test_find_place_for_segments_in_memory"],"failed":[],"errors":[],"skipped":["tests/_program/tabor_tests.py::TaborMakeCombinedPyTaborCompareTest::test_empty_segment_list","tests/_program/tabor_tests.py::TaborMakeCombinedPyTaborCompareTest::test_make_comb_both","tests/_program/tabor_tests.py::TaborMakeCombinedPyTaborCompareTest::test_make_single_chan"],"collection_errors":[],"failure_text":{}},"diff":null,"patch_sha256":null,"dropped_paths":[],"snapshot_sha":null}
{"receipt_id":"agent1-8","seq":8,"branch_id":"agent1","kind":"diff","cmd":"compute patch in executor staging agent1-3c43f443877043d9ab2bcc1f1c5ae5d4: /opt/homebrew/Cellar/git/2.53.0/bin/git -c core.hooksPath=/dev/null -c core.attributesFile=/dev/null -c diff.external= -c core.quotePath=false add -A && /opt/homebrew/Cellar/git/2.53.0/bin/git -c core.hooksPath=/dev/null -c core.attributesFile=/dev/null -c diff.external= -c core.quotePath=false diff --cached --binary --no-ext-diff --no-textconv --no-renames c9883acf122c71468cabf3d1de2c65a7f637a509","path":null,"exit_code":0,"stdout_tail":"diff --git a/qupulse/_program/tabor.py b/qupulse/_program/tabor.py\nindex b92c76f..4d0fb63 100644\n--- a/qupulse/_program/tabor.py\n+++ b/qupulse/_program/tabor.py\n@@ -474,6 +474,9 @@ class TaborProgram(ProgramEntry):\n             raise TaborException('At least one waveform has a length that is smaller 192 or not a multiple of 16')\n \n         segments = []\n+        waveform_to_index = {}  # Maps waveform identity to segment index for deduplication\n+        segment_lengths_dedup = []  # Store corresponding lengths for deduplicated segments\n+        \n         for i, waveform in enumerate(self._parsed_program.waveforms):\n             t = time_array[:segment_lengths[i]]\n             marker_time = t[::2]\n@@ -487,8 +490,21 @@ class TaborProgram(ProgramEntry):\n                                    ch_b=segment_b,\n                                    marker_a=marker_a,\n                                    marker_b=marker_b)\n-            segments.append(segment)\n-        return segments, segment_lengths\n+            \n+            # Check if we've already seen an equivalent segment\n+            segment_hash = hash(segment)\n+            if segment_hash in waveform_to_index:\n+                # Reuse existing segment index\n+                idx = waveform_to_index[segment_hash]\n+            else:\n+                # New unique segment\n+                idx = len(segments)\n+                segments.append(segment)\n+                waveform_to_index[segment_hash] = idx\n+                segment_lengths_dedup.append(segment_lengths[i])\n+                \n+        # Return deduplicated segments and their corresponding lengths\n+        return segments, segment_lengths_dedup\n \n     def setup_single_sequence_mode(self) -> None:\n         assert self.program.depth() == 1\n","stderr_tail":"","stdout_sha256":"cc051a997c4406549c36c56deef588362fb2a4ca916e58b1786d8acf5d8336bf","log_path":null,"tree_digest":"4c958932209d507ee70122162ba634c6c72beb9a19e3593573aee417bd66c7a6","tree_download_s":8.759943957906216,"started_at":"2026-10-03T17:16:06.269955Z","duration_s":0.054842166136950254,"timed_out":false,"image_before":"ceb9f0a9-71f1-43cc-a085-c9463996208f","image_after":"ceb9f0a9-71f1-43cc-a085-c9463996208f","junit":null,"diff":{"files":[{"path":"qupulse/_program/tabor.py","added":18,"deleted":2,"category":"source","status":"modified"}],"patch_sha256":"cc051a997c4406549c36c56deef588362fb2a4ca916e58b1786d8acf5d8336bf","patch_path":"~/dev/nebius-hackathon/pilot/v2-P/qutech__qupulse-797/runs/pilot-qutech__qupulse-797-b67d817a55/artifacts/agent1/agent1-8.patch"},"patch_sha256":"cc051a997c4406549c36c56deef588362fb2a4ca916e58b1786d8acf5d8336bf","dropped_paths":[],"snapshot_sha":"c9883acf122c71468cabf3d1de2c65a7f637a509"}
