Beispiel #1
0
    def test_circuit_state_fn_from_dict_initialize(self):
        """state fn circuit from dict initialize test"""
        statedict = {"101": 0.5, "100": 0.1, "000": 0.2, "111": 0.5}
        sfc = CircuitStateFn.from_dict(statedict)
        self.assertIsInstance(sfc, CircuitStateFn)
        samples = sfc.sample()
        np.testing.assert_array_almost_equal(
            StateFn(statedict).to_matrix(),
            np.round(sfc.to_matrix(), decimals=1))
        for k, v in samples.items():
            self.assertIn(k, statedict)
            # It's ok if these are far apart because the dict is sampled.
            self.assertAlmostEqual(v, np.abs(statedict[k])**0.5, delta=0.5)

        # Follows same code path as above, but testing to be thorough
        sfc_vector = CircuitStateFn.from_vector(StateFn(statedict).to_matrix())
        np.testing.assert_array_almost_equal(
            StateFn(statedict).to_matrix(), sfc_vector.to_matrix())
Beispiel #2
0
 def test_circuit_state_fn_from_complex_vector_initialize(self):
     """state fn circuit from complex vector initialize test"""
     sfc = CircuitStateFn.from_vector(
         np.array([1j / np.sqrt(2), 0, 1j / np.sqrt(2), 0]))
     self.assertIsInstance(sfc, CircuitStateFn)