def test_add(self): binomial_one = Binomial(.4, 20) binomial_two = Binomial(.4, 60) binomial_sum = binomial_one + binomial_two self.assertEqual(binomial_sum.p, .4) self.assertEqual(binomial_sum.n, 80)
class TestBinomialWithoutThirdCoefficient(unittest.TestCase): def setUp(self): self.binomial = Binomial(1,2,0) def test_real_roots(self): self.assertEqual(self.binomial.real_roots(), [0.0,-2.0]) def test_str(self): self.assertEqual(str(self.binomial),'1.0*x*x+2.0*x')
class TestBinomialSingle(unittest.TestCase): def setUp(self): self.binomial = Binomial(1,-2,1) def test_real_roots(self): self.assertEqual(self.binomial.real_roots(), [1.0]) def test_str(self): self.assertEqual(str(self.binomial),'1.0*x*x-2.0*x+1.0')
class TestBinomialWithoutSecondCoefficient(unittest.TestCase): def setUp(self): self.binomial = Binomial(1,0,-4) def test_real_roots(self): self.assertEqual(self.binomial.real_roots(), [2.0,-2.0]) def test_str(self): self.assertEqual(str(self.binomial),'1.0*x*x-4.0')
class TestWinomialWithoutRoots(unittest.TestCase): def setUp(self): self.binomial = Binomial(1,2,3) def test_real_roots(self): self.assertEqual(self.binomial.real_roots(), []) def test_str(self): self.assertEqual(str(self.binomial),'1.0*x*x+2.0*x+3.0')
class TestBinomialWithTwoRoots(unittest.TestCase): def setUp(self): self.binomial = Binomial(1,2,-3) def test_real_roots(self): self.assertEqual(self.binomial.real_roots(), [1.0,-3.0]) def test_str(self): self.assertEqual(str(self.binomial),'1.0*x*x+2.0*x-3.0')
class TestBinomialClass(unittest.TestCase): def setUp(self): self.binomial = Binomial(0.4, 20) self.binomial.read_data_file('numbers_binomial.txt') def test_initialization(self): self.assertEqual(self.binomial.p, 0.4, 'p value incorrect') self.assertEqual(self.binomial.n, 20, 'n value incorrect') def test_readdata(self): self.assertEqual(self.binomial.data, \ [0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0], 'data not read in correctly') def test_calculatemean(self): mean = self.binomial.calculate_mean() self.assertEqual(mean, 8) def test_calculatestdev(self): stdev = self.binomial.calculate_stdev() self.assertEqual(round(stdev, 2), 2.19) def test_replace_stats_with_data(self): p, n = self.binomial.replace_stats_with_data() self.assertEqual(round(p, 3), .615) self.assertEqual(n, 13) def test_pdf(self): self.assertEqual(round(self.binomial.pdf(5), 5), 0.07465) self.assertEqual(round(self.binomial.pdf(3), 5), 0.01235) self.binomial.replace_stats_with_data() self.assertEqual(round(self.binomial.pdf(5), 5), 0.05439) self.assertEqual(round(self.binomial.pdf(3), 5), 0.00472) def test_add(self): binomial_one = Binomial(.4, 20) binomial_two = Binomial(.4, 60) binomial_sum = binomial_one + binomial_two self.assertEqual(binomial_sum.p, .4) self.assertEqual(binomial_sum.n, 80)
def estimate(): K = float(request.form['k']) T = float(request.form['t']) S0 = float(request.form['s0']) sigma = float(request.form['sigma']) r = float(request.form['r']) q = float(request.form['q']) N = int(request.form['n']) Option = "P" if len(request.form.getlist('option')) != 0: Option = "C" Exercise = "E" if len(request.form.getlist('exercise')) != 0: Exercise = "A" price = round(Binomial(Option, K, T, S0, sigma, r, q, N, Exercise), 2) return render_template("options.html", price=price)
def to_binomial(self): return Binomial(n=1, p=self.p)
from binomial import Binomial from exponential import Exponential from geometric import Geometric from poisson import Poisson from discrete import Discrete from continuous import Continuous user = '' while (user != 'q' and user != 'quit'): problem = input("What type of random variable\n") prompt = "Preform what operation: expected, variance" if problem == 'q': break elif (problem == "binomial"): probability = float(input("What is the probability?\n")) problem = Binomial(probability) prompt += ", probablityofsuccess(n,k)" prompt += ", printTable" elif problem == "exponential": probability = float(input("What is the lambda?\n")) problem = Exponential(1 / 2) elif problem == "poisson": probability = float(input("What is the lambda?\n")) problem = Poisson(probability) prompt += ", probablityofsuccess(n,k)" prompt += ", printTable" elif problem == "discrete": probability = float(input("What is the probability?\n")) problem = Discrete(probability) elif problem == "geometric": probability = float(input("What is the probability?\n"))
def setUp(self): self.binomial = Binomial(0.4, 20) self.binomial.read_data_file('numbers_binomial.txt')
self.short = "Joint" self.inp = [] self.parameters = [] for i, pmf in enumerate(self.pmfs): # TODO add indexes to repeats self.inp += [inp + str(i + 1) for inp in pmf.inp] self.parameters += [ parameter + str(i + 1) for parameter in pmf.parameters ] def distribution(self, *args): if len(args) != self.dim: raise TypeError(f"expected {self.dim} arguments, got {len(args)}") accum = 1 i = 0 for pmf in self.pmfs: accum *= pmf.distribution(*(args[i:i + pmf.dim])) i += pmf.dim return accum if __name__ == "__main__": from binomial import Binomial X = Binomial(10, 0.5) Y = Binomial(10, 0.3) #J = JointPMF(X, Y) J = X * Y J.plot()
def setUp(self): self.binomial = Binomial(1,-2,1)
def setUp(self): self.binomial = Binomial(1,2,0)
def setUp(self): self.binomial = Binomial(1,0,-4)