aboutsummaryrefslogtreecommitdiff
path: root/vendor/rayon/tests/octillion.rs
diff options
context:
space:
mode:
authorValentin Popov <valentin@popov.link>2024-07-19 15:37:58 +0300
committerValentin Popov <valentin@popov.link>2024-07-19 15:37:58 +0300
commita990de90fe41456a23e58bd087d2f107d321f3a1 (patch)
tree15afc392522a9e85dc3332235e311b7d39352ea9 /vendor/rayon/tests/octillion.rs
parent3d48cd3f81164bbfc1a755dc1d4a9a02f98c8ddd (diff)
downloadfparkan-a990de90fe41456a23e58bd087d2f107d321f3a1.tar.xz
fparkan-a990de90fe41456a23e58bd087d2f107d321f3a1.zip
Deleted vendor folder
Diffstat (limited to 'vendor/rayon/tests/octillion.rs')
-rw-r--r--vendor/rayon/tests/octillion.rs156
1 files changed, 0 insertions, 156 deletions
diff --git a/vendor/rayon/tests/octillion.rs b/vendor/rayon/tests/octillion.rs
deleted file mode 100644
index 1af9ad8..0000000
--- a/vendor/rayon/tests/octillion.rs
+++ /dev/null
@@ -1,156 +0,0 @@
-use rayon::prelude::*;
-
-const OCTILLION: u128 = 1_000_000_000_000_000_000_000_000_000;
-
-/// Produce a parallel iterator for 0u128..10²⁷
-fn octillion() -> rayon::range::Iter<u128> {
- (0..OCTILLION).into_par_iter()
-}
-
-/// Produce a parallel iterator for 0u128..=10²⁷
-fn octillion_inclusive() -> rayon::range_inclusive::Iter<u128> {
- (0..=OCTILLION).into_par_iter()
-}
-
-/// Produce a parallel iterator for 0u128..10²⁷ using `flat_map`
-fn octillion_flat() -> impl ParallelIterator<Item = u128> {
- (0u32..1_000_000_000)
- .into_par_iter()
- .with_max_len(1_000)
- .map(|i| u64::from(i) * 1_000_000_000)
- .flat_map(|i| {
- (0u32..1_000_000_000)
- .into_par_iter()
- .with_max_len(1_000)
- .map(move |j| i + u64::from(j))
- })
- .map(|i| u128::from(i) * 1_000_000_000)
- .flat_map(|i| {
- (0u32..1_000_000_000)
- .into_par_iter()
- .with_max_len(1_000)
- .map(move |j| i + u128::from(j))
- })
-}
-
-// NOTE: `find_first` and `find_last` currently take too long on 32-bit targets,
-// because the `AtomicUsize` match position has much too limited resolution.
-
-#[test]
-#[cfg_attr(not(target_pointer_width = "64"), ignore)]
-fn find_first_octillion() {
- let x = octillion().find_first(|_| true);
- assert_eq!(x, Some(0));
-}
-
-#[test]
-#[cfg_attr(not(target_pointer_width = "64"), ignore)]
-fn find_first_octillion_inclusive() {
- let x = octillion_inclusive().find_first(|_| true);
- assert_eq!(x, Some(0));
-}
-
-#[test]
-#[cfg_attr(not(target_pointer_width = "64"), ignore)]
-fn find_first_octillion_flat() {
- let x = octillion_flat().find_first(|_| true);
- assert_eq!(x, Some(0));
-}
-
-fn two_threads<F: Send + FnOnce() -> R, R: Send>(f: F) -> R {
- // FIXME: If we don't use at least two threads, then we end up walking
- // through the entire iterator sequentially, without the benefit of any
- // short-circuiting. We probably don't want testing to wait that long. ;)
- let builder = rayon::ThreadPoolBuilder::new().num_threads(2);
- let pool = builder.build().unwrap();
-
- pool.install(f)
-}
-
-#[test]
-#[cfg_attr(
- any(
- not(target_pointer_width = "64"),
- target_os = "emscripten",
- target_family = "wasm"
- ),
- ignore
-)]
-fn find_last_octillion() {
- // It would be nice if `find_last` could prioritize the later splits,
- // basically flipping the `join` args, without needing indexed `rev`.
- // (or could we have an unindexed `rev`?)
- let x = two_threads(|| octillion().find_last(|_| true));
- assert_eq!(x, Some(OCTILLION - 1));
-}
-
-#[test]
-#[cfg_attr(
- any(
- not(target_pointer_width = "64"),
- target_os = "emscripten",
- target_family = "wasm"
- ),
- ignore
-)]
-fn find_last_octillion_inclusive() {
- let x = two_threads(|| octillion_inclusive().find_last(|_| true));
- assert_eq!(x, Some(OCTILLION));
-}
-
-#[test]
-#[cfg_attr(
- any(
- not(target_pointer_width = "64"),
- target_os = "emscripten",
- target_family = "wasm"
- ),
- ignore
-)]
-fn find_last_octillion_flat() {
- let x = two_threads(|| octillion_flat().find_last(|_| true));
- assert_eq!(x, Some(OCTILLION - 1));
-}
-
-#[test]
-#[cfg_attr(any(target_os = "emscripten", target_family = "wasm"), ignore)]
-fn find_any_octillion() {
- let x = two_threads(|| octillion().find_any(|x| *x > OCTILLION / 2));
- assert!(x.is_some());
-}
-
-#[test]
-#[cfg_attr(any(target_os = "emscripten", target_family = "wasm"), ignore)]
-fn find_any_octillion_flat() {
- let x = two_threads(|| octillion_flat().find_any(|x| *x > OCTILLION / 2));
- assert!(x.is_some());
-}
-
-#[test]
-#[cfg_attr(any(target_os = "emscripten", target_family = "wasm"), ignore)]
-fn filter_find_any_octillion() {
- let x = two_threads(|| {
- octillion()
- .filter(|x| *x > OCTILLION / 2)
- .find_any(|_| true)
- });
- assert!(x.is_some());
-}
-
-#[test]
-#[cfg_attr(any(target_os = "emscripten", target_family = "wasm"), ignore)]
-fn filter_find_any_octillion_flat() {
- let x = two_threads(|| {
- octillion_flat()
- .filter(|x| *x > OCTILLION / 2)
- .find_any(|_| true)
- });
- assert!(x.is_some());
-}
-
-#[test]
-#[cfg_attr(any(target_os = "emscripten", target_family = "wasm"), ignore)]
-fn fold_find_any_octillion_flat() {
- let x = two_threads(|| octillion_flat().fold(|| (), |_, _| ()).find_any(|_| true));
- assert!(x.is_some());
-}