Description
Add a unit test verifying that compute_confidence_interval handles large price values (1e9 range) without overflow or precision loss.
Rationale
Prices on Stellar use 1e30 fixed-point precision. Large values (e.g., BTC at ~$100k = 1_000_000_000 * 1e30 stroops) must not cause integer overflow in percentile computation or spread calculation.
Test Case
#[test]
fn large_price_values() {
let prices = vec![1_000_000_000i128, 2_000_000_000, 3_000_000_000];
let p = compute_confidence_interval(&prices).unwrap();
assert!(p.min <= p.max);
assert!(p.min > 0);
assert!(p.max > 0);
}
Acceptance Criteria
Description
Add a unit test verifying that
compute_confidence_intervalhandles large price values (1e9 range) without overflow or precision loss.Rationale
Prices on Stellar use 1e30 fixed-point precision. Large values (e.g., BTC at ~$100k =
1_000_000_000 * 1e30stroops) must not cause integer overflow in percentile computation or spread calculation.Test Case
Acceptance Criteria
oracle/src/prices.rsmodule tests