"""instance_embed_context_lib 顶栏统计.""" from __future__ import annotations import unittest from lib.instance.instance_embed_context_lib import ( options_funding_label, profit_loss_ratio_from_averages, profit_loss_ratio_from_trades, total_funds_usdt, ) class TestHeaderStatsLib(unittest.TestCase): def test_profit_loss_ratio_from_averages(self): self.assertEqual(profit_loss_ratio_from_averages(9.0, -3.0), 3.0) self.assertIsNone(profit_loss_ratio_from_averages(9.0, 0)) def test_profit_loss_ratio_from_trades(self): trades = [ {"effective_pnl_amount": 10}, {"effective_pnl_amount": 8}, {"effective_pnl_amount": -4}, {"effective_pnl_amount": -2}, ] self.assertEqual(profit_loss_ratio_from_trades(trades), 3.0) def test_total_funds_usdt(self): self.assertEqual(total_funds_usdt(100.5, 59.27), 159.77) self.assertIsNone(total_funds_usdt(None, 10)) self.assertEqual( total_funds_usdt(100, 50, options_trading_usdc=0.2, options_trading_usdt=10), 160.2, ) def test_options_funding_label(self): self.assertEqual(options_funding_label(1.5, 10), "1.50 USDC · 10.00 USDT") self.assertEqual(options_funding_label(None, 10), "10.00 USDT") self.assertEqual(options_funding_label(None, None), "—") if __name__ == "__main__": unittest.main()