Modified portfolio_test to have extra assertions around adding a position
This commit is contained in:
@@ -39,10 +39,11 @@ class TestPortfolio(unittest.TestCase):
|
|||||||
|
|
||||||
def test_add_position_units(self):
|
def test_add_position_units(self):
|
||||||
side = "LONG"
|
side = "LONG"
|
||||||
|
market = "GBP/USD"
|
||||||
units = 2000
|
units = 2000
|
||||||
exposure = float(units)
|
exposure = float(units)
|
||||||
add_price = 1.51928
|
add_price = 1.51819
|
||||||
remove_price = 1.51878
|
remove_price = 1.51770
|
||||||
|
|
||||||
# Test for no position
|
# Test for no position
|
||||||
market = "EUR/USD"
|
market = "EUR/USD"
|
||||||
@@ -52,16 +53,30 @@ class TestPortfolio(unittest.TestCase):
|
|||||||
)
|
)
|
||||||
self.assertFalse(apu)
|
self.assertFalse(apu)
|
||||||
|
|
||||||
# Test for real position
|
# Add a position
|
||||||
market = "GBP/USD"
|
market = "GBP/USD"
|
||||||
|
self.port.add_new_position(
|
||||||
|
side, market, units, exposure,
|
||||||
|
add_price, remove_price
|
||||||
|
)
|
||||||
|
ps = self.port.positions[market]
|
||||||
|
|
||||||
|
# Test for real position
|
||||||
|
add_price = 1.52876
|
||||||
|
remove_price = 1.52821
|
||||||
|
extra_units = 2000
|
||||||
|
extra_exposure = float(extra_units) + exposure
|
||||||
apu = self.port.add_position_units(
|
apu = self.port.add_position_units(
|
||||||
market, units, exposure,
|
market, extra_units, extra_exposure,
|
||||||
add_price, remove_price
|
add_price, remove_price
|
||||||
)
|
)
|
||||||
self.assertTrue(apu)
|
self.assertTrue(apu)
|
||||||
ps = self.port.positions[market]
|
|
||||||
|
|
||||||
self.assertAlmostEqual(ps.avg_price, 1.518735)
|
# Check the position members are correct/sane
|
||||||
|
self.assertAlmostEqual(ps.avg_price, 1.523475)
|
||||||
|
self.assertAlmostEqual(ps.cur_price, 1.52821)
|
||||||
|
self.assertEqual(ps.units, units + extra_units)
|
||||||
|
self.assertEqual(ps.exposure, exposure + extra_exposure)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|||||||
Reference in New Issue
Block a user