aboutsummaryrefslogtreecommitdiff
path: root/vendor/ryu/tests/exhaustive.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/ryu/tests/exhaustive.rs')
-rw-r--r--vendor/ryu/tests/exhaustive.rs52
1 files changed, 0 insertions, 52 deletions
diff --git a/vendor/ryu/tests/exhaustive.rs b/vendor/ryu/tests/exhaustive.rs
deleted file mode 100644
index 569bcff..0000000
--- a/vendor/ryu/tests/exhaustive.rs
+++ /dev/null
@@ -1,52 +0,0 @@
-#![cfg(exhaustive)]
-
-use std::str;
-use std::sync::atomic::{AtomicUsize, Ordering};
-use std::sync::Arc;
-use std::thread;
-
-#[test]
-fn test_exhaustive() {
- const BATCH_SIZE: u32 = 1_000_000;
- let counter = Arc::new(AtomicUsize::new(0));
- let finished = Arc::new(AtomicUsize::new(0));
-
- let mut workers = Vec::new();
- for _ in 0..num_cpus::get() {
- let counter = counter.clone();
- let finished = finished.clone();
- workers.push(thread::spawn(move || loop {
- let batch = counter.fetch_add(1, Ordering::Relaxed) as u32;
- if batch > u32::max_value() / BATCH_SIZE {
- return;
- }
-
- let min = batch * BATCH_SIZE;
- let max = if batch == u32::max_value() / BATCH_SIZE {
- u32::max_value()
- } else {
- min + BATCH_SIZE - 1
- };
-
- let mut bytes = [0u8; 24];
- let mut buffer = ryu::Buffer::new();
- for u in min..=max {
- let f = f32::from_bits(u);
- if !f.is_finite() {
- continue;
- }
- let n = unsafe { ryu::raw::format32(f, &mut bytes[0]) };
- assert_eq!(Ok(Ok(f)), str::from_utf8(&bytes[..n]).map(str::parse));
- assert_eq!(Ok(f), buffer.format_finite(f).parse());
- }
-
- let increment = (max - min + 1) as usize;
- let update = finished.fetch_add(increment, Ordering::Relaxed);
- println!("{}", update + increment);
- }));
- }
-
- for w in workers {
- w.join().unwrap();
- }
-}