Example #1
0
 def test_ce(self):
     """ Test basics """
     algo = NumPyEigensolver(self.qubit_op, aux_operators=[])
     result = algo.run()
     self.assertEqual(len(result.eigenvalues), 1)
     self.assertEqual(len(result.eigenstates), 1)
     self.assertAlmostEqual(result.eigenvalues[0], -1.85727503 + 0j)
Example #2
0
 def test_ce_k4(self):
     """ Test for k=4 eigenvalues """
     algo = NumPyEigensolver(self.qubit_op, k=4, aux_operators=[])
     result = algo.run()
     self.assertEqual(len(result.eigenvalues), 4)
     self.assertEqual(len(result.eigenstates), 4)
     np.testing.assert_array_almost_equal(
         result.eigenvalues.real,
         [-1.85727503, -1.24458455, -0.88272215, -0.22491125])
Example #3
0
    def test_ce_k4_filtered_empty(self):
        """ Test for k=4 eigenvalues with filter always returning False """

        # define filter criterion
        # pylint: disable=unused-argument
        def criterion(x, v, a_v):
            return False

        algo = NumPyEigensolver(self.qubit_op,
                                k=4,
                                aux_operators=[],
                                filter_criterion=criterion)
        result = algo.run()
        self.assertEqual(len(result.eigenvalues), 0)
        self.assertEqual(len(result.eigenstates), 0)
Example #4
0
    def test_ce_k4_filtered(self):
        """ Test for k=4 eigenvalues with filter """

        # define filter criterion
        # pylint: disable=unused-argument
        def criterion(x, v, a_v):
            return v >= -1

        algo = NumPyEigensolver(self.qubit_op,
                                k=4,
                                aux_operators=[],
                                filter_criterion=criterion)
        result = algo.run()
        self.assertEqual(len(result.eigenvalues), 2)
        self.assertEqual(len(result.eigenstates), 2)
        np.testing.assert_array_almost_equal(result.eigenvalues.real,
                                             [-0.88272215, -0.22491125])
Example #5
0
 def test_ce_fail(self):
     """ Test no operator """
     algo = NumPyEigensolver()
     with self.assertRaises(AlgorithmError):
         _ = algo.run()