#[cfg(test)] mod api1; #[cfg(test)] mod api4; pub mod archapp; pub mod binnedbinary; pub mod binnedjson; #[cfg(test)] mod events; #[cfg(test)] mod timeweightedjson; use bytes::BytesMut; use err::Error; use std::future::Future; fn f32_iter_cmp_near(a: A, b: B) -> bool where A: IntoIterator, B: IntoIterator, { let mut a = a.into_iter(); let mut b = b.into_iter(); loop { let x = a.next(); let y = b.next(); if let (Some(x), Some(y)) = (x, y) { let x = { let mut a = x.to_ne_bytes(); a[0] &= 0xf0; f32::from_ne_bytes(a) }; let y = { let mut a = y.to_ne_bytes(); a[0] &= 0xf0; f32::from_ne_bytes(a) }; if x != y { return false; } } else if x.is_some() || y.is_some() { return false; } else { return true; } } } #[test] fn test_f32_iter_cmp_near() { let a = [-127.553e17]; let b = [-127.554e17]; assert_eq!(f32_iter_cmp_near(a, b), false); let a = [-127.55300e17]; let b = [-127.55301e17]; assert_eq!(f32_iter_cmp_near(a, b), true); } fn run_test(f: F) -> Result<(), Error> where F: Future> + Send, { let runtime = taskrun::get_runtime(); let _g = runtime.enter(); runtime.block_on(f) //let jh = tokio::spawn(f); //jh.await; } #[test] fn bufs() { use bytes::{Buf, BufMut}; let mut buf = BytesMut::with_capacity(1024); assert!(buf.as_mut().len() == 0); buf.put_u32_le(123); assert!(buf.as_mut().len() == 4); let mut b2 = buf.split_to(4); assert!(b2.capacity() == 4); b2.advance(2); assert!(b2.capacity() == 2); b2.advance(2); assert!(b2.capacity() == 0); assert!(buf.capacity() == 1020); assert!(buf.remaining() == 0); assert!(buf.remaining_mut() >= 1020); assert!(buf.capacity() == 1020); }