minstd 0.9.4

MINSTD minimal standard random number generator
Documentation
/*
MINSTD Multiplicative congruential generator
implementation by Radim Kolar <hsn@sendmail.cz> 2024
https://gitlab.com/hsn10/minstd

This is free and unencumbered software released into the public domain.
SPDX-License-Identifier: Unlicense OR CC0-1.0

For more information, please refer to <http://unlicense.org/>
*/


#[test]
fn mcg_10k() {
   let mut g: u32 = 1;
   for _ in 0..10000 {
      bsd::mcg16807(&mut g);
   }
   assert_eq!(g, 1043618065);
}

#[test]
fn mcg_Schrage() {
   let mut g: u32 = 1;
   for _ in 0..10000 {
      bsd::mcg_Schrage(&mut g);
   }
   assert_eq!(g, 1043618065);
}

#[test]
fn mcg_Park_Miller() {
   let mut g: u32 = 1;
   for _ in 0..10000 {
      bsd::Park_Miller(&mut g);
   }
   assert_eq!(g, 1043618065);
}

#[test]
fn mcg_Whittle() {
   let mut g: u32 = 1;
   for _ in 0..10000 {
      bsd::Whittle(&mut g);
   }
   assert_eq!(g, 1043618065);
}