Skip to content

Commit b7e6627

Browse files
authored
Adjust data type in qsimh tests to resolve numerical comparison failures (#1014)
When running tests on a Debian-based Linux system with g++ (Debian 15.2.0-3) 15.2.0, I get errors that appear to be due to numerical precision issues. It seems that some uses of `float` in tests/run_qsimh_tests.cc need to be `double`'s in order to resolve them. Per [Sergei's comment](#1014 (review)), the root cause is probably a bug in the version of G++ used, and is affected by some compilation flags. So, the changes in this PR may simply be helping the compiler. <details><summary>Output from `make run-cxx-tests`</summary> [----------] Global test environment set-up. [----------] 2 tests from RunQSimHTest [ RUN ] RunQSimHTest.QSimHRunner [ OK ] RunQSimHTest.QSimHRunner (0 ms) [ RUN ] RunQSimHTest.CirqGates run_qsimh_test.cc:229: Failure The difference between std::real(results[i]) and std::real(expected_results[i]) is 0.0062986763761138931, which exceeds 2e-6, where std::real(results[i]) evaluates to 0.13179841637611389, std::real(expected_results[i]) evaluates to 0.12549974, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:230: Failure The difference between std::imag(results[i]) and std::imag(expected_results[i]) is 0.035221514014434824, which exceeds 2e-6, where std::imag(results[i]) evaluates to 0.18351143598556519, std::imag(expected_results[i]) evaluates to 0.21873295000000001, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:229: Failure The difference between std::real(results[i]) and std::real(expected_results[i]) is 0.039959894224624634, which exceeds 2e-6, where std::real(results[i]) evaluates to -0.13104191422462463, std::real(expected_results[i]) evaluates to -0.09108202, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:230: Failure The difference between std::imag(results[i]) and std::imag(expected_results[i]) is 0.016947779936487196, which exceeds 2e-6, where std::imag(results[i]) evaluates to 0.059335622936487198, std::imag(expected_results[i]) evaluates to 0.042387843000000001, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:229: Failure The difference between std::real(results[i]) and std::real(expected_results[i]) is 0.0020535411359024064, which exceeds 2e-6, where std::real(results[i]) evaluates to 0.1089613288640976, std::real(expected_results[i]) evaluates to 0.11101487, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:230: Failure The difference between std::imag(results[i]) and std::imag(expected_results[i]) is 0.040648414013576495, which exceeds 2e-6, where std::imag(results[i]) evaluates to -0.10513428598642349, std::imag(expected_results[i]) evaluates to -0.14578269999999999, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:229: Failure The difference between std::real(results[i]) and std::real(expected_results[i]) is 0.0007721670914077744, which exceeds 2e-6, where std::real(results[i]) evaluates to 0.078953877091407776, std::real(expected_results[i]) evaluates to 0.078181710000000001, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:230: Failure The difference between std::imag(results[i]) and std::imag(expected_results[i]) is 0.019585073881120685, which exceeds 2e-6, where std::imag(results[i]) evaluates to 0.048383396118879318, std::imag(expected_results[i]) evaluates to 0.067968470000000003, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:229: Failure The difference between std::real(results[i]) and std::real(expected_results[i]) is 0.011808277813796994, which exceeds 2e-6, where std::real(results[i]) evaluates to -0.110350102186203, std::real(expected_results[i]) evaluates to -0.12215838, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:230: Failure The difference between std::imag(results[i]) and std::imag(expected_results[i]) is 0.0096730519777417177, which exceeds 2e-6, where std::imag(results[i]) evaluates to -0.0046784980222582817, std::imag(expected_results[i]) evaluates to -0.014351549999999999, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:229: Failure The difference between std::real(results[i]) and std::real(expected_results[i]) is 0.069353073088378903, which exceeds 2e-6, where std::real(results[i]) evaluates to 0.12083339691162109, std::real(expected_results[i]) evaluates to 0.19018647, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:230: Failure The difference between std::imag(results[i]) and std::imag(expected_results[i]) is 0.043380597480964678, which exceeds 2e-6, where std::imag(results[i]) evaluates to -0.23392610251903534, std::imag(expected_results[i]) evaluates to -0.27730670000000002, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:229: Failure The difference between std::real(results[i]) and std::real(expected_results[i]) is 0.040031763882503513, which exceeds 2e-6, where std::real(results[i]) evaluates to 0.03641984611749649, std::real(expected_results[i]) evaluates to 0.076451610000000003, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:230: Failure The difference between std::imag(results[i]) and std::imag(expected_results[i]) is 0.060284535233764647, which exceeds 2e-6, where std::imag(results[i]) evaluates to 0.10916924476623535, std::imag(expected_results[i]) evaluates to 0.16945378, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:229: Failure The difference between std::real(results[i]) and std::real(expected_results[i]) is 0.038641317763442984, which exceeds 2e-6, where std::real(results[i]) evaluates to -0.17788019776344299, std::real(expected_results[i]) evaluates to -0.13923888000000001, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:230: Failure The difference between std::imag(results[i]) and std::imag(expected_results[i]) is 0.0012541888537597745, which exceeds 2e-6, where std::imag(results[i]) evaluates to -0.23595666885375977, std::imag(expected_results[i]) evaluates to -0.23470247999999999, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:229: Failure The difference between std::real(results[i]) and std::real(expected_results[i]) is 0.032922524468345649, which exceeds 2e-6, where std::real(results[i]) evaluates to -0.12519289553165436, std::real(expected_results[i]) evaluates to -0.15811542000000001, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:230: Failure The difference between std::imag(results[i]) and std::imag(expected_results[i]) is 0.023803132880516054, which exceeds 2e-6, where std::imag(results[i]) evaluates to 0.20950256288051605, std::imag(expected_results[i]) evaluates to 0.18569943, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:229: Failure The difference between std::real(results[i]) and std::real(expected_results[i]) is 0.0013214931310653599, which exceeds 2e-6, where std::real(results[i]) evaluates to 0.12399865686893463, std::real(expected_results[i]) evaluates to 0.12532014999999999, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:230: Failure The difference between std::imag(results[i]) and std::imag(expected_results[i]) is 0.031921336637306202, which exceeds 2e-6, where std::imag(results[i]) evaluates to -0.21107946336269379, std::imag(expected_results[i]) evaluates to -0.24300079999999999, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:229: Failure The difference between std::real(results[i]) and std::real(expected_results[i]) is 0.017829032430412291, which exceeds 2e-6, where std::real(results[i]) evaluates to 0.029023930430412292, std::real(expected_results[i]) evaluates to 0.011194898, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:230: Failure The difference between std::imag(results[i]) and std::imag(expected_results[i]) is 0.049390020930862422, which exceeds 2e-6, where std::imag(results[i]) evaluates to -0.38205882906913757, std::imag(expected_results[i]) evaluates to -0.43144884999999999, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:229: Failure The difference between std::real(results[i]) and std::real(expected_results[i]) is 0.057924614963035581, which exceeds 2e-6, where std::real(results[i]) evaluates to -0.23875011503696442, std::real(expected_results[i]) evaluates to -0.29667473, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:230: Failure The difference between std::imag(results[i]) and std::imag(expected_results[i]) is 0.034402516216230396, which exceeds 2e-6, where std::imag(results[i]) evaluates to 0.017195183783769608, std::imag(expected_results[i]) evaluates to 0.051597700000000003, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:229: Failure The difference between std::real(results[i]) and std::real(expected_results[i]) is 0.011055804096990109, which exceeds 2e-6, where std::real(results[i]) evaluates to 0.0062863389030098915, std::real(expected_results[i]) evaluates to 0.017342143000000001, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:230: Failure The difference between std::imag(results[i]) and std::imag(expected_results[i]) is 0.048772305901031487, which exceeds 2e-6, where std::imag(results[i]) evaluates to 0.30701917409896851, std::imag(expected_results[i]) evaluates to 0.35579147999999999, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:229: Failure The difference between std::real(results[i]) and std::real(expected_results[i]) is 0.02939495521213531, which exceeds 2e-6, where std::real(results[i]) evaluates to 0.18562756478786469, std::real(expected_results[i]) evaluates to 0.21502251999999999, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:230: Failure The difference between std::imag(results[i]) and std::imag(expected_results[i]) is 0.071854889099082941, which exceeds 2e-6, where std::imag(results[i]) evaluates to 0.010201945900917053, std::imag(expected_results[i]) evaluates to 0.082056834999999995, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:229: Failure The difference between std::real(results[i]) and std::real(expected_results[i]) is 0.0015646991005611385, which exceeds 2e-6, where std::real(results[i]) evaluates to -0.049259629100561142, std::real(expected_results[i]) evaluates to -0.047694930000000003, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:230: Failure The difference between std::imag(results[i]) and std::imag(expected_results[i]) is 0.071878572646076208, which exceeds 2e-6, where std::imag(results[i]) evaluates to -0.067620165646076202, std::imag(expected_results[i]) evaluates to 0.0042584069999999996, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:229: Failure The difference between std::real(results[i]) and std::real(expected_results[i]) is 0.012822937002029411, which exceeds 2e-6, where std::real(results[i]) evaluates to -0.22708609700202942, std::real(expected_results[i]) evaluates to -0.21426316000000001, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:230: Failure The difference between std::imag(results[i]) and std::imag(expected_results[i]) is 0.061513482502587799, which exceeds 2e-6, where std::imag(results[i]) evaluates to -0.012811013497412205, std::imag(expected_results[i]) evaluates to -0.074324496000000004, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:242: Failure The difference between std::real(results[i]) and std::real(expected_results[i]) is 0.0062987508819198623, which exceeds 2e-6, where std::real(results[i]) evaluates to 0.13179849088191986, std::real(expected_results[i]) evaluates to 0.12549974, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:243: Failure The difference between std::imag(results[i]) and std::imag(expected_results[i]) is 0.035221558717918405, which exceeds 2e-6, where std::imag(results[i]) evaluates to 0.1835113912820816, std::imag(expected_results[i]) evaluates to 0.21873295000000001, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:242: Failure The difference between std::real(results[i]) and std::real(expected_results[i]) is 0.039959119364242554, which exceeds 2e-6, where std::real(results[i]) evaluates to -0.13104113936424255, std::real(expected_results[i]) evaluates to -0.09108202, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:243: Failure The difference between std::imag(results[i]) and std::imag(expected_results[i]) is 0.016947519166166304, which exceeds 2e-6, where std::imag(results[i]) evaluates to 0.059335362166166306, std::imag(expected_results[i]) evaluates to 0.042387843000000001, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:242: Failure The difference between std::real(results[i]) and std::real(expected_results[i]) is 0.0020537870050621049, which exceeds 2e-6, where std::real(results[i]) evaluates to 0.1089610829949379, std::real(expected_results[i]) evaluates to 0.11101487, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:243: Failure The difference between std::imag(results[i]) and std::imag(expected_results[i]) is 0.04064924847860335, which exceeds 2e-6, where std::imag(results[i]) evaluates to -0.10513345152139664, std::imag(expected_results[i]) evaluates to -0.14578269999999999, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:242: Failure The difference between std::real(results[i]) and std::real(expected_results[i]) is 0.00077265882972717137, which exceeds 2e-6, where std::real(results[i]) evaluates to 0.078954368829727173, std::real(expected_results[i]) evaluates to 0.078181710000000001, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:243: Failure The difference between std::imag(results[i]) and std::imag(expected_results[i]) is 0.019585386805505756, which exceeds 2e-6, where std::imag(results[i]) evaluates to 0.048383083194494247, std::imag(expected_results[i]) evaluates to 0.067968470000000003, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:242: Failure The difference between std::real(results[i]) and std::real(expected_results[i]) is 0.011808218209152219, which exceeds 2e-6, where std::real(results[i]) evaluates to -0.11035016179084778, std::real(expected_results[i]) evaluates to -0.12215838, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:243: Failure The difference between std::imag(results[i]) and std::imag(expected_results[i]) is 0.0096731106510639184, which exceeds 2e-6, where std::imag(results[i]) evaluates to -0.0046784393489360809, std::imag(expected_results[i]) evaluates to -0.014351549999999999, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:242: Failure The difference between std::real(results[i]) and std::real(expected_results[i]) is 0.069352864472122189, which exceeds 2e-6, where std::real(results[i]) evaluates to 0.12083360552787781, std::real(expected_results[i]) evaluates to 0.19018647, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:243: Failure The difference between std::imag(results[i]) and std::imag(expected_results[i]) is 0.043379882225227373, which exceeds 2e-6, where std::imag(results[i]) evaluates to -0.23392681777477264, std::imag(expected_results[i]) evaluates to -0.27730670000000002, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:242: Failure The difference between std::real(results[i]) and std::real(expected_results[i]) is 0.04003150311218262, which exceeds 2e-6, where std::real(results[i]) evaluates to 0.036420106887817383, std::real(expected_results[i]) evaluates to 0.076451610000000003, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:243: Failure The difference between std::imag(results[i]) and std::imag(expected_results[i]) is 0.060284907762794493, which exceeds 2e-6, where std::imag(results[i]) evaluates to 0.10916887223720551, std::imag(expected_results[i]) evaluates to 0.16945378, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:242: Failure The difference between std::real(results[i]) and std::real(expected_results[i]) is 0.038640796222801199, which exceeds 2e-6, where std::real(results[i]) evaluates to -0.17787967622280121, std::real(expected_results[i]) evaluates to -0.13923888000000001, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:243: Failure The difference between std::imag(results[i]) and std::imag(expected_results[i]) is 0.0012538759293747037, which exceeds 2e-6, where std::imag(results[i]) evaluates to -0.23595635592937469, std::imag(expected_results[i]) evaluates to -0.23470247999999999, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:242: Failure The difference between std::real(results[i]) and std::real(expected_results[i]) is 0.032923224822921759, which exceeds 2e-6, where std::real(results[i]) evaluates to -0.12519219517707825, std::real(expected_results[i]) evaluates to -0.15811542000000001, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:243: Failure The difference between std::imag(results[i]) and std::imag(expected_results[i]) is 0.023802447427101137, which exceeds 2e-6, where std::imag(results[i]) evaluates to 0.20950187742710114, std::imag(expected_results[i]) evaluates to 0.18569943, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:242: Failure The difference between std::real(results[i]) and std::real(expected_results[i]) is 0.0013214707793235692, which exceeds 2e-6, where std::real(results[i]) evaluates to 0.12399867922067642, std::real(expected_results[i]) evaluates to 0.12532014999999999, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:243: Failure The difference between std::imag(results[i]) and std::imag(expected_results[i]) is 0.031922543631362904, which exceeds 2e-6, where std::imag(results[i]) evaluates to -0.21107825636863708, std::imag(expected_results[i]) evaluates to -0.24300079999999999, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:242: Failure The difference between std::real(results[i]) and std::real(expected_results[i]) is 0.017829078996541022, which exceeds 2e-6, where std::real(results[i]) evaluates to 0.029023976996541023, std::real(expected_results[i]) evaluates to 0.011194898, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:243: Failure The difference between std::imag(results[i]) and std::imag(expected_results[i]) is 0.049390378558731074, which exceeds 2e-6, where std::imag(results[i]) evaluates to -0.38205847144126892, std::imag(expected_results[i]) evaluates to -0.43144884999999999, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:242: Failure The difference between std::real(results[i]) and std::real(expected_results[i]) is 0.057924167928199766, which exceeds 2e-6, where std::real(results[i]) evaluates to -0.23875056207180023, std::real(expected_results[i]) evaluates to -0.29667473, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:243: Failure The difference between std::imag(results[i]) and std::imag(expected_results[i]) is 0.034402588859391216, which exceeds 2e-6, where std::imag(results[i]) evaluates to 0.017195111140608788, std::imag(expected_results[i]) evaluates to 0.051597700000000003, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:242: Failure The difference between std::real(results[i]) and std::real(expected_results[i]) is 0.011055638321571828, which exceeds 2e-6, where std::real(results[i]) evaluates to 0.0062865046784281731, std::real(expected_results[i]) evaluates to 0.017342143000000001, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:243: Failure The difference between std::imag(results[i]) and std::imag(expected_results[i]) is 0.048771680052261346, which exceeds 2e-6, where std::imag(results[i]) evaluates to 0.30701979994773865, std::imag(expected_results[i]) evaluates to 0.35579147999999999, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:242: Failure The difference between std::real(results[i]) and std::real(expected_results[i]) is 0.029394985014457697, which exceeds 2e-6, where std::real(results[i]) evaluates to 0.1856275349855423, std::real(expected_results[i]) evaluates to 0.21502251999999999, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:243: Failure The difference between std::imag(results[i]) and std::imag(expected_results[i]) is 0.071854763370535368, which exceeds 2e-6, where std::imag(results[i]) evaluates to 0.010202071629464626, std::imag(expected_results[i]) evaluates to 0.082056834999999995, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:242: Failure The difference between std::real(results[i]) and std::real(expected_results[i]) is 0.001564751254625317, which exceeds 2e-6, where std::real(results[i]) evaluates to -0.04925968125462532, std::real(expected_results[i]) evaluates to -0.047694930000000003, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:243: Failure The difference between std::imag(results[i]) and std::imag(expected_results[i]) is 0.071878796163494116, which exceeds 2e-6, where std::imag(results[i]) evaluates to -0.06762038916349411, std::imag(expected_results[i]) evaluates to 0.0042584069999999996, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:242: Failure The difference between std::real(results[i]) and std::real(expected_results[i]) is 0.012822340955581657, which exceeds 2e-6, where std::real(results[i]) evaluates to -0.22708550095558167, std::real(expected_results[i]) evaluates to -0.21426316000000001, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:243: Failure The difference between std::imag(results[i]) and std::imag(expected_results[i]) is 0.061513255259879593, which exceeds 2e-6, where std::imag(results[i]) evaluates to -0.012811240740120411, std::imag(expected_results[i]) evaluates to -0.074324496000000004, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:255: Failure The difference between std::real(results[i]) and std::real(expected_results[i]) is 0.0062987359807586685, which exceeds 2e-6, where std::real(results[i]) evaluates to 0.13179847598075867, std::real(expected_results[i]) evaluates to 0.12549974, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:256: Failure The difference between std::imag(results[i]) and std::imag(expected_results[i]) is 0.035221543816757211, which exceeds 2e-6, where std::imag(results[i]) evaluates to 0.1835114061832428, std::imag(expected_results[i]) evaluates to 0.21873295000000001, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:255: Failure The difference between std::real(results[i]) and std::real(expected_results[i]) is 0.03995929817817688, which exceeds 2e-6, where std::real(results[i]) evaluates to -0.13104131817817688, std::real(expected_results[i]) evaluates to -0.09108202, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:256: Failure The difference between std::imag(results[i]) and std::imag(expected_results[i]) is 0.016947526616746901, which exceeds 2e-6, where std::imag(results[i]) evaluates to 0.059335369616746902, std::imag(expected_results[i]) evaluates to 0.042387843000000001, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:255: Failure The difference between std::real(results[i]) and std::real(expected_results[i]) is 0.0020534964324188248, which exceeds 2e-6, where std::real(results[i]) evaluates to 0.10896137356758118, std::real(expected_results[i]) evaluates to 0.11101487, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:256: Failure The difference between std::imag(results[i]) and std::imag(expected_results[i]) is 0.04064895790596007, which exceeds 2e-6, where std::imag(results[i]) evaluates to -0.10513374209403992, std::imag(expected_results[i]) evaluates to -0.14578269999999999, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:255: Failure The difference between std::real(results[i]) and std::real(expected_results[i]) is 0.00077255452159881444, which exceeds 2e-6, where std::real(results[i]) evaluates to 0.078954264521598816, std::real(expected_results[i]) evaluates to 0.078181710000000001, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:256: Failure The difference between std::imag(results[i]) and std::imag(expected_results[i]) is 0.01958532720086098, which exceeds 2e-6, where std::imag(results[i]) evaluates to 0.048383142799139023, std::imag(expected_results[i]) evaluates to 0.067968470000000003, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:255: Failure The difference between std::real(results[i]) and std::real(expected_results[i]) is 0.011808352319602963, which exceeds 2e-6, where std::real(results[i]) evaluates to -0.11035002768039703, std::real(expected_results[i]) evaluates to -0.12215838, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:256: Failure The difference between std::imag(results[i]) and std::imag(expected_results[i]) is 0.0096731064601123327, which exceeds 2e-6, where std::imag(results[i]) evaluates to -0.0046784435398876667, std::imag(expected_results[i]) evaluates to -0.014351549999999999, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:255: Failure The difference between std::real(results[i]) and std::real(expected_results[i]) is 0.06935300603315353, which exceeds 2e-6, where std::real(results[i]) evaluates to 0.12083346396684647, std::real(expected_results[i]) evaluates to 0.19018647, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:256: Failure The difference between std::imag(results[i]) and std::imag(expected_results[i]) is 0.043379643806648271, which exceeds 2e-6, where std::imag(results[i]) evaluates to -0.23392705619335175, std::imag(expected_results[i]) evaluates to -0.27730670000000002, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:255: Failure The difference between std::real(results[i]) and std::real(expected_results[i]) is 0.04003159996973038, which exceeds 2e-6, where std::real(results[i]) evaluates to 0.036420010030269623, std::real(expected_results[i]) evaluates to 0.076451610000000003, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:256: Failure The difference between std::imag(results[i]) and std::imag(expected_results[i]) is 0.060284714047698973, which exceeds 2e-6, where std::imag(results[i]) evaluates to 0.10916906595230103, std::imag(expected_results[i]) evaluates to 0.16945378, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:255: Failure The difference between std::real(results[i]) and std::real(expected_results[i]) is 0.038640960135574332, which exceeds 2e-6, where std::real(results[i]) evaluates to -0.17787984013557434, std::real(expected_results[i]) evaluates to -0.13923888000000001, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:256: Failure The difference between std::imag(results[i]) and std::imag(expected_results[i]) is 0.0012543676676941007, which exceeds 2e-6, where std::imag(results[i]) evaluates to -0.23595684766769409, std::imag(expected_results[i]) evaluates to -0.23470247999999999, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:255: Failure The difference between std::real(results[i]) and std::real(expected_results[i]) is 0.032922986404342658, which exceeds 2e-6, where std::real(results[i]) evaluates to -0.12519243359565735, std::real(expected_results[i]) evaluates to -0.15811542000000001, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:256: Failure The difference between std::imag(results[i]) and std::imag(expected_results[i]) is 0.023802521932907106, which exceeds 2e-6, where std::imag(results[i]) evaluates to 0.2095019519329071, std::imag(expected_results[i]) evaluates to 0.18569943, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:255: Failure The difference between std::real(results[i]) and std::real(expected_results[i]) is 0.001321679395580283, which exceeds 2e-6, where std::real(results[i]) evaluates to 0.12399847060441971, std::real(expected_results[i]) evaluates to 0.12532014999999999, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:256: Failure The difference between std::imag(results[i]) and std::imag(expected_results[i]) is 0.031922543631362904, which exceeds 2e-6, where std::imag(results[i]) evaluates to -0.21107825636863708, std::imag(expected_results[i]) evaluates to -0.24300079999999999, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:255: Failure The difference between std::real(results[i]) and std::real(expected_results[i]) is 0.017828892732026098, which exceeds 2e-6, where std::real(results[i]) evaluates to 0.0290237907320261, std::real(expected_results[i]) evaluates to 0.011194898, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:256: Failure The difference between std::imag(results[i]) and std::imag(expected_results[i]) is 0.049390050733184809, which exceeds 2e-6, where std::imag(results[i]) evaluates to -0.38205879926681519, std::imag(expected_results[i]) evaluates to -0.43144884999999999, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:255: Failure The difference between std::real(results[i]) and std::real(expected_results[i]) is 0.057924257335166929, which exceeds 2e-6, where std::real(results[i]) evaluates to -0.23875047266483307, std::real(expected_results[i]) evaluates to -0.29667473, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:256: Failure The difference between std::imag(results[i]) and std::imag(expected_results[i]) is 0.034402518078875545, which exceeds 2e-6, where std::imag(results[i]) evaluates to 0.017195181921124458, std::imag(expected_results[i]) evaluates to 0.051597700000000003, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:255: Failure The difference between std::real(results[i]) and std::real(expected_results[i]) is 0.011055618298136474, which exceeds 2e-6, where std::real(results[i]) evaluates to 0.0062865247018635273, std::real(expected_results[i]) evaluates to 0.017342143000000001, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:256: Failure The difference between std::imag(results[i]) and std::imag(expected_results[i]) is 0.048771858866195672, which exceeds 2e-6, where std::imag(results[i]) evaluates to 0.30701962113380432, std::imag(expected_results[i]) evaluates to 0.35579147999999999, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:255: Failure The difference between std::real(results[i]) and std::real(expected_results[i]) is 0.029395014816780085, which exceeds 2e-6, where std::real(results[i]) evaluates to 0.18562750518321991, std::real(expected_results[i]) evaluates to 0.21502251999999999, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:256: Failure The difference between std::imag(results[i]) and std::imag(expected_results[i]) is 0.071854823906502718, which exceeds 2e-6, where std::imag(results[i]) evaluates to 0.010202011093497276, std::imag(expected_results[i]) evaluates to 0.082056834999999995, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:255: Failure The difference between std::real(results[i]) and std::real(expected_results[i]) is 0.0015646991005611385, which exceeds 2e-6, where std::real(results[i]) evaluates to -0.049259629100561142, std::real(expected_results[i]) evaluates to -0.047694930000000003, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:256: Failure The difference between std::imag(results[i]) and std::imag(expected_results[i]) is 0.071878803614074713, which exceeds 2e-6, where std::imag(results[i]) evaluates to -0.067620396614074707, std::imag(expected_results[i]) evaluates to 0.0042584069999999996, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:255: Failure The difference between std::real(results[i]) and std::real(expected_results[i]) is 0.01282262407764434, which exceeds 2e-6, where std::real(results[i]) evaluates to -0.22708578407764435, std::real(expected_results[i]) evaluates to -0.21426316000000001, and 2e-6 evaluates to 1.9999999999999999e-06. run_qsimh_test.cc:256: Failure The difference between std::imag(results[i]) and std::imag(expected_results[i]) is 0.061513230114170078, which exceeds 2e-6, where std::imag(results[i]) evaluates to -0.012811265885829926, std::imag(expected_results[i]) evaluates to -0.074324496000000004, and 2e-6 evaluates to 1.9999999999999999e-06. [ FAILED ] RunQSimHTest.CirqGates (174 ms) [----------] 2 tests from RunQSimHTest (175 ms total) [----------] Global test environment tear-down [==========] 2 tests from 1 test suite ran. (175 ms total) [ PASSED ] 1 test. [ FAILED ] 1 test, listed below: [ FAILED ] RunQSimHTest.CirqGates 1 FAILED TEST gmake[1]: *** [Makefile:81: run-cxx-tests] Error 1 </details>
1 parent a78d121 commit b7e6627

1 file changed

Lines changed: 8 additions & 8 deletions

File tree

tests/run_qsimh_test.cc

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
#include "../lib/gates_qsim.h"
2828
#include "../lib/io.h"
2929
#include "../lib/run_qsimh.h"
30-
#include "../lib/simmux.h"
30+
#include "../lib/simulator_basic.h"
3131

3232
namespace qsim {
3333

@@ -101,9 +101,9 @@ R"(4
101101
)";
102102

103103
struct Factory {
104-
using Simulator = qsim::Simulator<For>;
104+
using fp_type = double;
105+
using Simulator = qsim::SimulatorBasic<For, fp_type>;
105106
using StateSpace = Simulator::StateSpace;
106-
using fp_type = Simulator::fp_type;
107107

108108
static StateSpace CreateStateSpace() {
109109
return StateSpace(1);
@@ -116,14 +116,14 @@ struct Factory {
116116

117117
TEST(RunQSimHTest, QSimHRunner) {
118118
std::stringstream ss(circuit_string);
119-
Circuit<GateQSim<float>> circuit;
119+
Circuit<GateQSim<Factory::fp_type>> circuit;
120120

121121
EXPECT_TRUE(CircuitQsimParser<IO>::FromStream(99, provider, ss, circuit));
122122
EXPECT_EQ(circuit.num_qubits, 4);
123123
EXPECT_EQ(circuit.gates.size(), 63);
124124

125-
using HybridSimulator = HybridSimulator<IO, GateQSim<float>, BasicGateFuser,
126-
For>;
125+
using HybridSimulator =
126+
HybridSimulator<IO, GateQSim<Factory::fp_type>, BasicGateFuser, For>;
127127
using Runner = QSimHRunner<IO, HybridSimulator>;
128128

129129
Runner::Parameter param;
@@ -180,10 +180,10 @@ TEST(RunQSimHTest, QSimHRunner) {
180180
}
181181

182182
TEST(RunQSimHTest, CirqGates) {
183-
auto circuit = CirqCircuit1::GetCircuit<float>(false);
183+
auto circuit = CirqCircuit1::GetCircuit<Factory::fp_type>(false);
184184
const auto& expected_results = CirqCircuit1::expected_results0;
185185

186-
using HybridSimulator = HybridSimulator<IO, Cirq::GateCirq<float>,
186+
using HybridSimulator = HybridSimulator<IO, Cirq::GateCirq<Factory::fp_type>,
187187
BasicGateFuser, For>;
188188
using Runner = QSimHRunner<IO, HybridSimulator>;
189189

0 commit comments

Comments
 (0)