diff options
author | uvok | 2025-04-14 11:01:03 +0200 |
---|---|---|
committer | uvok | 2025-04-14 11:01:03 +0200 |
commit | 82e8dc4f34ab8546db96788467f6866246f4adac (patch) | |
tree | f0f1cf40a05b7c2eb5f3a69e9d194302b6f1a477 | |
parent | b87a5ca320675a75ea8c8896e1747899b0e21d39 (diff) |
Test total-cost
-rw-r--r-- | test_trade_queue.py | 10 |
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() |