@@ -8,6 +8,7 @@ use crate::controller::spot_balance::*;
8
8
use crate :: controller:: spot_position:: update_spot_balances_and_cumulative_deposits_with_limits;
9
9
use crate :: create_account_info;
10
10
use crate :: create_anchor_account_info;
11
+ use crate :: math:: constants:: PERCENTAGE_PRECISION ;
11
12
use crate :: math:: constants:: {
12
13
AMM_RESERVE_PRECISION , BASE_PRECISION_I128 , BASE_PRECISION_I64 , LIQUIDATION_FEE_PRECISION ,
13
14
PEG_PRECISION , PRICE_PRECISION_I64 , PRICE_PRECISION_U64 , QUOTE_PRECISION , QUOTE_PRECISION_I128 ,
@@ -54,7 +55,6 @@ pub fn check_perp_market_valid(
54
55
}
55
56
56
57
57
-
58
58
#[ test]
59
59
fn test_meme_interest_rate ( ) {
60
60
let perp_market_map = PerpMarketMap :: empty ( ) ;
@@ -104,6 +104,21 @@ pub fn check_perp_market_valid(
104
104
105
105
assert_eq ! ( meme_market. cumulative_borrow_interest, 10080236295 ) ;
106
106
107
+
108
+ let rate = calculate_borrow_rate ( & meme_market, PERCENTAGE_PRECISION /2 ) . unwrap ( ) ;
109
+ assert_eq ! ( rate, 107_142 ) ;
110
+
111
+ let rate = calculate_borrow_rate ( & meme_market, 850_000 ) . unwrap ( ) ;
112
+ assert_eq ! ( rate, 392_500 ) ;
113
+
114
+ let rate = calculate_borrow_rate ( & meme_market, 990_000 ) . unwrap ( ) ;
115
+ assert_eq ! ( rate, 2_575_000 ) ;
116
+
117
+ let rate = calculate_borrow_rate ( & meme_market, PERCENTAGE_PRECISION ) . unwrap ( ) ;
118
+ assert_eq ! ( rate, 5_000_000 ) ;
119
+
120
+ assert_eq ! ( meme_market. max_borrow_rate, 5000000 ) ;
121
+
107
122
}
108
123
109
124
0 commit comments