3
3
"""
4
4
5
5
import copy
6
+ import pickle
6
7
import numpy as np
7
8
8
9
# Main C3 objects
422
423
423
424
opt .set_exp (exp )
424
425
426
+ with open ("test/two_qubit_data.pickle" , "rb" ) as filename :
427
+ test_data = pickle .load (filename )
428
+
429
+ gen_signal , ts = generator .generate_signals (X90p_q1 )
430
+
425
431
426
432
def run_optim () -> float :
427
433
"""
@@ -442,65 +448,19 @@ def test_signals() -> None:
442
448
"""
443
449
Test if the generated signals are correct at the first and last sample and at sample #12.
444
450
"""
445
- gen_signal , ts = generator .generate_signals (X90p_q1 )
446
- assert np .max (gen_signal ["d1" ]["values" ]) == 442864262.3882865
447
- assert gen_signal ["d1" ]["values" ][0 ] == 0
448
- assert gen_signal ["d1" ]["values" ][12 ] == - 18838613.771749068
449
- assert gen_signal ["d1" ]["values" ][- 1 ] == 47702706.02427947
450
- assert ts [0 ] == 5e-12
451
- assert ts [12 ] == 1.25e-10
452
- assert ts [- 1 ] == 6.995e-09
453
-
454
-
455
- def test_hamiltonian_of_t () -> None :
456
- signal , ts = generator .generate_signals (X90p_q1 )
457
- cflds_t = signal ["d1" ]["values" ][16 ]
458
- hdrift , hks = model .get_Hamiltonians ()
459
- hamiltonian = hdrift .numpy () + cflds_t .numpy () * hks ["d1" ].numpy ()
460
- precomp_hamiltonian = [
461
- [- 2.37105674e+05 + 0.j , - 4.39488626e+05 + 0.j , 6.42557156e-09 + 0.j ,
462
- - 1.39929598e+07 + 0.j , 4.80420449e-08 + 0.j , - 5.12932000e+01 + 0.j ,
463
- - 9.18583639e-10 + 0.j , - 7.52868617e+02 + 0.j , - 4.60493681e-10 + 0.j ,],
464
- [- 4.39488626e+05 + 0.j , 3.51895367e+10 + 0.j , - 1.05404930e+06 + 0.j ,
465
- - 4.21166702e-06 + 0.j , - 1.39659734e+07 + 0.j , - 3.38001933e-07 + 0.j ,
466
- - 1.70280246e+05 + 0.j , - 3.42845091e-07 + 0.j , - 1.12262365e+03 + 0.j ,],
467
- [ 8.21276864e-09 + 0.j , - 1.05404930e+06 + 0.j , 6.88776096e+10 + 0.j ,
468
- - 2.87659692e+01 + 0.j , - 4.35040944e-06 + 0.j , - 1.40273221e+07 + 0.j ,
469
- 6.11788641e-06 + 0.j , - 5.67966729e+05 + 0.j , - 5.92691374e-06 + 0.j ,],
470
- [- 1.39929598e+07 + 0.j , - 4.06274727e-06 + 0.j , - 2.87659692e+01 + 0.j ,
471
- 3.14112585e+10 + 0.j , - 1.97916311e+05 + 0.j , - 2.68973468e-05 + 0.j ,
472
- - 1.97926130e+07 + 0.j , - 5.91563241e-06 + 0.j , - 1.02890811e+02 + 0.j ,],
473
- [ 5.04042505e-08 + 0.j , - 1.39659734e+07 + 0.j , - 1.84797479e-06 + 0.j ,
474
- - 1.97916311e+05 + 0.j , 6.65933163e+10 + 0.j , - 2.45595202e+05 + 0.j ,
475
- 1.03870858e-05 + 0.j , - 1.97587093e+07 + 0.j , 1.03713136e-05 + 0.j ,],
476
- [- 5.12932000e+01 + 0.j , - 4.57618676e-07 + 0.j , - 1.40273221e+07 + 0.j ,
477
- - 2.68926902e-05 + 0.j , - 2.45595202e+05 + 0.j , 1.00297674e+11 + 0.j ,
478
- 3.15118982e+04 + 0.j , 7.62930650e-06 + 0.j , - 1.97559869e+07 + 0.j ,],
479
- [- 1.21110840e-09 + 0.j , - 1.70280246e+05 + 0.j , 6.09999393e-06 + 0.j ,
480
- - 1.97926130e+07 + 0.j , 1.07057873e-05 + 0.j , 3.15118982e+04 + 0.j ,
481
- 6.15061801e+10 + 0.j , 6.36236697e+05 + 0.j , - 2.25524516e-05 + 0.j ,],
482
- [- 7.52868617e+02 + 0.j , - 3.44707736e-07 + 0.j , - 5.67966729e+05 + 0.j ,
483
- - 5.93053357e-06 + 0.j , - 1.97587093e+07 + 0.j , 8.58298081e-06 + 0.j ,
484
- 6.36236697e+05 + 0.j , 9.66811548e+10 + 0.j , 1.30140463e+06 + 0.j ,],
485
- [- 5.01826729e-10 + 0.j , - 1.12262365e+03 + 0.j , - 5.92318845e-06 + 0.j ,
486
- - 1.02890811e+02 + 0.j , 1.04309182e-05 + 0.j , - 1.97559869e+07 + 0.j ,
487
- - 2.25571082e-05 + 0.j , 1.30140463e+06 + 0.j , 1.30377086e+11 + 0.j ,],
488
- ]
489
451
490
- assert (hamiltonian - precomp_hamiltonian < 1e-15 ).any ()
452
+ for key in gen_signal :
453
+ assert (gen_signal [key ]["values" ].numpy () == test_data ["signal" ][key ]["values" ].numpy ()).all ()
454
+ assert (ts .numpy () == test_data ["ts" ].numpy ()).all ()
455
+
456
+
457
+ def test_hamiltonians () -> None :
458
+ hdrift , hks = model .get_Hamiltonians ()
459
+ assert (hdrift .numpy () == test_data ["hdrift" ].numpy ()).any ()
460
+ for key in hks :
461
+ assert (hks [key ].numpy () == test_data ["hks" ][key ].numpy ()).all ()
491
462
492
463
493
464
def test_propagation () -> None :
494
- signal , ts = generator .generate_signals (X90p_q1 )
495
- propagator = exp .propagation (signal , ts , "X90p:Id" )
496
- precomputed = np .array (
497
- [
498
- [- 5.42470209e-02 - 7.55118401e-01j , 1.31475007e-04 - 1.66893081e-04j ,
499
- 5.81482026e-08 + 4.56344704e-08j , 6.51945328e-01 - 3.21728860e-02j ,
500
- 1.20669716e-04 + 5.09331324e-05j , 3.19775048e-08 + 1.04614907e-07j ,
501
- - 9.41458634e-03 - 2.63990622e-02j , 3.55609615e-05 - 2.18958182e-04j ,
502
- - 6.42952047e-07 - 1.07156481e-06j ]
503
- ]
504
- )
505
-
506
- assert ((propagator .numpy ()[3 ] - precomputed ) < 1e-8 ).all ()
465
+ propagator = exp .propagation (gen_signal , ts , "X90p:Id" )
466
+ assert (propagator .numpy () == test_data ["propagator" ].numpy ()).all ()
0 commit comments