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)
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])
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)
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])
def test_ce_fail(self): """ Test no operator """ algo = NumPyEigensolver() with self.assertRaises(AlgorithmError): _ = algo.run()