diff options
| author | chansuke <chansuke@georepublic.de> | 2019-06-06 04:20:49 +0900 |
|---|---|---|
| committer | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2019-06-16 14:17:01 +0300 |
| commit | db55aafd72d88c64a8fe3959625edcd207f0d25d (patch) | |
| tree | 0f02e9b0c3517dfd2090ff0933a4ab74bf50e805 /src/libserialize/hex/tests.rs | |
| parent | 46e622beb96929b0904a7e6031e29e1b03dcb728 (diff) | |
| download | rust-db55aafd72d88c64a8fe3959625edcd207f0d25d.tar.gz rust-db55aafd72d88c64a8fe3959625edcd207f0d25d.zip | |
Separate libserialize module
Diffstat (limited to 'src/libserialize/hex/tests.rs')
| -rw-r--r-- | src/libserialize/hex/tests.rs | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/src/libserialize/hex/tests.rs b/src/libserialize/hex/tests.rs new file mode 100644 index 00000000000..471912c11d0 --- /dev/null +++ b/src/libserialize/hex/tests.rs @@ -0,0 +1,74 @@ +extern crate test; +use test::Bencher; +use crate::hex::{FromHex, ToHex}; + +#[test] +pub fn test_to_hex() { + assert_eq!("foobar".as_bytes().to_hex(), "666f6f626172"); +} + +#[test] +pub fn test_from_hex_okay() { + assert_eq!("666f6f626172".from_hex().unwrap(), + b"foobar"); + assert_eq!("666F6F626172".from_hex().unwrap(), + b"foobar"); +} + +#[test] +pub fn test_from_hex_odd_len() { + assert!("666".from_hex().is_err()); + assert!("66 6".from_hex().is_err()); +} + +#[test] +pub fn test_from_hex_invalid_char() { + assert!("66y6".from_hex().is_err()); +} + +#[test] +pub fn test_from_hex_ignores_whitespace() { + assert_eq!("666f 6f6\r\n26172 ".from_hex().unwrap(), + b"foobar"); +} + +#[test] +pub fn test_to_hex_all_bytes() { + for i in 0..256 { + assert_eq!([i as u8].to_hex(), format!("{:02x}", i as usize)); + } +} + +#[test] +pub fn test_from_hex_all_bytes() { + for i in 0..256 { + let ii: &[u8] = &[i as u8]; + assert_eq!(format!("{:02x}", i as usize).from_hex() + .unwrap(), + ii); + assert_eq!(format!("{:02X}", i as usize).from_hex() + .unwrap(), + ii); + } +} + +#[bench] +pub fn bench_to_hex(b: &mut Bencher) { + let s = "イロハニホヘト チリヌルヲ ワカヨタレソ ツネナラム \ + ウヰノオクヤマ ケフコエテ アサキユメミシ ヱヒモセスン"; + b.iter(|| { + s.as_bytes().to_hex(); + }); + b.bytes = s.len() as u64; +} + +#[bench] +pub fn bench_from_hex(b: &mut Bencher) { + let s = "イロハニホヘト チリヌルヲ ワカヨタレソ ツネナラム \ + ウヰノオクヤマ ケフコエテ アサキユメミシ ヱヒモセスン"; + let sb = s.as_bytes().to_hex(); + b.iter(|| { + sb.from_hex().unwrap(); + }); + b.bytes = sb.len() as u64; +} |
