#format python """CalculatePiMwInTwoDiPage by [yong27]. It requires SimpleRegressionAnalysis.py in BioinfoSarangNet """ import unittest, math from SimpleRegressionAnalysis import SimpleRegressionAnalyzer class PiRegressCalculator(SimpleRegressionAnalyzer): """Regression model y = a + bx y is pI value and x is coord """ pass class MwRegressCalculator(SimpleRegressionAnalyzer): """Regression model logy = a + bx y is Mw value and x is coord """ def setData(self, aTwoTupleList): loggedData =[] for eachCoord, eachMw in aTwoTupleList: loggedData.append((eachCoord, math.log(eachMw))) SimpleRegressionAnalyzer.setData(self, loggedData) def getValue(self, aCoord): return math.exp(self.a + self.b * aCoord) class RegressCalculatorTest(unittest.TestCase): def testPi(self): prc = PiRegressCalculator() prc.setData([(100, 4.0),(200,5.0)]) self.assertEquals(6.0, prc.getValue(300)) self.assertEquals(7.0, prc.getValue(400)) def testMw(self): mrc = MwRegressCalculator() mrc.setData([(100, 100000),(200, 10000)]) self.assertEquals(1000.0000000000016, mrc.getValue(300)) self.assertEquals(100.00000000000023, mrc.getValue(400)) if __name__=='__main__': unittest.main(argv=('','-v'))