Example #1
0
    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)
Example #2
0
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')
Example #3
0
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')
Example #4
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')
Example #5
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')
Example #6
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')
Example #7
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)
Example #8
0
File: app.py Project: ericpzh/CAPM
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)
Example #9
0
 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"))
Example #11
0
 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()
Example #13
0
 def setUp(self):
     self.binomial = Binomial(1,-2,1)
Example #14
0
 def setUp(self):
     self.binomial = Binomial(1,2,0)
Example #15
0
 def setUp(self):
     self.binomial = Binomial(1,0,-4)