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/>
*/

use super::validate_seed;

#[test]
fn is_zero() {
   assert! ( validate_seed(0) == false )
}

#[test]
fn is_negative() {
   assert! ( validate_seed(-50) == false )
}

#[test]
fn is_M() {
   assert! ( validate_seed(2147483647) == false )
}

#[test]
fn is_neg_M() {
   assert! ( validate_seed(-2147483647) == false )
}

#[test]
fn check_seed_50() {
   assert! ( validate_seed(50) == true )
}

//   P A N I C     T E S T S

use super::{MINSTD, MINSTD0, M};

#[test]
#[should_panic]
fn seed_with_zero() {
   MINSTD::seed(0);
}

#[test]
#[should_panic]
fn seed0_with_zero() {
   MINSTD0::seed(0);
}

#[test]
#[should_panic]
fn seed_with_negative() {
   MINSTD::seed(-10);
}

#[test]
#[should_panic]
fn seed0_with_negative() {
   MINSTD0::seed(-10);
}

#[test]
#[should_panic]
fn seed_with_M() {
   MINSTD::seed(M);
}

#[test]
#[should_panic]
fn seed0_with_M() {
   MINSTD0::seed(M);
}