Radish alpha
h
Radicle Heartwood Protocol & Stack
Radicle
Git (anonymous pull)
Log in to clone via SSH
test: add alphanumeric generator
Fintan Halpenny committed 8 months ago
commit 86119473b7c17e8f1090d52f79a2433089f1825f
parent 8953ec4c87a4d69c92f78c649b82c9d009822017
1 file changed +19 -0
modified crates/radicle/src/test/arbitrary.rs
@@ -84,6 +84,25 @@ pub fn nonempty_storage(size: usize) -> MockStorage {
    storage
}

+
/// Generate a `String` of length `size`, only containing alphanumeric
+
/// characters, i.e. [A-Za-z0-9]
+
pub fn alphanumeric(size: usize) -> String {
+
    let mut s = String::with_capacity(size);
+
    for _ in 0..size {
+
        let choice = gen::<u8>(size).clamp(0, 3);
+
        let c = match choice {
+
            // Generate A-Z
+
            0 => gen::<u8>(size).clamp(0x41, 0x5A),
+
            // Generate a-z
+
            1 => gen::<u8>(size).clamp(0x61, 0x7A),
+
            // Generate 0-9
+
            _ => gen::<u8>(size).clamp(0x30, 0x39),
+
        };
+
        s.push(char::from(c));
+
    }
+
    s
+
}
+

pub fn gen<T: Arbitrary>(size: usize) -> T {
    let mut gen = qcheck::Gen::new(size);