def testConstantRegion(self): """A constant region does not have any local extrema and NaN values should be returned.""" y = numpy.array([2,2,2],'f') result = EF.estimateExtremumPosition(y,self.x) self.assertEqual(result,(numpy.NaN,numpy.NaN,numpy.NaN)) result = EF.estimateExtremumPosition(y,self.x,sigmaY=self.zeros) self.assertEqual(result,(numpy.NaN,numpy.NaN,numpy.NaN))
def testExactGeneric(self): result = EF.estimateExtremumPosition(self.y,self.x) self.assertEqual(result,(2.5+1/1.5,numpy.NaN,1.0)) result = EF.estimateExtremumPosition(self.y,self.x,sigmaY=self.zeros) self.assertEqual(result,(2.5+1/1.5,0.0,1.0)) result = EF.estimateExtremumPosition(self.y,self.x,sigmaY=self.error) numpy.testing.assert_almost_equal(numpy.array(result), numpy.array((2.5+1/1.5,0.02/1.5**2,1.0)))
def testSymmetricMaximum(self): y = numpy.array([2,2,1],'f') result = EF.estimateExtremumPosition(y,self.x) self.assertEqual(result,(2.5,numpy.NaN,-1.0)) result = EF.estimateExtremumPosition(y,self.x,sigmaY=self.zeros) self.assertEqual(result,(2.5,0.0,-1.0)) result = EF.estimateExtremumPosition(y,self.x,sigmaY=self.error) numpy.testing.assert_almost_equal(numpy.array(result), numpy.array((2.5,0.02,-1.0)))
def testExactMaximum(self): y = numpy.array([2,3,2],'f') result = EF.estimateExtremumPosition(y,self.x) self.assertEqual(result,(3.0,numpy.NaN,-1.0)) result = EF.estimateExtremumPosition(y,self.x,sigmaY=self.zeros) self.assertEqual(result,(3.0,0.0,-1.0)) result = EF.estimateExtremumPosition(y,self.x,sigmaY=self.error) numpy.testing.assert_almost_equal(numpy.array(result), numpy.array((3.0,0.005,-1.0)))