@@ -73,9 +73,10 @@ def test_invalid_dtype():
73
73
@pytest .mark .parametrize ('split' , [True , False ])
74
74
def test_run_with_ignore_measurement_results (dtype : Type [np .number ], split : bool ):
75
75
q0 , q1 = cirq .LineQubit .range (2 )
76
- simulator = cirq .DensityMatrixSimulator (
77
- dtype = dtype , ignore_measurement_results = True , split_untangled_states = split
78
- )
76
+ with cirq .testing .assert_deprecated ('ignore_measurement_results' , deadline = 'v0.15' , count = 2 ):
77
+ simulator = cirq .DensityMatrixSimulator (
78
+ dtype = dtype , ignore_measurement_results = True , split_untangled_states = split
79
+ )
79
80
80
81
circuit = cirq .Circuit (cirq .X (q0 ), cirq .X (q1 ), cirq .measure (q0 ))
81
82
with pytest .raises (ValueError , match = "ignore_measurement_results = True" ):
@@ -517,26 +518,32 @@ def test_simulate(dtype: Type[np.number], split: bool):
517
518
@pytest .mark .parametrize ('split' , [True , False ])
518
519
def test_simulate_ignore_measurements (split : bool ):
519
520
q0 = cirq .LineQubit (0 )
520
- simulator = cirq .DensityMatrixSimulator (
521
- split_untangled_states = split , ignore_measurement_results = True
522
- )
523
- circuit = cirq .Circuit (cirq .H (q0 ), cirq .measure (q0 ))
524
- result = simulator .simulate (circuit )
525
- np .testing .assert_almost_equal (result .final_density_matrix , np .eye (2 ) * 0.5 )
526
- assert len (result .measurements ) == 0
521
+ with cirq .testing .assert_deprecated (
522
+ 'ignore_measurement_results' , deadline = 'v0.15' , count = 6 if split else 4
523
+ ):
524
+ simulator = cirq .DensityMatrixSimulator (
525
+ split_untangled_states = split , ignore_measurement_results = True
526
+ )
527
+ circuit = cirq .Circuit (cirq .H (q0 ), cirq .measure (q0 ))
528
+ result = simulator .simulate (circuit )
529
+ np .testing .assert_almost_equal (result .final_density_matrix , np .eye (2 ) * 0.5 )
530
+ assert len (result .measurements ) == 0
527
531
528
532
529
533
@pytest .mark .parametrize ('split' , [True , False ])
530
534
def test_simulate_ignore_measurements_subcircuits (split : bool ):
531
535
q0 = cirq .LineQubit (0 )
532
- simulator = cirq .DensityMatrixSimulator (
533
- split_untangled_states = split , ignore_measurement_results = True
534
- )
535
- circuit = cirq .Circuit (cirq .H (q0 ), cirq .measure (q0 ))
536
- circuit = cirq .Circuit (cirq .CircuitOperation (circuit .freeze ()))
537
- result = simulator .simulate (circuit )
538
- np .testing .assert_almost_equal (result .final_density_matrix , np .eye (2 ) * 0.5 )
539
- assert len (result .measurements ) == 0
536
+ with cirq .testing .assert_deprecated (
537
+ 'ignore_measurement_results' , deadline = 'v0.15' , count = 6 if split else 4
538
+ ):
539
+ simulator = cirq .DensityMatrixSimulator (
540
+ split_untangled_states = split , ignore_measurement_results = True
541
+ )
542
+ circuit = cirq .Circuit (cirq .H (q0 ), cirq .measure (q0 ))
543
+ circuit = cirq .Circuit (cirq .CircuitOperation (circuit .freeze ()))
544
+ result = simulator .simulate (circuit )
545
+ np .testing .assert_almost_equal (result .final_density_matrix , np .eye (2 ) * 0.5 )
546
+ assert len (result .measurements ) == 0
540
547
541
548
542
549
@pytest .mark .parametrize ('dtype' , [np .complex64 , np .complex128 ])
@@ -573,24 +580,25 @@ def test_reset_one_qubit_does_not_affect_partial_trace_of_other_qubits(
573
580
574
581
def test_ignore_measurements_remains_entangled ():
575
582
q0 , q1 = cirq .LineQubit .range (2 )
576
- simulator1 = cirq .DensityMatrixSimulator (
577
- ignore_measurement_results = True , split_untangled_states = False
578
- )
579
- simulator2 = cirq .DensityMatrixSimulator (
580
- ignore_measurement_results = True , split_untangled_states = True
581
- )
582
- circuit = cirq .Circuit (
583
- cirq .H (q0 ),
584
- cirq .CX (q0 , q1 ),
585
- cirq .measure (q0 ),
586
- )
587
- result1 = simulator1 .simulate (circuit )
588
- result2 = simulator2 .simulate (circuit )
589
- np .testing .assert_almost_equal (result2 .final_density_matrix , result1 .final_density_matrix )
590
- expected = np .zeros ((4 , 4 ))
591
- expected [0 , 0 ] = 0.5
592
- expected [3 , 3 ] = 0.5
593
- np .testing .assert_almost_equal (result2 .final_density_matrix , expected )
583
+ with cirq .testing .assert_deprecated ('ignore_measurement_results' , deadline = 'v0.15' , count = 12 ):
584
+ simulator1 = cirq .DensityMatrixSimulator (
585
+ ignore_measurement_results = True , split_untangled_states = False
586
+ )
587
+ simulator2 = cirq .DensityMatrixSimulator (
588
+ ignore_measurement_results = True , split_untangled_states = True
589
+ )
590
+ circuit = cirq .Circuit (
591
+ cirq .H (q0 ),
592
+ cirq .CX (q0 , q1 ),
593
+ cirq .measure (q0 ),
594
+ )
595
+ result1 = simulator1 .simulate (circuit )
596
+ result2 = simulator2 .simulate (circuit )
597
+ np .testing .assert_almost_equal (result2 .final_density_matrix , result1 .final_density_matrix )
598
+ expected = np .zeros ((4 , 4 ))
599
+ expected [0 , 0 ] = 0.5
600
+ expected [3 , 3 ] = 0.5
601
+ np .testing .assert_almost_equal (result2 .final_density_matrix , expected )
594
602
595
603
596
604
@pytest .mark .parametrize (
@@ -1225,13 +1233,14 @@ def with_qubits(self, *new_qubits):
1225
1233
def _kraus_ (self ):
1226
1234
return cirq .kraus (cirq .H )
1227
1235
1228
- s = cirq .DensityMatrixSimulator (ignore_measurement_results = True )
1229
- c = cirq .Circuit (HAsOp (cirq .LineQubit (0 )))
1230
- np .testing .assert_allclose (
1231
- s .simulate (c ).final_density_matrix ,
1232
- [[0.5 + 0.0j , 0.5 + 0.0j ], [0.5 + 0.0j , 0.5 + 0.0j ]],
1233
- atol = 1e-8 ,
1234
- )
1236
+ with cirq .testing .assert_deprecated ('ignore_measurement_results' , deadline = 'v0.15' , count = 6 ):
1237
+ s = cirq .DensityMatrixSimulator (ignore_measurement_results = True )
1238
+ c = cirq .Circuit (HAsOp (cirq .LineQubit (0 )))
1239
+ np .testing .assert_allclose (
1240
+ s .simulate (c ).final_density_matrix ,
1241
+ [[0.5 + 0.0j , 0.5 + 0.0j ], [0.5 + 0.0j , 0.5 + 0.0j ]],
1242
+ atol = 1e-8 ,
1243
+ )
1235
1244
1236
1245
1237
1246
def test_works_on_pauli_string_phasor ():
0 commit comments