提交 7e7411e6 编写于 作者: T Tim Chevalier

Demode rand

上级 52ad2750
//! Random number generation
// NB: transitional, de-mode-ing.
#[warn(deprecated_mode)];
#[forbid(deprecated_pattern)];
#[allow(non_camel_case_types)] // runtime type
enum rctx {}
......@@ -120,7 +124,7 @@ fn gen_char() -> char {
/**
* Return a char randomly chosen from chars, failing if chars is empty
*/
fn gen_char_from(chars: ~str) -> char {
fn gen_char_from(chars: &str) -> char {
assert !chars.is_empty();
self.choose(str::chars(chars))
}
......@@ -272,8 +276,8 @@ pub fn Rng() -> Rng {
* all other generators constructed with the same seed. The seed may be any
* length.
*/
pub fn seeded_rng(seed: ~[u8]) -> Rng {
@RandRes(rustrt::rand_new_seeded(seed)) as Rng
pub fn seeded_rng(seed: &~[u8]) -> Rng {
@RandRes(rustrt::rand_new_seeded(*seed)) as Rng
}
type XorShiftState = {
......@@ -310,8 +314,8 @@ pub mod tests {
#[test]
pub fn rng_seeded() {
let seed = rand::seed();
let ra = rand::seeded_rng(seed);
let rb = rand::seeded_rng(seed);
let ra = rand::seeded_rng(&seed);
let rb = rand::seeded_rng(&seed);
assert ra.gen_str(100u) == rb.gen_str(100u);
}
......@@ -319,15 +323,15 @@ pub fn rng_seeded() {
pub fn rng_seeded_custom_seed() {
// much shorter than generated seeds which are 1024 bytes
let seed = ~[2u8, 32u8, 4u8, 32u8, 51u8];
let ra = rand::seeded_rng(seed);
let rb = rand::seeded_rng(seed);
let ra = rand::seeded_rng(&seed);
let rb = rand::seeded_rng(&seed);
assert ra.gen_str(100u) == rb.gen_str(100u);
}
#[test]
pub fn rng_seeded_custom_seed2() {
let seed = ~[2u8, 32u8, 4u8, 32u8, 51u8];
let ra = rand::seeded_rng(seed);
let ra = rand::seeded_rng(&seed);
// Regression test that isaac is actually using the above vector
let r = ra.next();
error!("%?", r);
......
......@@ -154,7 +154,7 @@ fn main(++args: ~[~str]) {
let seed = ~[1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
{
let rng = rand::seeded_rng(copy seed);
let rng = rand::seeded_rng(&seed);
let mut results = empty_results();
int_benchmarks::<map::HashMap<uint, uint>>(
map::HashMap, rng, num_keys, &mut results);
......@@ -164,7 +164,7 @@ fn main(++args: ~[~str]) {
}
{
let rng = rand::seeded_rng(copy seed);
let rng = rand::seeded_rng(&seed);
let mut results = empty_results();
int_benchmarks::<@Mut<LinearMap<uint, uint>>>(
|| @Mut(LinearMap()),
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册