Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/third_party/rust/itertools/tests/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 1 kB image not shown  

Quelle  zip.rs   Sprache: unbekannt

 
Spracherkennung für: .rs vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]

use itertools::Itertools;
use itertools::EitherOrBoth::{Both, Left, Right};
use itertools::free::zip_eq;
use itertools::multizip;

#[test]
fn zip_longest_fused() {
    let a = [Some(1), None, Some(3), Some(4)];
    let b = [123];

    let unfused = a.iter().batching(|it| *it.next().unwrap())
        .zip_longest(b.iter().cloned());
    itertools::assert_equal(unfused,
                       vec![Both(11), Right(2), Right(3)]);
}

#[test]
fn test_zip_longest_size_hint() {
    let c = (1..10).cycle();
    let v: &[_] = &[0123456789];
    let v2 = &[101112];

    assert_eq!(c.zip_longest(v.iter()).size_hint(), (std::usize::MAX, None));

    assert_eq!(v.iter().zip_longest(v2.iter()).size_hint(), (10, Some(10)));
}

#[test]
fn test_double_ended_zip_longest() {
    let xs = [123456];
    let ys = [1237];
    let a = xs.iter().copied();
    let b = ys.iter().copied();
    let mut it = a.zip_longest(b);
    assert_eq!(it.next(), Some(Both(11)));
    assert_eq!(it.next(), Some(Both(22)));
    assert_eq!(it.next_back(), Some(Left(6)));
    assert_eq!(it.next_back(), Some(Left(5)));
    assert_eq!(it.next_back(), Some(Both(47)));
    assert_eq!(it.next(), Some(Both(33)));
    assert_eq!(it.next(), None);
}

#[test]
fn test_double_ended_zip() {
    let xs = [123456];
    let ys = [1237];
    let a = xs.iter().copied();
    let b = ys.iter().copied();
    let mut it = multizip((a, b));
    assert_eq!(it.next_back(), Some((47)));
    assert_eq!(it.next_back(), Some((33)));
    assert_eq!(it.next_back(), Some((22)));
    assert_eq!(it.next_back(), Some((11)));
    assert_eq!(it.next_back(), None);
}


#[should_panic]
#[test]
fn zip_eq_panic1()
{
    let a = [12];
    let b = [123];

    zip_eq(&a, &b).count();
}

#[should_panic]
#[test]
fn zip_eq_panic2()
{
    let a: [i32; 0] = [];
    let b = [123];

    zip_eq(&a, &b).count();
}

[Dauer der Verarbeitung: 0.17 Sekunden, vorverarbeitet 2026-06-05]