1*5808f684SSatish Balay# -------------------------------------------------------------------- 2*5808f684SSatish Balay 3*5808f684SSatish Balayfrom petsc4py import PETSc 4*5808f684SSatish Balayimport unittest 5*5808f684SSatish Balay 6*5808f684SSatish Balay# -------------------------------------------------------------------- 7*5808f684SSatish Balay 8*5808f684SSatish Balayclass BaseTestTAO(object): 9*5808f684SSatish Balay 10*5808f684SSatish Balay COMM = None 11*5808f684SSatish Balay 12*5808f684SSatish Balay def setUp(self): 13*5808f684SSatish Balay self.tao = PETSc.TAO().create(comm=self.COMM) 14*5808f684SSatish Balay 15*5808f684SSatish Balay def tearDown(self): 16*5808f684SSatish Balay self.tao = None 17*5808f684SSatish Balay 18*5808f684SSatish Balay def testSetRoutinesToNone(self): 19*5808f684SSatish Balay tao = self.tao 20*5808f684SSatish Balay objective, gradient, objgrad = None, None, None 21*5808f684SSatish Balay constraint, varbounds = None, None 22*5808f684SSatish Balay hessian, jacobian = None, None 23*5808f684SSatish Balay tao.setObjective(objective) 24*5808f684SSatish Balay tao.setGradient(gradient) 25*5808f684SSatish Balay tao.setVariableBounds(varbounds) 26*5808f684SSatish Balay tao.setObjectiveGradient(objgrad) 27*5808f684SSatish Balay tao.setConstraints(constraint) 28*5808f684SSatish Balay tao.setHessian(hessian) 29*5808f684SSatish Balay tao.setJacobian(jacobian) 30*5808f684SSatish Balay 31*5808f684SSatish Balay def testGetVecsAndMats(self): 32*5808f684SSatish Balay tao = self.tao 33*5808f684SSatish Balay x = tao.getSolution() 34*5808f684SSatish Balay g = tao.getGradient() 35*5808f684SSatish Balay l, u = tao.getVariableBounds() 36*5808f684SSatish Balay r = None#tao.getConstraintVec() 37*5808f684SSatish Balay H, HP = None,None#tao.getHessianMat() 38*5808f684SSatish Balay J, JP = None,None#tao.getJacobianMat() 39*5808f684SSatish Balay for o in [x, g, r, l, u ,H, HP, J, JP,]: 40*5808f684SSatish Balay self.assertFalse(o) 41*5808f684SSatish Balay 42*5808f684SSatish Balay def testGetKSP(self): 43*5808f684SSatish Balay ksp = self.tao.getKSP() 44*5808f684SSatish Balay self.assertFalse(ksp) 45*5808f684SSatish Balay 46*5808f684SSatish Balay# -------------------------------------------------------------------- 47*5808f684SSatish Balay 48*5808f684SSatish Balayclass TestTAOSelf(BaseTestTAO, unittest.TestCase): 49*5808f684SSatish Balay COMM = PETSc.COMM_SELF 50*5808f684SSatish Balay 51*5808f684SSatish Balayclass TestTAOWorld(BaseTestTAO, unittest.TestCase): 52*5808f684SSatish Balay COMM = PETSc.COMM_WORLD 53*5808f684SSatish Balay 54*5808f684SSatish Balay# -------------------------------------------------------------------- 55*5808f684SSatish Balay 56*5808f684SSatish Balayimport numpy 57*5808f684SSatish Balayif numpy.iscomplexobj(PETSc.ScalarType()): 58*5808f684SSatish Balay del BaseTestTAO 59*5808f684SSatish Balay del TestTAOSelf 60*5808f684SSatish Balay del TestTAOWorld 61*5808f684SSatish Balay 62*5808f684SSatish Balayif __name__ == '__main__': 63*5808f684SSatish Balay unittest.main() 64