Adds more unit tests
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2022-06-11 20:51:37 +02:00
parent 0c076dd711
commit 56e1237c22
24 changed files with 306 additions and 42 deletions

View File

@@ -80,7 +80,8 @@ mod tests {
#[cfg_attr(miri, ignore)]
fn create_random() {
let _default = Random::default();
let _empty = Random::new(100);
let empty = Random::new(100);
assert_eq!(empty.get_seed(), 100);
}
#[test]
@@ -96,6 +97,19 @@ mod tests {
assert_eq!(v.get(), 580236580);
}
#[test]
fn get_random_unsigned_with_seed() {
let mut v = Random::new(10);
assert_eq!(v.get_unsigned(), 1755576946);
assert_eq!(v.get_unsigned(), 1254514019);
assert_eq!(v.get_unsigned(), 1735834837);
assert_eq!(v.get_unsigned(), 51079449);
assert_eq!(v.get_unsigned(), 506997516);
assert_eq!(v.get_unsigned(), 4121439675);
assert_eq!(v.get_unsigned(), 683138464);
assert_eq!(v.get_unsigned(), 580236580);
}
#[test]
fn get_random_with_limit_with_seed() {
let mut v = Random::new(10);
@@ -119,6 +133,12 @@ mod tests {
assert_eq!(v.get_max(2), 1);
}
#[test]
fn get_random_unsigned_with_limit_with_seed() {
let mut v = Random::new(10);
assert_eq!(v.get_max_unsigned(4121439675), 1684647164);
}
#[test]
fn get_random_with_limit_with_range() {
let mut v = Random::new(10);
@@ -132,6 +152,33 @@ mod tests {
assert_eq!(v.get_between(10, 30), 12);
}
#[test]
fn get_random_unsigned_with_limit_with_range() {
let mut v = Random::new(10);
assert_eq!(v.get_between_unsigned(4121439675, 4121439678), 4121439676);
}
#[test]
fn get_random_float() {
let mut v = Random::new(10);
assert_eq!(v.get_float(), 0.2920893);
}
#[test]
fn get_random_double() {
let mut v = Random::new(10);
assert_eq!(v.get_double(), 0.2920893066117427);
}
#[test]
fn get_random_clone_then_continue() {
let mut v = Random::new(10);
assert_eq!(v.get_unsigned(), 1755576946);
let mut clone = v.clone();
assert_eq!(clone.get_unsigned(), 1254514019);
assert_eq!(v.get_unsigned(), 1254514019);
}
#[test]
#[cfg_attr(miri, ignore)]
fn check_random_distribution() {

View File

@@ -109,3 +109,36 @@ const CRC_TABLE: &[u32] = &[
0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6, 0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF,
0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94, 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D,
];
#[cfg(test)]
mod tests {
extern crate test;
use crate::StringKey;
#[test]
fn create_empty_stringkey() {
let sk = StringKey::new("");
assert_eq!(sk.str(), "");
assert_eq!(sk.hash(), 0);
assert_eq!(sk.hash(), StringKey::get_hash_const(b""));
}
#[test]
fn create_stringkey_foo() {
let sk = StringKey::new("foo");
assert_eq!(sk.str(), "foo");
assert_eq!(sk.hash(), 2356372769);
assert_eq!(sk.hash(), StringKey::get_hash_const(b"foo"));
assert_eq!(sk.hash(), StringKey::get_hash_const(b"FOo"));
}
#[test]
fn create_stringkey_bar() {
let sk = StringKey::new("bar");
assert_eq!(sk.str(), "bar");
assert_eq!(sk.hash(), 1996459178);
assert_eq!(sk.hash(), StringKey::get_hash_const(b"bar"));
assert_eq!(sk.hash(), StringKey::get_hash_const(b"baR"));
}
}