Coverage for tests/testSimpleMetrics.py : 27%

Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
dv = np.arange(0, 10, .5) dv2 = np.arange(-10, 10.25, .5) self.dv = np.array(list(zip(dv)), dtype=[('testdata', 'float')]) self.dv2 = np.array(list(zip(dv2)), dtype=[('testdata', 'float')])
"""Test max metric.""" testmetric = metrics.MaxMetric('testdata') self.assertEqual(testmetric.run(self.dv), self.dv['testdata'].max())
"""Test min metric.""" testmetric = metrics.MinMetric('testdata') self.assertEqual(testmetric.run(self.dv), self.dv['testdata'].min())
"""Test mean metric.""" testmetric = metrics.MeanMetric('testdata') self.assertEqual(testmetric.run(self.dv), self.dv['testdata'].mean())
"""Test median metric.""" testmetric = metrics.MedianMetric('testdata') self.assertEqual(testmetric.run(self.dv), np.median(self.dv['testdata']))
testmetric = metrics.AbsMedianMetric('testdata') self.assertEqual(testmetric.run(self.dv), np.abs(np.median(self.dv['testdata'])))
"""Test full range metric.""" testmetric = metrics.FullRangeMetric('testdata') self.assertEqual(testmetric.run(self.dv), self.dv['testdata'].max()-self.dv['testdata'].min())
"""Test coaddm5 metric.""" testmetric = metrics.Coaddm5Metric(m5Col='testdata') self.assertEqual(testmetric.run(self.dv), 1.25 * np.log10(np.sum(10.**(.8*self.dv['testdata']))))
"""Test rms metric.""" testmetric = metrics.RmsMetric('testdata') self.assertEqual(testmetric.run(self.dv), np.std(self.dv['testdata']))
"""Test Sum metric.""" testmetric = metrics.SumMetric('testdata') self.assertEqual(testmetric.run(self.dv), self.dv['testdata'].sum())
"""Test CountUniqueMetric""" testmetric = metrics.CountUniqueMetric('testdata') self.assertEqual(testmetric.run(self.dv), np.size(np.unique(self.dv['testdata']))) d2 = self.dv.copy() d2['testdata'][1] = d2['testdata'][0] self.assertEqual(testmetric.run(d2), np.size(np.unique(d2)))
"""Test count metric.""" testmetric = metrics.CountMetric('testdata') self.assertEqual(testmetric.run(self.dv), np.size(self.dv['testdata']))
"""Test countratio metric.""" testmetric = metrics.CountRatioMetric('testdata', normVal=2.) self.assertEqual(testmetric.run(self.dv), np.size(self.dv['testdata'])/2.0)
"""Test countsubset metric.""" testmetric = metrics.CountSubsetMetric('testdata', subset=0) self.assertEqual(testmetric.run(self.dv), 1)
testmetric = metrics.MaxPercentMetric('testdata') self.assertEqual(testmetric.run(self.dv), 1.0/len(self.dv)*100.0) self.assertEqual(testmetric.run(self.dv2), 1.0/len(self.dv2)*100.0)
testmetric = metrics.AbsMaxPercentMetric('testdata') self.assertEqual(testmetric.run(self.dv), 1./len(self.dv)*100.) self.assertEqual(testmetric.run(self.dv2), 2./len(self.dv2)*100.)
"""Test Robust RMS metric.""" testmetric = metrics.RobustRmsMetric('testdata') rms_approx = (np.percentile(self.dv['testdata'], 75) - np.percentile(self.dv['testdata'], 25)) / 1.349 self.assertEqual(testmetric.run(self.dv), rms_approx)
cutoff = 5.1 testmetric = metrics.FracAboveMetric('testdata', cutoff=cutoff) self.assertEqual(testmetric.run(self.dv), np.size(np.where(self.dv['testdata'] >= cutoff)[0])/float(np.size(self.dv))) testmetric = metrics.FracAboveMetric('testdata', cutoff=cutoff, scale=2) self.assertEqual(testmetric.run(self.dv), 2.0*np.size(np.where(self.dv['testdata'] >= cutoff)[0])/float(np.size(self.dv)))
cutoff = 5.1 testmetric = metrics.FracBelowMetric('testdata', cutoff=cutoff) self.assertEqual(testmetric.run(self.dv), np.size(np.where(self.dv['testdata'] <= cutoff)[0])/float(np.size(self.dv))) testmetric = metrics.FracBelowMetric('testdata', cutoff=cutoff, scale=2) self.assertEqual(testmetric.run(self.dv), 2.0*np.size(np.where(self.dv['testdata'] <= cutoff)[0])/float(np.size(self.dv)))
data = self.dv testmetric = metrics.NoutliersNsigmaMetric('testdata', nSigma=1.) med = np.mean(data['testdata']) shouldBe = np.size(np.where(data['testdata'] > med + data['testdata'].std())[0]) self.assertEqual(shouldBe, testmetric.run(data)) testmetric = metrics.NoutliersNsigmaMetric('testdata', nSigma=-1.) shouldBe = np.size(np.where(data['testdata'] < med - data['testdata'].std())[0]) self.assertEqual(shouldBe, testmetric.run(data))
"""Test mean angle metric.""" rng = np.random.RandomState(6573) dv1 = np.arange(0, 32, 2.5) dv2 = (dv1 - 20.0) % 360. dv1 = np.array(list(zip(dv1)), dtype=[('testdata', 'float')]) dv2 = np.array(list(zip(dv2)), dtype=[('testdata', 'float')]) testmetric = metrics.MeanAngleMetric('testdata') result1 = testmetric.run(dv1) result2 = testmetric.run(dv2) self.assertAlmostEqual(result1, (result2+20)%360.) dv = rng.rand(10000)*360.0 dv = dv dv = np.array(list(zip(dv)), dtype=[('testdata', 'float')]) result = testmetric.run(dv) result = result self.assertAlmostEqual(result, 180)
"""Test full range angle metric.""" rng = np.random.RandomState(5422) dv1 = np.arange(0, 32, 2.5) dv2 = (dv1 - 20.0) % 360. dv1 = np.array(list(zip(dv1)), dtype=[('testdata', 'float')]) dv2 = np.array(list(zip(dv2)), dtype=[('testdata', 'float')]) testmetric = metrics.FullRangeAngleMetric('testdata') result1 = testmetric.run(dv1) result2 = testmetric.run(dv2) self.assertAlmostEqual(result1, result2) dv = np.arange(0, 358, 5) dv = np.array(list(zip(dv)), dtype=[('testdata', 'float')]) result = testmetric.run(dv) self.assertAlmostEqual(result, 355) dv = rng.rand(10000)*360.0 dv = np.array(list(zip(dv)), dtype=[('testdata', 'float')]) result = testmetric.run(dv) result = result self.assertGreater(result, 355)
lsst.utils.tests.init()
lsst.utils.tests.init() unittest.main() |