Skip to content

Commit d689ef9

Browse files
committed
add asserts to swift test
1 parent 58556f2 commit d689ef9

File tree

2 files changed

+13
-8
lines changed

2 files changed

+13
-8
lines changed

programs/drift/src/math/orders/tests.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3385,6 +3385,8 @@ mod calculate_max_perp_order_size {
33853385
)
33863386
.unwrap();
33873387

3388+
assert_eq!(max_order_size, 1600000);
3389+
33883390
user.perp_positions[0].open_orders += 1;
33893391
user.perp_positions[0].open_bids += max_order_size as i64;
33903392

@@ -3401,6 +3403,9 @@ mod calculate_max_perp_order_size {
34013403
)
34023404
.unwrap();
34033405

3406+
assert_eq!(total_collateral.unsigned_abs(), 2199358529); // ~$2200
3407+
assert_eq!(margin_requirement, 2186678676);
3408+
34043409
assert!(total_collateral.unsigned_abs() - margin_requirement < QUOTE_PRECISION);
34053410
}
34063411
}

programs/drift/src/state/perp_market.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ use anchor_lang::prelude::*;
44

55
use crate::state::state::{State, ValidityGuardRails};
66
use std::cmp::max;
7-
use std::u128;
87

98
use crate::controller::position::PositionDirection;
109
use crate::error::{DriftResult, ErrorCode};
@@ -248,21 +247,22 @@ pub fn _calc_high_leverage_mode_initial_margin_ratio_from_size(
248247
) -> DriftResult<u32> {
249248
let result = if size_adj_margin_ratio < pre_size_adj_margin_ratio {
250249
let size_pct_discount_factor = PERCENTAGE_PRECISION.safe_sub(
251-
((pre_size_adj_margin_ratio as u128)
252-
.safe_sub(size_adj_margin_ratio as u128)?
250+
((pre_size_adj_margin_ratio.cast::<u128>()?)
251+
.safe_sub(size_adj_margin_ratio.cast::<u128>()?)?
253252
.safe_mul(PERCENTAGE_PRECISION)?
254-
.safe_div((pre_size_adj_margin_ratio / 5) as u128)?),
253+
.safe_div((pre_size_adj_margin_ratio.safe_div(5)?).cast::<u128>()?)?),
255254
)?;
256255

257256
let hlm_margin_delta = pre_size_adj_margin_ratio
258257
.saturating_sub(default_margin_ratio)
259258
.max(1);
260259

261260
let hlm_margin_delta_proportion = get_proportion_u128(
262-
hlm_margin_delta as u128,
261+
hlm_margin_delta.cast()?,
263262
size_pct_discount_factor,
264263
PERCENTAGE_PRECISION,
265-
)? as u32;
264+
)?
265+
.cast::<u32>()?;
266266
hlm_margin_delta_proportion + default_margin_ratio
267267
} else if size_adj_margin_ratio == pre_size_adj_margin_ratio {
268268
default_margin_ratio
@@ -520,7 +520,7 @@ impl PerpMarket {
520520
pre_size_adj_margin_ratio,
521521
size_adj_margin_ratio,
522522
default_margin_ratio,
523-
)
523+
)?
524524
} else {
525525
let size_adj_margin_ratio = calculate_size_premium_liability_weight(
526526
size,
@@ -530,7 +530,7 @@ impl PerpMarket {
530530
true,
531531
)?;
532532

533-
Ok(default_margin_ratio.max(size_adj_margin_ratio))
533+
default_margin_ratio.max(size_adj_margin_ratio)
534534
};
535535

536536
Ok(margin_ratio)

0 commit comments

Comments
 (0)