forked from WW-shan/poly_strategy
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_fees.py
More file actions
27 lines (20 loc) · 1017 Bytes
/
test_fees.py
File metadata and controls
27 lines (20 loc) · 1017 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import unittest
from poly_strategy.fees import (
fee_adjusted_buy_cost,
kalshi_taker_fee_per_share,
polymarket_taker_fee_per_share,
taker_fee_per_share,
)
class FeeTests(unittest.TestCase):
def test_polymarket_taker_fee_per_share_uses_price_times_one_minus_price(self):
self.assertAlmostEqual(polymarket_taker_fee_per_share(0.50, 0.03), 0.0075)
self.assertAlmostEqual(polymarket_taker_fee_per_share(0.20, 0.072), 0.01152)
def test_fee_adjusted_buy_cost_adds_per_share_fee_to_notional(self):
total = fee_adjusted_buy_cost(price=0.50, quantity=20, fee_rate=0.03)
self.assertAlmostEqual(total, 10.15)
def test_kalshi_taker_fee_uses_expected_earnings_formula(self):
self.assertAlmostEqual(kalshi_taker_fee_per_share(0.50), 0.0175)
self.assertAlmostEqual(taker_fee_per_share("kalshi", 0.20, 0.07), 0.0112)
self.assertAlmostEqual(taker_fee_per_share("polymarket", 0.20, 0.03), 0.0048)
if __name__ == "__main__":
unittest.main()