@@ -128,14 +128,17 @@ pub fn kpss_test(y: &[f64], cfg: KPSSConfig) -> KPSSResult {
128128
129129#[ cfg( test) ]
130130mod tests {
131+ use rand:: SeedableRng ;
132+ use rand:: rngs:: StdRng ;
133+
131134 use super :: KPSSConfig ;
132135 use super :: kpss_test;
133136 use crate :: distributions:: normal:: SimdNormal ;
134137
135- fn simulate_ar1 ( phi : f64 , n : usize ) -> Vec < f64 > {
138+ fn simulate_ar1 ( phi : f64 , n : usize , seed : u64 ) -> Vec < f64 > {
136139 let innovations = {
137140 let dist = SimdNormal :: < f64 > :: new ( 0.0 , 1.0 ) ;
138- let mut rng = rand :: rng ( ) ;
141+ let mut rng = StdRng :: seed_from_u64 ( seed ) ;
139142 let mut eps = vec ! [ 0.0 ; n] ;
140143 dist. fill_slice ( & mut rng, & mut eps) ;
141144 eps
@@ -148,10 +151,10 @@ mod tests {
148151 x
149152 }
150153
151- fn simulate_random_walk ( n : usize ) -> Vec < f64 > {
154+ fn simulate_random_walk ( n : usize , seed : u64 ) -> Vec < f64 > {
152155 let innovations = {
153156 let dist = SimdNormal :: < f64 > :: new ( 0.0 , 1.0 ) ;
154- let mut rng = rand :: rng ( ) ;
157+ let mut rng = StdRng :: seed_from_u64 ( seed ) ;
155158 let mut eps = vec ! [ 0.0 ; n] ;
156159 dist. fill_slice ( & mut rng, & mut eps) ;
157160 eps
@@ -166,7 +169,7 @@ mod tests {
166169
167170 #[ test]
168171 fn kpss_keeps_stationarity_for_ar1 ( ) {
169- let x = simulate_ar1 ( 0.75 , 2000 ) ;
172+ let x = simulate_ar1 ( 0.75 , 2000 , 0x4B505353 ) ;
170173 let res = kpss_test ( & x, KPSSConfig :: default ( ) ) ;
171174 assert ! (
172175 !res. reject_stationarity,
@@ -176,7 +179,7 @@ mod tests {
176179
177180 #[ test]
178181 fn kpss_rejects_stationarity_for_random_walk ( ) {
179- let x = simulate_random_walk ( 2000 ) ;
182+ let x = simulate_random_walk ( 2000 , 0x4B505354 ) ;
180183 let res = kpss_test ( & x, KPSSConfig :: default ( ) ) ;
181184 assert ! (
182185 res. reject_stationarity,
0 commit comments