Mercurial > public > python-black-scholes
annotate tests/test_helpers.py @ 6:0f196da9af68
fix import typo
author | Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com> |
---|---|
date | Tue, 16 Nov 2021 17:50:59 +0100 |
parents | ccffaf75d240 |
children | f213aa4891fc |
rev | line source |
---|---|
1
b853194dc28b
add methods for eu call option
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
1 from unittest import TestCase |
6
0f196da9af68
fix import typo
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
4
diff
changeset
|
2 from fbs.helpers import Option |
1
b853194dc28b
add methods for eu call option
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
3 |
b853194dc28b
add methods for eu call option
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
4 |
b853194dc28b
add methods for eu call option
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
5 class TestOption(TestCase): |
b853194dc28b
add methods for eu call option
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
6 option = Option( |
b853194dc28b
add methods for eu call option
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
7 spot_price=20.00, |
b853194dc28b
add methods for eu call option
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
8 exercise_price=21.00, |
b853194dc28b
add methods for eu call option
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
9 risk_free_rate=0.05, |
b853194dc28b
add methods for eu call option
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
10 std=0.25, |
b853194dc28b
add methods for eu call option
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
11 expiration=0.5 # 6 month (half year) |
b853194dc28b
add methods for eu call option
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
12 ) |
b853194dc28b
add methods for eu call option
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
13 |
b853194dc28b
add methods for eu call option
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
14 def test_compute_eu_call_price(self): |
b853194dc28b
add methods for eu call option
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
15 price = self.option.compute_eu_call_price() |
b853194dc28b
add methods for eu call option
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
16 price = round(price, 2) |
b853194dc28b
add methods for eu call option
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
17 |
b853194dc28b
add methods for eu call option
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
18 self.assertEqual(price, 1.20, 'EU call price is not equal to 1.20') |
b853194dc28b
add methods for eu call option
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
19 |
b853194dc28b
add methods for eu call option
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
20 def test_compute_d1(self): |
b853194dc28b
add methods for eu call option
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
21 d1 = self.option.compute_d1() |
b853194dc28b
add methods for eu call option
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
22 d1 = round(d1, 2) |
b853194dc28b
add methods for eu call option
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
23 |
b853194dc28b
add methods for eu call option
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
24 self.assertEqual(d1, -0.05, 'D1 coefficient is not equal to -0.05') |
b853194dc28b
add methods for eu call option
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
25 |
b853194dc28b
add methods for eu call option
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
26 def test_compute_d2(self): |
b853194dc28b
add methods for eu call option
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
27 d2 = self.option.compute_d2() |
b853194dc28b
add methods for eu call option
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
28 d2 = round(d2, 2) |
b853194dc28b
add methods for eu call option
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
29 |
b853194dc28b
add methods for eu call option
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
30 self.assertEqual(d2, -0.22, 'D2 coefficient is now equal to -0.22') |