1- use crate :: simulation:: fee_model:: { FeeModel , FeeModelConfig } ;
2- use crate :: types:: FeeRecord ;
1+ use crate :: simulation:: fee_model:: { FeeModel , FeeModelConfig , FeePoint } ;
2+
3+ use rand:: rngs:: SmallRng ;
4+ use rand:: { Rng , SeedableRng } ;
35
46/// Returns a deterministic fee sequence of `count` records seeded by `seed`.
5- pub fn make_fee_sequence ( count : usize , seed : u64 ) -> Vec < FeeRecord > {
7+ pub fn make_fee_sequence ( count : usize , seed : u64 ) -> Vec < FeePoint > {
68 let config = FeeModelConfig {
79 seed : Some ( seed) ,
810 ..Default :: default ( )
@@ -11,7 +13,7 @@ pub fn make_fee_sequence(count: usize, seed: u64) -> Vec<FeeRecord> {
1113}
1214
1315/// Returns a fee sequence where every record is flagged as a spike.
14- pub fn make_spike_sequence ( count : usize ) -> Vec < FeeRecord > {
16+ pub fn make_spike_sequence ( count : usize ) -> Vec < FeePoint > {
1517 let config = FeeModelConfig {
1618 spike_probability : 1.0 ,
1719 seed : Some ( 0 ) ,
@@ -21,18 +23,14 @@ pub fn make_spike_sequence(count: usize) -> Vec<FeeRecord> {
2123}
2224
2325/// Returns a fee sequence with no spikes (baseline load only).
24- pub fn make_baseline_sequence ( count : usize ) -> Vec < FeeRecord > {
26+ pub fn make_baseline_sequence ( count : usize ) -> Vec < FeePoint > {
2527 let config = FeeModelConfig {
2628 spike_probability : 0.0 ,
2729 seed : Some ( 1 ) ,
2830 ..Default :: default ( )
2931 } ;
3032 FeeModel :: new ( config) . generate ( count, 0 )
3133}
32- //! Test helpers: deterministic fee sequence generator and SQLite fixture builder.
33-
34- use rand :: { Rng , SeedableRng } ;
35- use rand:: rngs:: SmallRng ;
3634
3735/// Generates a deterministic fee sequence from a seed for repeatable tests.
3836pub struct FeeGenerator {
@@ -58,21 +56,21 @@ impl FeeGenerator {
5856
5957/// A simple in-memory fee record for fixture use.
6058#[ derive( Debug , Clone , PartialEq ) ]
61- pub struct FeeRecord {
59+ pub struct FixtureFeeRecord {
6260 pub timestamp : u64 ,
6361 pub fee_amount : u64 ,
6462 pub ledger_sequence : u64 ,
6563 pub tx_hash : String ,
6664}
6765
68- /// Builds a vec of FeeRecord fixtures for testing.
66+ /// Builds a vec of FixtureFeeRecord fixtures for testing.
6967pub struct FixtureBuilder ;
7068
7169impl FixtureBuilder {
7270 /// Build `n` sequential fee records starting at `base_timestamp`.
73- pub fn build ( n : usize , base_timestamp : u64 , base_fee : u64 ) -> Vec < FeeRecord > {
71+ pub fn build ( n : usize , base_timestamp : u64 , base_fee : u64 ) -> Vec < FixtureFeeRecord > {
7472 ( 0 ..n)
75- . map ( |i| FeeRecord {
73+ . map ( |i| FixtureFeeRecord {
7674 timestamp : base_timestamp + i as u64 ,
7775 fee_amount : base_fee,
7876 ledger_sequence : 1000 + i as u64 ,
@@ -97,6 +95,9 @@ mod tests {
9795 let records = FixtureBuilder :: build ( 3 , 1000 , 100 ) ;
9896 assert_eq ! ( records[ 0 ] . timestamp, 1000 ) ;
9997 assert_eq ! ( records[ 2 ] . timestamp, 1002 ) ;
98+ }
99+
100+ #[ test]
100101 fn same_seed_produces_same_sequence ( ) {
101102 let a = FeeGenerator :: new ( 42 ) . generate ( 10 , 100 , 1000 ) ;
102103 let b = FeeGenerator :: new ( 42 ) . generate ( 10 , 100 , 1000 ) ;
0 commit comments