cirq-core 1.6.0.dev20250508231110__py3-none-any.whl → 1.6.0.dev20250512192405__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of cirq-core might be problematic. Click here for more details.

Files changed (167) hide show
  1. cirq/_version.py +1 -1
  2. cirq/_version_test.py +2 -2
  3. cirq/circuits/_block_diagram_drawer_test.py +6 -6
  4. cirq/circuits/_box_drawing_character_data_test.py +1 -1
  5. cirq/circuits/insert_strategy_test.py +2 -2
  6. cirq/circuits/optimization_pass_test.py +5 -5
  7. cirq/contrib/acquaintance/inspection_utils_test.py +2 -2
  8. cirq/contrib/acquaintance/mutation_utils_test.py +2 -2
  9. cirq/contrib/acquaintance/optimizers_test.py +1 -1
  10. cirq/contrib/acquaintance/shift_test.py +6 -6
  11. cirq/contrib/acquaintance/strategies/cubic_test.py +2 -2
  12. cirq/contrib/acquaintance/topological_sort_test.py +1 -1
  13. cirq/contrib/hacks/disable_validation_test.py +1 -1
  14. cirq/contrib/json_test.py +3 -3
  15. cirq/contrib/noise_models/noise_models_test.py +8 -8
  16. cirq/contrib/paulistring/clifford_optimize_test.py +5 -5
  17. cirq/contrib/paulistring/clifford_target_gateset_test.py +11 -11
  18. cirq/contrib/paulistring/optimize_test.py +3 -3
  19. cirq/contrib/paulistring/pauli_string_dag_test.py +1 -1
  20. cirq/contrib/paulistring/pauli_string_optimize_test.py +3 -3
  21. cirq/contrib/paulistring/recombine_test.py +1 -1
  22. cirq/contrib/paulistring/separate_test.py +1 -1
  23. cirq/contrib/qasm_import/_parser_test.py +67 -67
  24. cirq/contrib/qcircuit/qcircuit_pdf_test.py +1 -1
  25. cirq/contrib/qcircuit/qcircuit_test.py +6 -6
  26. cirq/contrib/routing/greedy_test.py +2 -2
  27. cirq/contrib/routing/initialization_test.py +3 -3
  28. cirq/contrib/svg/svg_test.py +5 -5
  29. cirq/devices/device_test.py +4 -4
  30. cirq/devices/insertion_noise_model_test.py +5 -5
  31. cirq/devices/named_topologies_test.py +10 -10
  32. cirq/devices/noise_properties_test.py +1 -1
  33. cirq/experiments/n_qubit_tomography_test.py +5 -5
  34. cirq/experiments/t1_decay_experiment_test.py +11 -11
  35. cirq/interop/quirk/cells/arithmetic_cells_test.py +14 -14
  36. cirq/interop/quirk/cells/control_cells_test.py +5 -5
  37. cirq/interop/quirk/cells/frequency_space_cells_test.py +1 -1
  38. cirq/interop/quirk/cells/ignored_cells_test.py +1 -1
  39. cirq/interop/quirk/cells/input_cells_test.py +5 -5
  40. cirq/interop/quirk/cells/input_rotation_cells_test.py +7 -7
  41. cirq/interop/quirk/cells/measurement_cells_test.py +1 -1
  42. cirq/interop/quirk/cells/qubit_permutation_cells_test.py +7 -7
  43. cirq/interop/quirk/cells/scalar_cells_test.py +1 -1
  44. cirq/interop/quirk/cells/single_qubit_rotation_cells_test.py +3 -3
  45. cirq/interop/quirk/cells/swap_cell_test.py +4 -4
  46. cirq/interop/quirk/cells/testing_test.py +6 -6
  47. cirq/interop/quirk/cells/unsupported_cells_test.py +2 -2
  48. cirq/linalg/combinators_test.py +7 -7
  49. cirq/linalg/diagonalize_test.py +10 -10
  50. cirq/linalg/operator_spaces_test.py +11 -11
  51. cirq/linalg/tolerance_test.py +4 -4
  52. cirq/neutral_atoms/convert_to_neutral_atom_gates_test.py +1 -1
  53. cirq/ops/arithmetic_operation_test.py +2 -2
  54. cirq/ops/common_channels_test.py +80 -80
  55. cirq/ops/fsim_gate_test.py +26 -26
  56. cirq/ops/gate_features_test.py +3 -3
  57. cirq/ops/greedy_qubit_manager_test.py +3 -3
  58. cirq/ops/mixed_unitary_channel_test.py +11 -11
  59. cirq/ops/parallel_gate_test.py +16 -16
  60. cirq/ops/parity_gates_test.py +34 -32
  61. cirq/ops/pauli_gates_test.py +20 -20
  62. cirq/ops/pauli_interaction_gate_test.py +8 -8
  63. cirq/ops/pauli_sum_exponential_test.py +10 -10
  64. cirq/ops/permutation_gate_test.py +8 -8
  65. cirq/ops/phased_iswap_gate_test.py +15 -15
  66. cirq/ops/qubit_manager_test.py +4 -4
  67. cirq/ops/random_gate_channel_test.py +11 -11
  68. cirq/ops/state_preparation_channel_test.py +8 -8
  69. cirq/ops/swap_gates_test.py +17 -17
  70. cirq/ops/tags_test.py +2 -2
  71. cirq/ops/three_qubit_gates_test.py +17 -17
  72. cirq/ops/two_qubit_diagonal_gate_test.py +8 -8
  73. cirq/ops/uniform_superposition_gate_test.py +3 -3
  74. cirq/protocols/act_on_protocol_test.py +6 -6
  75. cirq/protocols/circuit_diagram_info_protocol_test.py +13 -13
  76. cirq/protocols/control_key_protocol_test.py +1 -1
  77. cirq/protocols/decompose_protocol_test.py +12 -12
  78. cirq/protocols/equal_up_to_global_phase_protocol_test.py +6 -6
  79. cirq/protocols/has_stabilizer_effect_protocol_test.py +5 -5
  80. cirq/protocols/has_unitary_protocol_test.py +8 -8
  81. cirq/protocols/hash_from_pickle_test.py +1 -1
  82. cirq/protocols/inverse_protocol_test.py +2 -2
  83. cirq/protocols/kraus_protocol_test.py +9 -9
  84. cirq/protocols/measurement_key_protocol_test.py +10 -10
  85. cirq/protocols/pauli_expansion_protocol_test.py +2 -2
  86. cirq/protocols/phase_protocol_test.py +1 -1
  87. cirq/protocols/qasm_test.py +3 -3
  88. cirq/protocols/qid_shape_protocol_test.py +1 -1
  89. cirq/protocols/resolve_parameters_test.py +5 -5
  90. cirq/protocols/trace_distance_bound_test.py +1 -1
  91. cirq/qis/channels_test.py +16 -16
  92. cirq/qis/measures_test.py +16 -14
  93. cirq/qis/noise_utils_test.py +7 -7
  94. cirq/sim/clifford/clifford_tableau_simulation_state_test.py +3 -3
  95. cirq/sim/clifford/stabilizer_ch_form_simulation_state_test.py +6 -6
  96. cirq/sim/clifford/stabilizer_sampler_test.py +2 -2
  97. cirq/sim/clifford/stabilizer_simulation_state_test.py +4 -4
  98. cirq/sim/clifford/stabilizer_state_ch_form_test.py +2 -2
  99. cirq/sim/density_matrix_simulation_state_test.py +8 -8
  100. cirq/sim/density_matrix_utils_test.py +36 -36
  101. cirq/sim/simulation_product_state_test.py +22 -22
  102. cirq/sim/simulation_state_test.py +12 -12
  103. cirq/sim/simulation_utils_test.py +1 -1
  104. cirq/sim/state_vector_simulation_state_test.py +12 -12
  105. cirq/study/flatten_expressions_test.py +11 -11
  106. cirq/study/resolver_test.py +20 -20
  107. cirq/testing/consistent_act_on_test.py +1 -1
  108. cirq/testing/consistent_channels_test.py +8 -8
  109. cirq/testing/consistent_controlled_gate_op_test.py +2 -2
  110. cirq/testing/consistent_decomposition_test.py +2 -2
  111. cirq/testing/consistent_pauli_expansion_test.py +1 -1
  112. cirq/testing/consistent_phase_by_test.py +1 -1
  113. cirq/testing/consistent_qasm_test.py +1 -1
  114. cirq/testing/consistent_specified_has_unitary_test.py +4 -4
  115. cirq/testing/consistent_unitary_test.py +2 -2
  116. cirq/testing/deprecation_test.py +2 -2
  117. cirq/testing/devices_test.py +4 -4
  118. cirq/testing/equivalent_basis_map_test.py +2 -2
  119. cirq/testing/equivalent_repr_eval_test.py +3 -3
  120. cirq/testing/gate_features_test.py +5 -5
  121. cirq/testing/json_test.py +3 -3
  122. cirq/testing/lin_alg_utils_test.py +12 -12
  123. cirq/testing/logs_test.py +7 -7
  124. cirq/testing/no_identifier_qubit_test.py +3 -3
  125. cirq/testing/op_tree_test.py +1 -1
  126. cirq/testing/order_tester_test.py +6 -6
  127. cirq/testing/pytest_utils_test.py +2 -2
  128. cirq/testing/random_circuit_test.py +5 -5
  129. cirq/testing/repr_pretty_tester_test.py +3 -3
  130. cirq/testing/routing_devices_test.py +6 -6
  131. cirq/testing/sample_circuits_test.py +1 -1
  132. cirq/testing/sample_gates_test.py +2 -2
  133. cirq/transformers/analytical_decompositions/pauli_string_decomposition_test.py +3 -3
  134. cirq/transformers/analytical_decompositions/three_qubit_decomposition_test.py +7 -7
  135. cirq/transformers/analytical_decompositions/two_qubit_to_cz_test.py +6 -6
  136. cirq/transformers/analytical_decompositions/two_qubit_to_fsim_test.py +5 -5
  137. cirq/transformers/analytical_decompositions/two_qubit_to_ms_test.py +1 -1
  138. cirq/transformers/drop_empty_moments_test.py +2 -2
  139. cirq/transformers/eject_phased_paulis_test.py +9 -9
  140. cirq/transformers/heuristic_decompositions/two_qubit_gate_tabulation_test.py +7 -7
  141. cirq/transformers/insertion_sort_test.py +1 -1
  142. cirq/transformers/merge_k_qubit_gates_test.py +9 -9
  143. cirq/transformers/qubit_management_transformers_test.py +3 -3
  144. cirq/transformers/randomized_measurements_test.py +8 -4
  145. cirq/transformers/routing/line_initial_mapper_test.py +5 -5
  146. cirq/transformers/routing/route_circuit_cqc_test.py +13 -13
  147. cirq/transformers/routing/visualize_routed_circuit_test.py +2 -2
  148. cirq/transformers/synchronize_terminal_measurements_test.py +10 -10
  149. cirq/transformers/target_gatesets/compilation_target_gateset_test.py +8 -8
  150. cirq/transformers/target_gatesets/cz_gateset_test.py +17 -17
  151. cirq/transformers/target_gatesets/sqrt_iswap_gateset_test.py +23 -23
  152. cirq/value/angle_test.py +3 -3
  153. cirq/value/classical_data_test.py +8 -8
  154. cirq/value/periodic_value_test.py +9 -7
  155. cirq/value/probability_test.py +2 -2
  156. cirq/value/value_equality_attr_test.py +11 -11
  157. cirq/vis/histogram_test.py +2 -2
  158. cirq/vis/state_histogram_test.py +5 -5
  159. cirq/vis/vis_utils_test.py +1 -1
  160. cirq/work/observable_grouping_test.py +8 -8
  161. cirq/work/observable_readout_calibration_test.py +1 -1
  162. cirq/work/zeros_sampler_test.py +4 -4
  163. {cirq_core-1.6.0.dev20250508231110.dist-info → cirq_core-1.6.0.dev20250512192405.dist-info}/METADATA +1 -1
  164. {cirq_core-1.6.0.dev20250508231110.dist-info → cirq_core-1.6.0.dev20250512192405.dist-info}/RECORD +167 -167
  165. {cirq_core-1.6.0.dev20250508231110.dist-info → cirq_core-1.6.0.dev20250512192405.dist-info}/WHEEL +1 -1
  166. {cirq_core-1.6.0.dev20250508231110.dist-info → cirq_core-1.6.0.dev20250512192405.dist-info}/licenses/LICENSE +0 -0
  167. {cirq_core-1.6.0.dev20250508231110.dist-info → cirq_core-1.6.0.dev20250512192405.dist-info}/top_level.txt +0 -0
@@ -21,7 +21,7 @@ import cirq
21
21
  import cirq.testing
22
22
 
23
23
 
24
- def test_sample_density_matrix_big_endian():
24
+ def test_sample_density_matrix_big_endian() -> None:
25
25
  results = []
26
26
  for x in range(8):
27
27
  matrix = cirq.to_valid_density_matrix(x, 3)
@@ -32,7 +32,7 @@ def test_sample_density_matrix_big_endian():
32
32
  np.testing.assert_equal(result, expected)
33
33
 
34
34
 
35
- def test_sample_density_matrix_partial_indices():
35
+ def test_sample_density_matrix_partial_indices() -> None:
36
36
  for index in range(3):
37
37
  for x in range(8):
38
38
  matrix = cirq.to_valid_density_matrix(x, 3)
@@ -41,14 +41,14 @@ def test_sample_density_matrix_partial_indices():
41
41
  )
42
42
 
43
43
 
44
- def test_sample_density_matrix_partial_indices_oder():
44
+ def test_sample_density_matrix_partial_indices_oder() -> None:
45
45
  for x in range(8):
46
46
  matrix = cirq.to_valid_density_matrix(x, 3)
47
47
  expected = [[bool(1 & (x >> 0)), bool(1 & (x >> 1))]]
48
48
  np.testing.assert_equal(cirq.sample_density_matrix(matrix, [2, 1]), expected)
49
49
 
50
50
 
51
- def test_sample_density_matrix_partial_indices_all_orders():
51
+ def test_sample_density_matrix_partial_indices_all_orders() -> None:
52
52
  for perm in itertools.permutations([0, 1, 2]):
53
53
  for x in range(8):
54
54
  matrix = cirq.to_valid_density_matrix(x, 3)
@@ -56,7 +56,7 @@ def test_sample_density_matrix_partial_indices_all_orders():
56
56
  np.testing.assert_equal(cirq.sample_density_matrix(matrix, perm), expected)
57
57
 
58
58
 
59
- def test_sample_density_matrix():
59
+ def test_sample_density_matrix() -> None:
60
60
  state = np.zeros(8, dtype=np.complex64)
61
61
  state[0] = 1 / np.sqrt(2)
62
62
  state[2] = 1 / np.sqrt(2)
@@ -72,7 +72,7 @@ def test_sample_density_matrix():
72
72
  np.testing.assert_equal(cirq.sample_density_matrix(matrix, [0]), [[False]])
73
73
 
74
74
 
75
- def test_sample_density_matrix_seed():
75
+ def test_sample_density_matrix_seed() -> None:
76
76
  density_matrix = 0.5 * np.eye(2)
77
77
 
78
78
  samples = cirq.sample_density_matrix(density_matrix, [0], repetitions=10, seed=1234)
@@ -90,12 +90,12 @@ def test_sample_density_matrix_seed():
90
90
  )
91
91
 
92
92
 
93
- def test_sample_empty_density_matrix():
93
+ def test_sample_empty_density_matrix() -> None:
94
94
  matrix = np.zeros(shape=())
95
95
  np.testing.assert_almost_equal(cirq.sample_density_matrix(matrix, []), [[]])
96
96
 
97
97
 
98
- def test_sample_density_matrix_no_repetitions():
98
+ def test_sample_density_matrix_no_repetitions() -> None:
99
99
  matrix = cirq.to_valid_density_matrix(0, 3)
100
100
  np.testing.assert_almost_equal(
101
101
  cirq.sample_density_matrix(matrix, [1], repetitions=0), np.zeros(shape=(0, 1))
@@ -105,7 +105,7 @@ def test_sample_density_matrix_no_repetitions():
105
105
  )
106
106
 
107
107
 
108
- def test_sample_density_matrix_repetitions():
108
+ def test_sample_density_matrix_repetitions() -> None:
109
109
  for perm in itertools.permutations([0, 1, 2]):
110
110
  for x in range(8):
111
111
  matrix = cirq.to_valid_density_matrix(x, 3)
@@ -115,30 +115,30 @@ def test_sample_density_matrix_repetitions():
115
115
  np.testing.assert_equal(result, expected)
116
116
 
117
117
 
118
- def test_sample_density_matrix_negative_repetitions():
118
+ def test_sample_density_matrix_negative_repetitions() -> None:
119
119
  matrix = cirq.to_valid_density_matrix(0, 3)
120
120
  with pytest.raises(ValueError, match='-1'):
121
121
  cirq.sample_density_matrix(matrix, [1], repetitions=-1)
122
122
 
123
123
 
124
- def test_sample_density_matrix_not_square():
124
+ def test_sample_density_matrix_not_square() -> None:
125
125
  with pytest.raises(ValueError, match='not square'):
126
126
  cirq.sample_density_matrix(np.array([1, 0, 0]), [1])
127
127
 
128
128
 
129
- def test_sample_density_matrix_not_power_of_two():
129
+ def test_sample_density_matrix_not_power_of_two() -> None:
130
130
  with pytest.raises(ValueError, match='power of two'):
131
131
  cirq.sample_density_matrix(np.ones((3, 3)) / 3, [1])
132
132
  with pytest.raises(ValueError, match='power of two'):
133
133
  cirq.sample_density_matrix(np.ones((2, 3, 2, 3)) / 6, [1])
134
134
 
135
135
 
136
- def test_sample_density_matrix_higher_powers_of_two():
136
+ def test_sample_density_matrix_higher_powers_of_two() -> None:
137
137
  with pytest.raises(ValueError, match='powers of two'):
138
138
  cirq.sample_density_matrix(np.ones((2, 4, 2, 4)) / 8, [1])
139
139
 
140
140
 
141
- def test_sample_density_matrix_out_of_range():
141
+ def test_sample_density_matrix_out_of_range() -> None:
142
142
  matrix = cirq.to_valid_density_matrix(0, 3)
143
143
  with pytest.raises(IndexError, match='-2'):
144
144
  cirq.sample_density_matrix(matrix, [-2])
@@ -146,13 +146,13 @@ def test_sample_density_matrix_out_of_range():
146
146
  cirq.sample_density_matrix(matrix, [3])
147
147
 
148
148
 
149
- def test_sample_density_matrix_no_indices():
149
+ def test_sample_density_matrix_no_indices() -> None:
150
150
  matrix = cirq.to_valid_density_matrix(0, 3)
151
151
  bits = cirq.sample_density_matrix(matrix, [])
152
152
  np.testing.assert_almost_equal(bits, np.zeros(shape=(1, 0)))
153
153
 
154
154
 
155
- def test_sample_density_matrix_validate_qid_shape():
155
+ def test_sample_density_matrix_validate_qid_shape() -> None:
156
156
  matrix = cirq.to_valid_density_matrix(0, 3)
157
157
  cirq.sample_density_matrix(matrix, [], qid_shape=(2, 2, 2))
158
158
  with pytest.raises(ValueError, match='Matrix size does not match qid shape'):
@@ -163,7 +163,7 @@ def test_sample_density_matrix_validate_qid_shape():
163
163
  cirq.sample_density_matrix(matrix2, [], qid_shape=(2, 2, 2))
164
164
 
165
165
 
166
- def test_measure_density_matrix_computational_basis():
166
+ def test_measure_density_matrix_computational_basis() -> None:
167
167
  results = []
168
168
  for x in range(8):
169
169
  matrix = cirq.to_valid_density_matrix(x, 3)
@@ -174,7 +174,7 @@ def test_measure_density_matrix_computational_basis():
174
174
  assert results == expected
175
175
 
176
176
 
177
- def test_measure_density_matrix_computational_basis_reversed():
177
+ def test_measure_density_matrix_computational_basis_reversed() -> None:
178
178
  results = []
179
179
  for x in range(8):
180
180
  matrix = cirq.to_valid_density_matrix(x, 3)
@@ -185,7 +185,7 @@ def test_measure_density_matrix_computational_basis_reversed():
185
185
  assert results == expected
186
186
 
187
187
 
188
- def test_measure_density_matrix_computational_basis_reshaped():
188
+ def test_measure_density_matrix_computational_basis_reshaped() -> None:
189
189
  results = []
190
190
  for x in range(8):
191
191
  matrix = np.reshape(cirq.to_valid_density_matrix(x, 3), (2,) * 6)
@@ -196,7 +196,7 @@ def test_measure_density_matrix_computational_basis_reshaped():
196
196
  assert results == expected
197
197
 
198
198
 
199
- def test_measure_density_matrix_partial_indices():
199
+ def test_measure_density_matrix_partial_indices() -> None:
200
200
  for index in range(3):
201
201
  for x in range(8):
202
202
  matrix = cirq.to_valid_density_matrix(x, 3)
@@ -205,7 +205,7 @@ def test_measure_density_matrix_partial_indices():
205
205
  assert bits == [bool(1 & (x >> (2 - index)))]
206
206
 
207
207
 
208
- def test_measure_density_matrix_partial_indices_all_orders():
208
+ def test_measure_density_matrix_partial_indices_all_orders() -> None:
209
209
  for perm in itertools.permutations([0, 1, 2]):
210
210
  for x in range(8):
211
211
  matrix = cirq.to_valid_density_matrix(x, 3)
@@ -221,7 +221,7 @@ def matrix_000_plus_010():
221
221
  return cirq.to_valid_density_matrix(state, num_qubits=3)
222
222
 
223
223
 
224
- def test_measure_density_matrix_collapse():
224
+ def test_measure_density_matrix_collapse() -> None:
225
225
  matrix = matrix_000_plus_010()
226
226
  for _ in range(10):
227
227
  bits, out_matrix = cirq.measure_density_matrix(matrix, [2, 1, 0])
@@ -246,7 +246,7 @@ def test_measure_density_matrix_collapse():
246
246
  assert bits == [False]
247
247
 
248
248
 
249
- def test_measure_density_matrix_seed():
249
+ def test_measure_density_matrix_seed() -> None:
250
250
  n = 5
251
251
  matrix = np.eye(2**n) / 2**n
252
252
 
@@ -261,7 +261,7 @@ def test_measure_density_matrix_seed():
261
261
  np.testing.assert_allclose(out_matrix1, out_matrix2)
262
262
 
263
263
 
264
- def test_measure_density_matrix_out_is_matrix():
264
+ def test_measure_density_matrix_out_is_matrix() -> None:
265
265
  matrix = matrix_000_plus_010()
266
266
  bits, out_matrix = cirq.measure_density_matrix(matrix, [2, 1, 0], out=matrix)
267
267
  expected_state = np.zeros(8, dtype=np.complex64)
@@ -271,7 +271,7 @@ def test_measure_density_matrix_out_is_matrix():
271
271
  assert out_matrix is matrix
272
272
 
273
273
 
274
- def test_measure_state_out_is_not_matrix():
274
+ def test_measure_state_out_is_not_matrix() -> None:
275
275
  matrix = matrix_000_plus_010()
276
276
  out = np.zeros_like(matrix)
277
277
  _, out_matrix = cirq.measure_density_matrix(matrix, [2, 1, 0], out=out)
@@ -279,7 +279,7 @@ def test_measure_state_out_is_not_matrix():
279
279
  assert out is out_matrix
280
280
 
281
281
 
282
- def test_measure_density_matrix_not_square():
282
+ def test_measure_density_matrix_not_square() -> None:
283
283
  with pytest.raises(ValueError, match='not square'):
284
284
  cirq.measure_density_matrix(np.array([1, 0, 0]), [1])
285
285
  with pytest.raises(ValueError, match='not square'):
@@ -288,26 +288,26 @@ def test_measure_density_matrix_not_square():
288
288
  )
289
289
 
290
290
 
291
- def test_measure_density_matrix_not_power_of_two():
291
+ def test_measure_density_matrix_not_power_of_two() -> None:
292
292
  with pytest.raises(ValueError, match='power of two'):
293
293
  cirq.measure_density_matrix(np.ones((3, 3)) / 3, [1])
294
294
  with pytest.raises(ValueError, match='power of two'):
295
295
  cirq.measure_density_matrix(np.ones((2, 3, 2, 3)) / 6, [1])
296
296
 
297
297
 
298
- def test_measure_density_matrix_higher_powers_of_two():
298
+ def test_measure_density_matrix_higher_powers_of_two() -> None:
299
299
  with pytest.raises(ValueError, match='powers of two'):
300
300
  cirq.measure_density_matrix(np.ones((2, 4, 2, 4)) / 8, [1])
301
301
 
302
302
 
303
- def test_measure_density_matrix_tensor_different_left_right_shape():
303
+ def test_measure_density_matrix_tensor_different_left_right_shape() -> None:
304
304
  with pytest.raises(ValueError, match='not equal'):
305
305
  cirq.measure_density_matrix(
306
306
  np.array([1, 0, 0, 0]).reshape((2, 2, 1, 1)), [1], qid_shape=(2, 1)
307
307
  )
308
308
 
309
309
 
310
- def test_measure_density_matrix_out_of_range():
310
+ def test_measure_density_matrix_out_of_range() -> None:
311
311
  matrix = cirq.to_valid_density_matrix(0, 3)
312
312
  with pytest.raises(IndexError, match='-2'):
313
313
  cirq.measure_density_matrix(matrix, [-2])
@@ -315,14 +315,14 @@ def test_measure_density_matrix_out_of_range():
315
315
  cirq.measure_density_matrix(matrix, [3])
316
316
 
317
317
 
318
- def test_measure_state_no_indices():
318
+ def test_measure_state_no_indices() -> None:
319
319
  matrix = cirq.to_valid_density_matrix(0, 3)
320
320
  bits, out_matrix = cirq.measure_density_matrix(matrix, [])
321
321
  assert [] == bits
322
322
  np.testing.assert_almost_equal(out_matrix, matrix)
323
323
 
324
324
 
325
- def test_measure_state_no_indices_out_is_matrix():
325
+ def test_measure_state_no_indices_out_is_matrix() -> None:
326
326
  matrix = cirq.to_valid_density_matrix(0, 3)
327
327
  bits, out_matrix = cirq.measure_density_matrix(matrix, [], out=matrix)
328
328
  assert [] == bits
@@ -330,7 +330,7 @@ def test_measure_state_no_indices_out_is_matrix():
330
330
  assert out_matrix is matrix
331
331
 
332
332
 
333
- def test_measure_state_no_indices_out_is_not_matrix():
333
+ def test_measure_state_no_indices_out_is_not_matrix() -> None:
334
334
  matrix = cirq.to_valid_density_matrix(0, 3)
335
335
  out = np.zeros_like(matrix)
336
336
  bits, out_matrix = cirq.measure_density_matrix(matrix, [], out=out)
@@ -340,7 +340,7 @@ def test_measure_state_no_indices_out_is_not_matrix():
340
340
  assert out is not matrix
341
341
 
342
342
 
343
- def test_measure_state_empty_density_matrix():
343
+ def test_measure_state_empty_density_matrix() -> None:
344
344
  matrix = np.zeros(shape=())
345
345
  bits, out_matrix = cirq.measure_density_matrix(matrix, [])
346
346
  assert [] == bits
@@ -350,14 +350,14 @@ def test_measure_state_empty_density_matrix():
350
350
  @pytest.mark.parametrize('seed', [17, 35, 48])
351
351
  @pytest.mark.parametrize('dtype', [np.complex64, np.complex128])
352
352
  @pytest.mark.parametrize('split', [False, True])
353
- def test_to_valid_density_matrix_on_simulator_output(seed, dtype, split):
353
+ def test_to_valid_density_matrix_on_simulator_output(seed, dtype, split) -> None:
354
354
  circuit = cirq.testing.random_circuit(qubits=5, n_moments=20, op_density=0.9, random_state=seed)
355
355
  simulator = cirq.DensityMatrixSimulator(split_untangled_states=split, dtype=dtype)
356
356
  result = simulator.simulate(circuit)
357
357
  _ = cirq.to_valid_density_matrix(result.final_density_matrix, num_qubits=5, atol=1e-6)
358
358
 
359
359
 
360
- def test_factor_validation():
360
+ def test_factor_validation() -> None:
361
361
  args = cirq.DensityMatrixSimulator()._create_simulation_state(0, qubits=cirq.LineQubit.range(2))
362
362
  args.apply_operation(cirq.H(cirq.LineQubit(0)))
363
363
  t = args.create_merged_state().target_tensor
@@ -70,7 +70,7 @@ def create_container(
70
70
  )
71
71
 
72
72
 
73
- def test_entanglement_causes_join():
73
+ def test_entanglement_causes_join() -> None:
74
74
  state = create_container(qs2)
75
75
  assert len(set(state.values())) == 3
76
76
  state.apply_operation(cirq.CNOT(q0, q1))
@@ -79,7 +79,7 @@ def test_entanglement_causes_join():
79
79
  assert state[None] is not state[q0]
80
80
 
81
81
 
82
- def test_subcircuit_entanglement_causes_join():
82
+ def test_subcircuit_entanglement_causes_join() -> None:
83
83
  state = create_container(qs2)
84
84
  assert len(set(state.values())) == 3
85
85
  state.apply_operation(cirq.CircuitOperation(cirq.FrozenCircuit(cirq.CNOT(q0, q1))))
@@ -87,7 +87,7 @@ def test_subcircuit_entanglement_causes_join():
87
87
  assert state[q0] is state[q1]
88
88
 
89
89
 
90
- def test_subcircuit_entanglement_causes_join_in_subset():
90
+ def test_subcircuit_entanglement_causes_join_in_subset() -> None:
91
91
  state = create_container(qs3)
92
92
  assert len(set(state.values())) == 4
93
93
  state.apply_operation(cirq.CircuitOperation(cirq.FrozenCircuit(cirq.CNOT(q0, q1))))
@@ -98,7 +98,7 @@ def test_subcircuit_entanglement_causes_join_in_subset():
98
98
  assert state[q0] is state[q1] is state[q2]
99
99
 
100
100
 
101
- def test_identity_does_not_join():
101
+ def test_identity_does_not_join() -> None:
102
102
  state = create_container(qs2)
103
103
  assert len(set(state.values())) == 3
104
104
  state.apply_operation(cirq.IdentityGate(2)(q0, q1))
@@ -107,7 +107,7 @@ def test_identity_does_not_join():
107
107
  assert state[q0] is not state[None]
108
108
 
109
109
 
110
- def test_identity_fallback_does_not_join():
110
+ def test_identity_fallback_does_not_join() -> None:
111
111
  state = create_container(qs2)
112
112
  assert len(set(state.values())) == 3
113
113
  state._act_on_fallback_(cirq.I, (q0, q1))
@@ -116,7 +116,7 @@ def test_identity_fallback_does_not_join():
116
116
  assert state[q0] is not state[None]
117
117
 
118
118
 
119
- def test_subcircuit_identity_does_not_join():
119
+ def test_subcircuit_identity_does_not_join() -> None:
120
120
  state = create_container(qs2)
121
121
  assert len(set(state.values())) == 3
122
122
  state.apply_operation(cirq.CircuitOperation(cirq.FrozenCircuit(cirq.IdentityGate(2)(q0, q1))))
@@ -124,7 +124,7 @@ def test_subcircuit_identity_does_not_join():
124
124
  assert state[q0] is not state[q1]
125
125
 
126
126
 
127
- def test_measurement_causes_split():
127
+ def test_measurement_causes_split() -> None:
128
128
  state = create_container(qs2)
129
129
  state.apply_operation(cirq.CNOT(q0, q1))
130
130
  assert len(set(state.values())) == 2
@@ -134,7 +134,7 @@ def test_measurement_causes_split():
134
134
  assert state[q0] is not state[None]
135
135
 
136
136
 
137
- def test_subcircuit_measurement_causes_split():
137
+ def test_subcircuit_measurement_causes_split() -> None:
138
138
  state = create_container(qs2)
139
139
  state.apply_operation(cirq.CNOT(q0, q1))
140
140
  assert len(set(state.values())) == 2
@@ -143,7 +143,7 @@ def test_subcircuit_measurement_causes_split():
143
143
  assert state[q0] is not state[q1]
144
144
 
145
145
 
146
- def test_subcircuit_measurement_causes_split_in_subset():
146
+ def test_subcircuit_measurement_causes_split_in_subset() -> None:
147
147
  state = create_container(qs3)
148
148
  state.apply_operation(cirq.CNOT(q0, q1))
149
149
  state.apply_operation(cirq.CNOT(q0, q2))
@@ -158,7 +158,7 @@ def test_subcircuit_measurement_causes_split_in_subset():
158
158
  assert state[q1] is not state[q2]
159
159
 
160
160
 
161
- def test_reset_causes_split():
161
+ def test_reset_causes_split() -> None:
162
162
  state = create_container(qs2)
163
163
  state.apply_operation(cirq.CNOT(q0, q1))
164
164
  assert len(set(state.values())) == 2
@@ -168,7 +168,7 @@ def test_reset_causes_split():
168
168
  assert state[q0] is not state[None]
169
169
 
170
170
 
171
- def test_measurement_does_not_split_if_disabled():
171
+ def test_measurement_does_not_split_if_disabled() -> None:
172
172
  state = create_container(qs2, False)
173
173
  state.apply_operation(cirq.CNOT(q0, q1))
174
174
  assert len(set(state.values())) == 1
@@ -178,7 +178,7 @@ def test_measurement_does_not_split_if_disabled():
178
178
  assert state[None] is state[q0]
179
179
 
180
180
 
181
- def test_reset_does_not_split_if_disabled():
181
+ def test_reset_does_not_split_if_disabled() -> None:
182
182
  state = create_container(qs2, False)
183
183
  state.apply_operation(cirq.CNOT(q0, q1))
184
184
  assert len(set(state.values())) == 1
@@ -188,7 +188,7 @@ def test_reset_does_not_split_if_disabled():
188
188
  assert state[None] is state[q0]
189
189
 
190
190
 
191
- def test_measurement_of_all_qubits_causes_split():
191
+ def test_measurement_of_all_qubits_causes_split() -> None:
192
192
  state = create_container(qs2)
193
193
  state.apply_operation(cirq.CNOT(q0, q1))
194
194
  assert len(set(state.values())) == 2
@@ -198,7 +198,7 @@ def test_measurement_of_all_qubits_causes_split():
198
198
  assert state[q0] is not state[None]
199
199
 
200
200
 
201
- def test_measurement_in_single_qubit_circuit_passes():
201
+ def test_measurement_in_single_qubit_circuit_passes() -> None:
202
202
  state = create_container([q0])
203
203
  assert len(set(state.values())) == 2
204
204
  state.apply_operation(cirq.measure(q0))
@@ -206,25 +206,25 @@ def test_measurement_in_single_qubit_circuit_passes():
206
206
  assert state[q0] is not state[None]
207
207
 
208
208
 
209
- def test_reorder_succeeds():
209
+ def test_reorder_succeeds() -> None:
210
210
  state = create_container(qs2, False)
211
211
  reordered = state[q0].transpose_to_qubit_order([q1, q0])
212
212
  assert reordered.qubits == (q1, q0)
213
213
 
214
214
 
215
- def test_copy_succeeds():
215
+ def test_copy_succeeds() -> None:
216
216
  state = create_container(qs2, False)
217
217
  copied = state[q0].copy()
218
218
  assert copied.qubits == (q0, q1)
219
219
 
220
220
 
221
- def test_merge_succeeds():
221
+ def test_merge_succeeds() -> None:
222
222
  state = create_container(qs2, False)
223
223
  merged = state.create_merged_state()
224
224
  assert merged.qubits == (q0, q1)
225
225
 
226
226
 
227
- def test_swap_does_not_merge():
227
+ def test_swap_does_not_merge() -> None:
228
228
  state = create_container(qs2)
229
229
  old_q0 = state[q0]
230
230
  old_q1 = state[q1]
@@ -238,14 +238,14 @@ def test_swap_does_not_merge():
238
238
  assert state[q1].qubits == (q1,)
239
239
 
240
240
 
241
- def test_half_swap_does_merge():
241
+ def test_half_swap_does_merge() -> None:
242
242
  state = create_container(qs2)
243
243
  state.apply_operation(cirq.SWAP(q0, q1) ** 0.5)
244
244
  assert len(set(state.values())) == 2
245
245
  assert state[q0] is state[q1]
246
246
 
247
247
 
248
- def test_swap_after_entangle_reorders():
248
+ def test_swap_after_entangle_reorders() -> None:
249
249
  state = create_container(qs2)
250
250
  state.apply_operation(cirq.CX(q0, q1))
251
251
  assert len(set(state.values())) == 2
@@ -256,7 +256,7 @@ def test_swap_after_entangle_reorders():
256
256
  assert state[q0].qubits == (q1, q0)
257
257
 
258
258
 
259
- def test_act_on_gate_does_not_join():
259
+ def test_act_on_gate_does_not_join() -> None:
260
260
  state = create_container(qs2)
261
261
  assert len(set(state.values())) == 3
262
262
  cirq.act_on(cirq.X, state, [q0])
@@ -265,7 +265,7 @@ def test_act_on_gate_does_not_join():
265
265
  assert state[q0] is not state[None]
266
266
 
267
267
 
268
- def test_field_getters():
268
+ def test_field_getters() -> None:
269
269
  state = create_container(qs2)
270
270
  assert state.sim_states.keys() == set(qs2) | {None}
271
271
  assert state.split_untangled_states
@@ -72,20 +72,20 @@ class Composite(cirq.Gate):
72
72
  yield cirq.X(*qubits)
73
73
 
74
74
 
75
- def test_measurements():
75
+ def test_measurements() -> None:
76
76
  args = ExampleSimulationState()
77
77
  args.measure([cirq.LineQubit(0)], "test", [False], {})
78
78
  assert args.log_of_measurement_results["test"] == [5]
79
79
 
80
80
 
81
- def test_decompose():
81
+ def test_decompose() -> None:
82
82
  args = ExampleSimulationState()
83
83
  assert simulation_state.strat_act_on_from_apply_decompose(
84
84
  Composite(), args, [cirq.LineQubit(0)]
85
85
  )
86
86
 
87
87
 
88
- def test_decompose_for_gate_allocating_qubits_raises():
88
+ def test_decompose_for_gate_allocating_qubits_raises() -> None:
89
89
  class Composite(cirq.testing.SingleQubitGate):
90
90
  def _decompose_(self, qubits):
91
91
  anc = cirq.NamedQubit("anc")
@@ -97,7 +97,7 @@ def test_decompose_for_gate_allocating_qubits_raises():
97
97
  simulation_state.strat_act_on_from_apply_decompose(Composite(), args, [cirq.LineQubit(0)])
98
98
 
99
99
 
100
- def test_mapping():
100
+ def test_mapping() -> None:
101
101
  args = ExampleSimulationState()
102
102
  assert list(iter(args)) == cirq.LineQubit.range(2)
103
103
  r1 = args[cirq.LineQubit(0)]
@@ -106,7 +106,7 @@ def test_mapping():
106
106
  _ = args[cirq.LineQubit(2)]
107
107
 
108
108
 
109
- def test_swap_bad_dimensions():
109
+ def test_swap_bad_dimensions() -> None:
110
110
  q0 = cirq.LineQubit(0)
111
111
  q1 = cirq.LineQid(1, 3)
112
112
  args = ExampleSimulationState()
@@ -114,7 +114,7 @@ def test_swap_bad_dimensions():
114
114
  args.swap(q0, q1)
115
115
 
116
116
 
117
- def test_rename_bad_dimensions():
117
+ def test_rename_bad_dimensions() -> None:
118
118
  q0 = cirq.LineQubit(0)
119
119
  q1 = cirq.LineQid(1, 3)
120
120
  args = ExampleSimulationState()
@@ -122,7 +122,7 @@ def test_rename_bad_dimensions():
122
122
  args.rename(q0, q1)
123
123
 
124
124
 
125
- def test_transpose_qubits():
125
+ def test_transpose_qubits() -> None:
126
126
  q0, q1, q2 = cirq.LineQubit.range(3)
127
127
  args = ExampleSimulationState()
128
128
  assert args.transpose_to_qubit_order((q1, q0)).qubits == (q1, q0)
@@ -132,14 +132,14 @@ def test_transpose_qubits():
132
132
  args.transpose_to_qubit_order((q0, q1, q1))
133
133
 
134
134
 
135
- def test_field_getters():
135
+ def test_field_getters() -> None:
136
136
  args = ExampleSimulationState()
137
137
  assert args.prng is np.random
138
138
  assert args.qubit_map == {q: i for i, q in enumerate(cirq.LineQubit.range(2))}
139
139
 
140
140
 
141
141
  @pytest.mark.parametrize('exp', np.linspace(0, 2 * np.pi, 10))
142
- def test_delegating_gate_unitary(exp):
142
+ def test_delegating_gate_unitary(exp) -> None:
143
143
  q = cirq.LineQubit(0)
144
144
 
145
145
  test_circuit = cirq.Circuit()
@@ -154,7 +154,7 @@ def test_delegating_gate_unitary(exp):
154
154
 
155
155
 
156
156
  @pytest.mark.parametrize('exp', np.linspace(0, 2 * np.pi, 10))
157
- def test_delegating_gate_channel(exp):
157
+ def test_delegating_gate_channel(exp) -> None:
158
158
  q = cirq.LineQubit(0)
159
159
 
160
160
  test_circuit = cirq.Circuit()
@@ -169,7 +169,7 @@ def test_delegating_gate_channel(exp):
169
169
 
170
170
 
171
171
  @pytest.mark.parametrize('num_ancilla', [1, 2, 3])
172
- def test_phase_using_dirty_ancilla(num_ancilla: int):
172
+ def test_phase_using_dirty_ancilla(num_ancilla: int) -> None:
173
173
  q = cirq.LineQubit(0)
174
174
  anc = cirq.NamedQubit.range(num_ancilla, prefix='anc')
175
175
 
@@ -184,7 +184,7 @@ def test_phase_using_dirty_ancilla(num_ancilla: int):
184
184
 
185
185
  @pytest.mark.parametrize('num_ancilla', [1, 2, 3])
186
186
  @pytest.mark.parametrize('theta', np.linspace(0, 2 * np.pi, 10))
187
- def test_phase_using_clean_ancilla(num_ancilla: int, theta: float):
187
+ def test_phase_using_clean_ancilla(num_ancilla: int, theta: float) -> None:
188
188
  q = cirq.LineQubit(0)
189
189
  u = cirq.MatrixGate(cirq.testing.random_unitary(2))
190
190
  test_circuit = cirq.Circuit(
@@ -19,7 +19,7 @@ from cirq.sim import simulation_utils
19
19
 
20
20
 
21
21
  @pytest.mark.parametrize('n,m', [(n, m) for n in range(1, 4) for m in range(1, n + 1)])
22
- def test_state_probabilities_by_indices(n: int, m: int):
22
+ def test_state_probabilities_by_indices(n: int, m: int) -> None:
23
23
  np.random.seed(0)
24
24
  state = testing.random_superposition(1 << n)
25
25
  d = (state.conj() * state).real