diff options
Diffstat (limited to 'third_party/rust/unicode-xid/src/tests.rs')
-rw-r--r-- | third_party/rust/unicode-xid/src/tests.rs | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/third_party/rust/unicode-xid/src/tests.rs b/third_party/rust/unicode-xid/src/tests.rs new file mode 100644 index 0000000000..97539eaa95 --- /dev/null +++ b/third_party/rust/unicode-xid/src/tests.rs @@ -0,0 +1,95 @@ +// Copyright 2012-2015 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or +// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license +// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +#[cfg(feature = "bench")] +use std::iter; +#[cfg(feature = "bench")] +use std::prelude::v1::*; +#[cfg(feature = "bench")] +use test::Bencher; + +#[cfg(feature = "bench")] +use UnicodeXID; + +#[cfg(feature = "bench")] +#[bench] +fn cargo_is_xid_start(b: &mut Bencher) { + let string = iter::repeat('a').take(4096).collect::<String>(); + + b.bytes = string.len() as u64; + b.iter(|| string.chars().all(super::UnicodeXID::is_xid_start)); +} + +#[cfg(feature = "bench")] +#[bench] +fn stdlib_is_xid_start(b: &mut Bencher) { + let string = iter::repeat('a').take(4096).collect::<String>(); + + b.bytes = string.len() as u64; + b.iter(|| string.chars().all(char::is_xid_start)); +} + +#[cfg(feature = "bench")] +#[bench] +fn cargo_xid_continue(b: &mut Bencher) { + let string = iter::repeat('a').take(4096).collect::<String>(); + + b.bytes = string.len() as u64; + b.iter(|| string.chars().all(super::UnicodeXID::is_xid_continue)); +} + +#[cfg(feature = "bench")] +#[bench] +fn stdlib_xid_continue(b: &mut Bencher) { + let string = iter::repeat('a').take(4096).collect::<String>(); + + b.bytes = string.len() as u64; + b.iter(|| string.chars().all(char::is_xid_continue)); +} + +#[test] +fn test_is_xid_start() { + let chars = ['A', 'Z', 'a', 'z', '\u{1000d}', '\u{10026}']; + + for ch in &chars { + assert!(super::UnicodeXID::is_xid_start(*ch), "{}", ch); + } +} + +#[test] +fn test_is_not_xid_start() { + let chars = [ + '\x00', '\x01', '0', '9', ' ', '[', '<', '{', '(', '\u{02c2}', '\u{ffff}', + ]; + + for ch in &chars { + assert!(!super::UnicodeXID::is_xid_start(*ch), "{}", ch); + } +} + +#[test] +fn test_is_xid_continue() { + let chars = ['0', '9', 'A', 'Z', 'a', 'z', '_', '\u{1000d}', '\u{10026}']; + + for ch in &chars { + assert!(super::UnicodeXID::is_xid_continue(*ch), "{}", ch); + } +} + +#[test] +fn test_is_not_xid_continue() { + let chars = [ + '\x00', '\x01', ' ', '[', '<', '{', '(', '\u{02c2}', '\u{ffff}', + ]; + + for &ch in &chars { + assert!(!super::UnicodeXID::is_xid_continue(ch), "{}", ch); + } +} |