def testGradientArray(self): for i in range(self.expressions.__len__()): self.grad_alg = GradientAlgorithm(*self.expressions[i]) for (test, answer) in zip(self.tests_gradient[i], self.answers_gradient[i]): grad = self.grad_alg.get_gradient_as_array_at(*test) self.assertAlmostEqual(answer[0], grad[0][0], delta=0.1) self.assertAlmostEqual(answer[1], grad[1][0], delta=0.2)
def testHessianArray(self): for i in range(self.expressions.__len__()): self.grad_alg = GradientAlgorithm(*self.expressions[i]) for (test, answer) in zip(self.tests_hessian[i], self.answers_hessian[i]): hessian = self.grad_alg.get_hessian_as_array_at(*test) self.assertAlmostEquals(answer[0], hessian[0][0], delta=0.1) self.assertAlmostEquals(answer[1], hessian[0][1], delta=0.1) self.assertAlmostEquals(answer[2], hessian[1][0], delta=0.1) self.assertAlmostEquals(answer[3], hessian[1][1], delta=0.1)
def testHessian(self): for i in range(self.expressions.__len__()): self.grad_alg = GradientAlgorithm(*self.expressions[i]) for (test, answer) in zip(self.tests_hessian[i], self.answers_hessian[i]): gxx, gxy, gyx, gyy = self.grad_alg.get_hessian_at(*test) self.assertAlmostEquals(answer[0], gxx, delta=0.1) self.assertAlmostEquals(answer[1], gxy, delta=0.1) self.assertAlmostEquals(answer[2], gyx, delta=0.1) self.assertAlmostEquals(answer[3], gyy, delta=0.1)