summaryrefslogtreecommitdiff
path: root/test_trade_queue.py
diff options
context:
space:
mode:
authoruvok2025-04-14 11:01:03 +0200
committeruvok2025-04-14 11:01:03 +0200
commit82e8dc4f34ab8546db96788467f6866246f4adac (patch)
treef0f1cf40a05b7c2eb5f3a69e9d194302b6f1a477 /test_trade_queue.py
parentb87a5ca320675a75ea8c8896e1747899b0e21d39 (diff)
Test total-cost
Diffstat (limited to 'test_trade_queue.py')
-rw-r--r--test_trade_queue.py10
1 files changed, 10 insertions, 0 deletions
diff --git a/test_trade_queue.py b/test_trade_queue.py
index 3a72e4a..692a433 100644
--- a/test_trade_queue.py
+++ b/test_trade_queue.py
@@ -97,6 +97,16 @@ class TestFIFOQueue(unittest.TestCase):
self.queue.remove(60.0) # Remove all assets
self.assertEqual(self.queue.get_remaining_amount(), 0.0) # Remaining: 0
+ def test_remove_partial_trade_correct_cost(self):
+ """
+ Test removing a partial trade and ensure the correct cost is calculated.
+ """
+ trades = self.queue.remove(5.0) # Remove 5 COIN from the first trade
+ self.assertEqual(len(trades), 1) # Only one trade should be returned
+ self.assertEqual(trades[0].amount, 5.0) # Check the removed amount
+ self.assertEqual(trades[0].total_cost, 50.0) # Total cost should be proportional: (100 * 5 / 10)
+ self.assertEqual(self.queue.queue[0].amount, 5.0) # Remaining amount in the first trade should be updated
+ self.assertEqual(self.queue.queue[0].total_cost, 50.0) # Original total cost remains unchanged
if __name__ == "__main__":
unittest.main()