@@ -60,6 +60,9 @@ def test_tradesfifo_ticker_different_kinds():
6060def test_analyze_trades_fifo ():
6161 dt = datetime .datetime .now ()
6262
63+ # trades: [(Date, Symbol, Quantity, Price)]
64+ # expect_portfolio: (Symbol, quantity)
65+ # expect_trades: (N, Symbol, Quantity, Total, Profit)
6366 testcases = [
6467 {
6568 'trades' : [
@@ -68,7 +71,7 @@ def test_analyze_trades_fifo():
6871 ('2018-01-07' , 'TEST' , - 100 , 50.3 ),
6972 ],
7073 'expect_portfolio' : [('TEST' , 50 )],
71- 'expect_trades' : [(1 , 'TEST' , 100 , 0 ), (1 , 'TEST' , - 100 , 4610 )],
74+ 'expect_trades' : [(1 , 'TEST' , 100 , 420 , 0 ), (1 , 'TEST' , - 100 , 5030 , 4610 )],
7275 },
7376 {
7477 'trades' : [
@@ -77,15 +80,15 @@ def test_analyze_trades_fifo():
7780 ('2018-01-07' , 'TEST' , - 130 , 50.3 ),
7881 ],
7982 'expect_portfolio' : [('TEST' , 20 )],
80- 'expect_trades' : [(1 , 'TEST' , 100 , 0 ), (1 , 'TEST' , 30 , 0 ), (1 , 'TEST' , - 130 , 5594 )],
83+ 'expect_trades' : [(1 , 'TEST' , 100 , 420 , 0 ), (1 , 'TEST' , 30 , 525 , 0 ), (1 , 'TEST' , - 130 , 6539 , 5594 )],
8184 },
8285 {
8386 'trades' : [
8487 ('2018-01-01' , 'TEST' , - 100 , 4.2 ),
8588 ('2018-01-04' , 'TEST' , 30 , 17.5 ),
8689 ],
8790 'expect_portfolio' : [('TEST' , - 70 )],
88- 'expect_trades' : [(1 , 'TEST' , - 30 , 0 ), (1 , 'TEST' , 30 , - 399 )],
91+ 'expect_trades' : [(1 , 'TEST' , - 30 , 126 , 0 ), (1 , 'TEST' , 30 , 525 , - 399 )],
8992 },
9093
9194 # issue #8 - sell all & open short in one trade
@@ -96,15 +99,15 @@ def test_analyze_trades_fifo():
9699 ('2018-01-05' , 'TEST' , - 3 , 17.5 ),
97100 ],
98101 'expect_portfolio' : [('TEST' , - 3 )],
99- 'expect_trades' : [(1 , 'TEST' , 10 , 0 ), (1 , 'TEST' , - 10 , 133 )],
102+ 'expect_trades' : [(1 , 'TEST' , 10 , 42 , 0 ), (1 , 'TEST' , - 10 , 175 , 133 )],
100103 },
101104 {
102105 'trades' : [
103106 ('2018-01-01' , 'TEST' , 10 , 4.2 ),
104107 ('2018-01-05' , 'TEST' , - 13 , 17.5 ),
105108 ],
106109 'expect_portfolio' : [('TEST' , - 3 )],
107- 'expect_trades' : [(1 , 'TEST' , 10 , 0 ), (1 , 'TEST' , - 10 , 133 )],
110+ 'expect_trades' : [(1 , 'TEST' , 10 , 42 , 0 ), (1 , 'TEST' , - 10 , 175 , 133 )],
108111 },
109112 ]
110113
@@ -129,7 +132,8 @@ def test_analyze_trades_fifo():
129132 assert expected [0 ] == trade .N , f'expect trade N={ expected [0 ]} but got { trade .N } '
130133 assert expected [1 ] == trade .ticker .symbol , f'expect trade ticker={ expected [1 ]} but got { trade .ticker .symbol } '
131134 assert expected [2 ] == trade .quantity , f'expect trade quantity={ expected [2 ]} but got { trade .quantity } '
132- assert expected [3 ] == trade .profit .amount , f'expect trade profit={ expected [3 ]} but got { trade .profit .amount } '
135+ assert expected [3 ] == trade .total .amount , f'expect trade total={ expected [3 ]} but got { trade .total .amount } '
136+ assert expected [4 ] == trade .profit .amount , f'expect trade profit={ expected [4 ]} but got { trade .profit .amount } '
133137
134138 assert len (portfolio ) == len (tc ['expect_portfolio' ])
135139 assert len (portfolio ) == 1 # FIXME
0 commit comments