def test99(self): """Make sure that direct calls to update do not clear previous contents""" D = SDT(dict([(HI, 10), (CR, 9)])) D.__init__(MI=1) self.assertEqual(repr(D), 'SDT(HI=10, MI=1, CR=9, FA=0)')
def test0(self): D = SDT(dict([(HI, 10), (MI, 1), (CR, 9)])) with self.assertRaises(NotImplementedError) as cm: M = D.setdefault('AB', 3) self.assertEqual(str(cm.exception), 'SDT.setdefault() is undefined.')
def test0(self): L = SDT(HI=10, MI=1, CR=9) M = SDT(HI=11, FA=5) self.assertTrue(isinstance(L, SDT)) self.assertEqual(L & M, SDT(HI=10, MI=0, CR=0, FA=0)) self.assertEqual(L, SDT(HI=10, MI=1, CR=9)) self.assertEqual(M, SDT(HI=11, FA=5))
def test0(self): D = SDT() D(HI) D(HI) D(HI) D(FA) D(FA) self.assertEqual(D, SDT(HI=3, FA=2))
def test0(self): D = SDT(dict([(HI, 10), (MI, 1), (CR, 9)])) with self.assertRaises(NotImplementedError) as cm: M = D.fromkeys([HI, HI]) self.assertEqual( str(cm.exception), 'SDT.fromkeys() is undefined. Use SDT(iterable) instead.')
def test1(self): """list args""" R = [ SDT(HI=12, MI=3, CR=4, FA=34).aprime(), SDT(HI=12, MI=3, CR=4, FA=4).aprime() ] D = aprime.prob([12 / 15., 12 / 15.], [34 / 38., 4 / 8.]) for r, d in zip(R, D): self.assertAlmostEqual(r, d, 7)
def test1(self): """list args""" R = [ SDT(HI=12, MI=3, CR=4, FA=34).aprime(), SDT(HI=12, MI=3, CR=4, FA=4).aprime() ] D = aprime.direct([12, 12], [3, 3], [4, 4], [34, 4]) for r, d in zip(R, D): self.assertAlmostEqual(r, d, 7)
def test1(self): D = SDT() with self.assertRaises(KeyError) as cm: D('AB') self.assertEqual(str(cm.exception), "'AB'")
def test2(self): sdt_obj = SDT(HI=116, MI=30, CR=323, FA=80) sdt_probs = (.97, .22) sdt_counts = (76, 67, 80, 65) sdt_metrics.plotting.mult_roc_plot( ((.91, .40), 'A'), ((.76, .56), 'B'), ((.84, .67), 'C'), metric='amzs', isopleths='bppd', fname='mult_roc_example02.png')
def test1(self): sdt_obj = SDT(HI=116, MI=30, CR=323, FA=80) sdt_probs = (.97, .22) sdt_counts = (76, 67, 80, 65) sdt_metrics.plotting.mult_roc_plot((sdt_obj, 'from SDT object'), (sdt_probs, 'from probs'), (sdt_counts, 'from counts'), fname='mult_roc_example.png', metric='dprime', isopleths='c')
def test23(self): """SDT(**kwargs)""" D = SDT(HI=10, MI=1, CR=9) self.assertEqual(repr(D), 'SDT(HI=10, MI=1, CR=9, FA=0)')
def test4(self): """given SDT object""" sdt_metrics.plotting.roc_plot(SDT(HI=251, MI=245, CR=264, FA=240), fname='roc_example03.png')
def test0(self): D = SDT(HI=20, MI=180, FA=10, CR=1820) self.assertEqual(round(D.npv(), 3), 0.995)
def test0(self): D = SDT(dict([(HI, 10), (MI, 1), (CR, 9)])) del D[HI] self.assertEqual(repr(D), 'SDT(HI=0, MI=1, CR=9, FA=0)')
def test2(self): D = SDT(HI=78, MI=12, FA=00, CR=10) self.assertEqual(D.mutual_info(), 0.17350094092658325)
def test0(self): """float args""" self.assertEqual(aprime.prob(12 / 15., 34 / 38.), SDT(HI=12, MI=3, CR=4, FA=34).aprime())
def test0(self): """float args""" self.assertEqual(aprime.direct(12, 3, 4, 34), SDT(HI=12, MI=3, CR=4, FA=34).aprime())
def test20(self): """SDT()""" self.assertEqual(repr(SDT()), "SDT()")
def test0(self): D = SDT(HI=20, MI=180, FA=10, CR=1820) self.assertEqual(round(D.sensitivity(), 2), 0.67)
def test0(self): D = SDT(HI=20, MI=180, FA=10, CR=1820) self.assertEqual(round(D.specificity(), 2), 0.91)
def test24(self): """SDT(iterable)""" D = SDT([HI, HI, HI, FA, FA]) self.assertEqual(repr(D), 'SDT(HI=3, MI=0, CR=0, FA=2)')
def test1(self): D = SDT(HI=80, MI=10, FA=00, CR=10) self.assertEqual(D.mutual_info(), 0.18645353727945904)
def test25(self): """SDT(iterable, **kwargs), with overlapping key/values""" D = SDT(dict([(HI, 10), (CR, 9)]), MI=1) self.assertEqual(repr(D), 'SDT(HI=10, MI=1, CR=9, FA=0)')
def test1(self): """given an SDT object""" sdt = SDT(HI=116, MI=30, CR=323, FA=80) sdt_metrics.plotting.roc_plot(sdt)
def test0(self): D = SDT(dict([(HI, 10), (CR, 9)])) D.clear() self.assertEqual(repr(D), 'SDT()')
def test22(self): """SDT(iterable)""" D = SDT([(HI, 10), (CR, 9), (MI, 1)]) self.assertEqual(repr(D), 'SDT(HI=10, MI=1, CR=9, FA=0)')
def test0(self): D = SDT(dict([(HI, 10), (MI, 1), (CR, 9)])) D2 = D.copy() D2(HI) self.assertEqual(repr(D), 'SDT(HI=10, MI=1, CR=9, FA=0)')
def test0(self): D = SDT(HI=20, MI=180, FA=10, CR=1820) self.assertEqual(D.ppv(), 0.1)
def run_comparison(a, b, N, pcolor): a_label = a.__name__ b_label = b.__name__ ## N=10 H,F,A,B = [],[],[],[] for f in xrange(N+2): H.append([]) F.append([]) A.append([]) B.append([]) for h in xrange(N+2): counts = {'HI':h, 'MI':N-h, 'FA':f, 'CR':N-f} H[-1].append(h) F[-1].append(f) A[-1].append(a(SDT(counts))) B[-1].append(b(SDT(counts))) H=np.array(H) F=np.array(F) A=np.array(A) B=np.array(B) A_vs_B = np.array(B) ## A_vs_B -= np.min(A_vs_B) ## A_vs_B /= np.max(A_vs_B) A_vs_B -= A ## with open('%s-vs-%s,N=%i.csv' ## %(a_label,b_label,N), 'wb') as f: ## csv.writer(f).writerows( ## zip(*[H.flatten(),F.flatten(), A.flatten(),B.flatten()])) pylab.figure(figsize=(6,6)) pylab.subplots_adjust(bottom=.15, top=.9, left=.15, right=.9) pylab.scatter(B,A, alpha=.5) pylab.ylabel(a_label) pylab.xlabel(b_label) pylab.savefig('%s-vs-%s,N=%i.png'%(a_label,b_label,N)) pylab.close() if pcolor: pylab.figure(figsize=(4,8)) pylab.subplots_adjust(bottom=.1, top=.95, hspace=.3) pylab.subplot(311, aspect='equal') pylab.title(a_label) pylab.pcolor(F,H,A) pylab.xlim([0,N+1]) pylab.ylim([0,N+1]) pylab.colorbar() pylab.subplot(312, aspect='equal') pylab.title(b_label) pylab.pcolor(F,H,B) pylab.xlim([0,N+1]) pylab.ylim([0,N+1]) pylab.colorbar() pylab.subplot(313, aspect='equal') pylab.title("%s - %s"%(b_label,a_label)) pylab.pcolor(F,H,A_vs_B) pylab.xlim([0,N+1]) pylab.ylim([0,N+1]) pylab.colorbar() pylab.savefig('%s-vs-%s_pcolor,N=%i.png' %(a_label,b_label,N),dpi=300) pylab.close()
def test21(self): """SDT(mapping)""" D = SDT(dict([(HI, 10), (CR, 9), (MI, 1)])) self.assertEqual(repr(D), 'SDT(HI=10, MI=1, CR=9, FA=0)')