]>
git.proxmox.com Git - rustc.git/blob - vendor/bytecount/tests/check.rs
1 extern crate bytecount
;
3 extern crate quickcheck
;
8 num_chars
, naive_num_chars
,
12 fn random_bytes(len
: usize) -> Vec
<u8> {
13 let mut result
= vec
![0; len
];
14 rand
::thread_rng().fill_bytes(&mut result
);
19 fn check_count_correct(x
: (Vec
<u8>, u8)) -> bool
{
20 let (haystack
, needle
) = x
;
21 count(&haystack
, needle
) == naive_count(&haystack
, needle
)
26 fn check_count_large() {
27 let haystack
= vec
![0u8; if cfg
!(miri
) { 2_000 }
else { 10_000_000 }
];
28 assert_eq
!(naive_count(&haystack
, 0), count(&haystack
, 0));
29 assert_eq
!(naive_count(&haystack
, 1), count(&haystack
, 1));
33 fn check_count_large_rand() {
34 let haystack
= random_bytes(if cfg
!(miri
) { 200 }
else { 100_000 }
);
36 assert_eq
!(naive_count(&haystack
, i
), count(&haystack
, i
));
41 fn check_count_some() {
42 let haystack
= vec
![0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68];
44 assert_eq
!(count(&haystack
, needle
), naive_count(&haystack
, needle
));
48 fn check_count_overflow() {
49 let haystack
= vec
![0, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
51 assert_eq
!(count(&haystack
, needle
), naive_count(&haystack
, needle
));
55 fn check_count_overflow_many() {
56 let string
= [b'x'
; 20000];
58 assert_eq
!(count(&string
[..i
], b'x'
), i
);
65 fn check_num_chars_correct(haystack
: Vec
<u8>) -> bool
{
66 num_chars(&haystack
) == naive_num_chars(&haystack
)
71 fn check_num_chars_large() {
72 let haystack
= vec
![0u8; if cfg
!(miri
) { 2_000 }
else { 10_000_000 }
];
73 assert_eq
!(naive_num_chars(&haystack
), num_chars(&haystack
));
74 assert_eq
!(naive_num_chars(&haystack
), num_chars(&haystack
));
78 fn check_num_chars_some() {
79 let haystack
= vec
![0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68];
80 assert_eq
!(num_chars(&haystack
), naive_num_chars(&haystack
));
84 fn check_num_chars_overflow() {
85 let haystack
= vec
![0, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
86 assert_eq
!(num_chars(&haystack
), naive_num_chars(&haystack
));
90 fn check_num_chars_overflow_many() {
91 let string
= [b'x'
; 20000];
93 assert_eq
!(num_chars(&string
[..i
]), i
);