Rewrite test in proptest, remove quickcheck dep
This commit is contained in:
parent
8eb2d24704
commit
b474abdb9b
|
@ -2,15 +2,6 @@
|
||||||
# It is not intended for manual editing.
|
# It is not intended for manual editing.
|
||||||
version = 3
|
version = 3
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "aho-corasick"
|
|
||||||
version = "0.7.18"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"
|
|
||||||
dependencies = [
|
|
||||||
"memchr",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "aiken"
|
name = "aiken"
|
||||||
version = "0.0.9"
|
version = "0.0.9"
|
||||||
|
@ -139,16 +130,6 @@ version = "0.4.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "129eabb7b0b78644a3a7e7cf220714aba47463bb281f69fa7a71ca5d12564cca"
|
checksum = "129eabb7b0b78644a3a7e7cf220714aba47463bb281f69fa7a71ca5d12564cca"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "env_logger"
|
|
||||||
version = "0.8.4"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3"
|
|
||||||
dependencies = [
|
|
||||||
"log",
|
|
||||||
"regex",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "fastrand"
|
name = "fastrand"
|
||||||
version = "1.7.0"
|
version = "1.7.0"
|
||||||
|
@ -163,8 +144,7 @@ name = "flat-rs"
|
||||||
version = "0.0.7"
|
version = "0.0.7"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"quickcheck",
|
"proptest",
|
||||||
"quickcheck_macros",
|
|
||||||
"thiserror",
|
"thiserror",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -264,12 +244,6 @@ dependencies = [
|
||||||
"cfg-if",
|
"cfg-if",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "memchr"
|
|
||||||
version = "2.5.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "minicbor"
|
name = "minicbor"
|
||||||
version = "0.17.1"
|
version = "0.17.1"
|
||||||
|
@ -474,28 +448,6 @@ version = "2.0.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3"
|
checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "quickcheck"
|
|
||||||
version = "1.0.3"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "588f6378e4dd99458b60ec275b4477add41ce4fa9f64dcba6f15adccb19b50d6"
|
|
||||||
dependencies = [
|
|
||||||
"env_logger",
|
|
||||||
"log",
|
|
||||||
"rand",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "quickcheck_macros"
|
|
||||||
version = "1.0.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "b22a693222d716a9587786f37ac3f6b4faedb5b80c23914e7303ff5a1d8016e9"
|
|
||||||
dependencies = [
|
|
||||||
"proc-macro2",
|
|
||||||
"quote",
|
|
||||||
"syn",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "quote"
|
name = "quote"
|
||||||
version = "1.0.18"
|
version = "1.0.18"
|
||||||
|
@ -553,17 +505,6 @@ dependencies = [
|
||||||
"bitflags",
|
"bitflags",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "regex"
|
|
||||||
version = "1.5.6"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "d83f127d94bdbcda4c8cc2e50f6f84f4b611f69c902699ca385a39c3a75f9ff1"
|
|
||||||
dependencies = [
|
|
||||||
"aho-corasick",
|
|
||||||
"memchr",
|
|
||||||
"regex-syntax",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "regex-syntax"
|
name = "regex-syntax"
|
||||||
version = "0.6.26"
|
version = "0.6.26"
|
||||||
|
|
|
@ -15,5 +15,4 @@ anyhow = "1.0.57"
|
||||||
thiserror = "1.0.31"
|
thiserror = "1.0.31"
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
quickcheck = "1"
|
proptest = "1.0.0"
|
||||||
quickcheck_macros = "1"
|
|
||||||
|
|
|
@ -1,15 +1,14 @@
|
||||||
#[cfg(test)]
|
|
||||||
extern crate quickcheck;
|
|
||||||
|
|
||||||
#[cfg(test)]
|
|
||||||
#[macro_use(quickcheck)]
|
|
||||||
extern crate quickcheck_macros;
|
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod test {
|
mod test {
|
||||||
use flat_rs::filler::Filler;
|
use flat_rs::filler::Filler;
|
||||||
use flat_rs::{decode, encode};
|
use flat_rs::{decode, encode};
|
||||||
use quickcheck::Arbitrary;
|
use proptest::prelude::*;
|
||||||
|
|
||||||
|
prop_compose! {
|
||||||
|
fn arb_big_vec()(size in 255..300, element in any::<u8>()) -> Vec<u8> {
|
||||||
|
(0..size).map(|_| element).collect()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn encode_bool() {
|
fn encode_bool() {
|
||||||
|
@ -41,83 +40,70 @@ mod test {
|
||||||
assert_eq!(decoded, 3_u8);
|
assert_eq!(decoded, 3_u8);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[quickcheck]
|
proptest! {
|
||||||
fn encode_isize(x: isize) -> bool {
|
#[test]
|
||||||
|
fn encode_isize(x: isize) {
|
||||||
let bytes = encode(&x).unwrap();
|
let bytes = encode(&x).unwrap();
|
||||||
let decoded: isize = decode(&bytes).unwrap();
|
let decoded: isize = decode(&bytes).unwrap();
|
||||||
decoded == x
|
assert_eq!(decoded, x);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[quickcheck]
|
#[test]
|
||||||
fn encode_usize(x: usize) -> bool {
|
fn encode_usize(x: usize) {
|
||||||
let bytes = encode(&x).unwrap();
|
let bytes = encode(&x).unwrap();
|
||||||
let decoded: usize = decode(&bytes).unwrap();
|
let decoded: usize = decode(&bytes).unwrap();
|
||||||
decoded == x
|
assert_eq!(decoded, x);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[quickcheck]
|
#[test]
|
||||||
fn encode_char(c: char) -> bool {
|
fn encode_char(c: char) {
|
||||||
let bytes = encode(&c).unwrap();
|
let bytes = encode(&c).unwrap();
|
||||||
let decoded: char = decode(&bytes).unwrap();
|
let decoded: char = decode(&bytes).unwrap();
|
||||||
decoded == c
|
assert_eq!(decoded, c);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[quickcheck]
|
#[test]
|
||||||
fn encode_string(str: String) -> bool {
|
fn encode_string(str: String) {
|
||||||
let bytes = encode(&str).unwrap();
|
let bytes = encode(&str).unwrap();
|
||||||
let decoded: String = decode(&bytes).unwrap();
|
let decoded: String = decode(&bytes).unwrap();
|
||||||
decoded == str
|
assert_eq!(decoded, str);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[quickcheck]
|
#[test]
|
||||||
fn encode_vec_u8(xs: Vec<u8>) -> bool {
|
fn encode_vec_u8(xs: Vec<u8>) {
|
||||||
let bytes = encode(&xs).unwrap();
|
let bytes = encode(&xs).unwrap();
|
||||||
let decoded: Vec<u8> = decode(&bytes).unwrap();
|
let decoded: Vec<u8> = decode(&bytes).unwrap();
|
||||||
decoded == xs
|
assert_eq!(decoded, xs);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone, Debug)]
|
#[test]
|
||||||
struct BigChunk(Vec<u8>);
|
fn encode_big_vec_u8(xs in arb_big_vec()) {
|
||||||
|
|
||||||
impl Arbitrary for BigChunk {
|
|
||||||
fn arbitrary(g: &mut quickcheck::Gen) -> Self {
|
|
||||||
let num_of_element = g.choose(&[257]).unwrap();
|
|
||||||
|
|
||||||
let vec = (0..*num_of_element).map(|_| u8::arbitrary(g)).collect();
|
|
||||||
|
|
||||||
BigChunk(vec)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[quickcheck]
|
|
||||||
fn encode_big_vec_u8(xs: BigChunk) -> bool {
|
|
||||||
let xs = xs.0;
|
|
||||||
let bytes = encode(&xs).unwrap();
|
let bytes = encode(&xs).unwrap();
|
||||||
let decoded: Vec<u8> = decode(&bytes).unwrap();
|
let decoded: Vec<u8> = decode(&bytes).unwrap();
|
||||||
decoded == xs
|
assert_eq!(decoded, xs);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[quickcheck]
|
#[test]
|
||||||
fn encode_arr_u8(xs: Vec<u8>) -> bool {
|
fn encode_arr_u8(xs: Vec<u8>) {
|
||||||
let bytes = encode(&xs.as_slice()).unwrap();
|
let bytes = encode(&xs.as_slice()).unwrap();
|
||||||
let decoded: Vec<u8> = decode(&bytes).unwrap();
|
let decoded: Vec<u8> = decode(&bytes).unwrap();
|
||||||
decoded == xs
|
assert_eq!(decoded, xs);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[quickcheck]
|
#[test]
|
||||||
fn encode_big_arr_u8(xs: BigChunk) -> bool {
|
fn encode_big_arr_u8(xs in arb_big_vec()) {
|
||||||
let xs = xs.0;
|
|
||||||
let bytes = encode(&xs.as_slice()).unwrap();
|
let bytes = encode(&xs.as_slice()).unwrap();
|
||||||
let decoded: Vec<u8> = decode(&bytes).unwrap();
|
let decoded: Vec<u8> = decode(&bytes).unwrap();
|
||||||
decoded == xs
|
assert_eq!(decoded, xs);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[quickcheck]
|
#[test]
|
||||||
fn encode_boxed(c: char) -> bool {
|
fn encode_boxed(c: char) {
|
||||||
let boxed = Box::new(c);
|
let boxed = Box::new(c);
|
||||||
let bytes = encode(&boxed).unwrap();
|
let bytes = encode(&boxed).unwrap();
|
||||||
let decoded: char = decode(&bytes).unwrap();
|
let decoded: char = decode(&bytes).unwrap();
|
||||||
decoded == c
|
assert_eq!(decoded, c);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
|
|
@ -1,25 +1,21 @@
|
||||||
#[cfg(test)]
|
|
||||||
extern crate quickcheck;
|
|
||||||
|
|
||||||
#[cfg(test)]
|
|
||||||
#[macro_use(quickcheck)]
|
|
||||||
extern crate quickcheck_macros;
|
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod test {
|
mod test {
|
||||||
use flat_rs::zigzag::{to_isize, to_usize};
|
use flat_rs::zigzag::{to_isize, to_usize};
|
||||||
|
use proptest::prelude::*;
|
||||||
|
|
||||||
#[quickcheck]
|
proptest! {
|
||||||
fn zigzag(i: isize) -> bool {
|
#[test]
|
||||||
|
fn zigzag(i: isize) {
|
||||||
let u = to_usize(i);
|
let u = to_usize(i);
|
||||||
let converted_i = to_isize(u);
|
let converted_i = to_isize(u);
|
||||||
converted_i == i
|
assert_eq!(converted_i, i);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[quickcheck]
|
#[test]
|
||||||
fn zagzig(u: usize) -> bool {
|
fn zagzig(u: usize) {
|
||||||
let i = to_isize(u);
|
let i = to_isize(u);
|
||||||
let converted_u = to_usize(i);
|
let converted_u = to_usize(i);
|
||||||
converted_u == u
|
assert_eq!(converted_u, u);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue