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 2 kB image not shown  

Quelle  tuples.rs   Sprache: unbekannt

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

use itertools::Itertools;

#[test]
fn tuples() {
    let v = [12345];
    let mut iter = v.iter().cloned().tuples();
    assert_eq!(Some((1,)), iter.next());
    assert_eq!(Some((2,)), iter.next());
    assert_eq!(Some((3,)), iter.next());
    assert_eq!(Some((4,)), iter.next());
    assert_eq!(Some((5,)), iter.next());
    assert_eq!(None, iter.next());
    assert_eq!(None, iter.into_buffer().next());

    let mut iter = v.iter().cloned().tuples();
    assert_eq!(Some((12)), iter.next());
    assert_eq!(Some((34)), iter.next());
    assert_eq!(None, iter.next());
    itertools::assert_equal(vec![5], iter.into_buffer());

    let mut iter = v.iter().cloned().tuples();
    assert_eq!(Some((123)), iter.next());
    assert_eq!(None, iter.next());
    itertools::assert_equal(vec![45], iter.into_buffer());

    let mut iter = v.iter().cloned().tuples();
    assert_eq!(Some((1234)), iter.next());
    assert_eq!(None, iter.next());
    itertools::assert_equal(vec![5], iter.into_buffer());
}

#[test]
fn tuple_windows() {
    let v = [12345];

    let mut iter = v.iter().cloned().tuple_windows();
    assert_eq!(Some((1,)), iter.next());
    assert_eq!(Some((2,)), iter.next());
    assert_eq!(Some((3,)), iter.next());

    let mut iter = v.iter().cloned().tuple_windows();
    assert_eq!(Some((12)), iter.next());
    assert_eq!(Some((23)), iter.next());
    assert_eq!(Some((34)), iter.next());
    assert_eq!(Some((45)), iter.next());
    assert_eq!(None, iter.next());

    let mut iter = v.iter().cloned().tuple_windows();
    assert_eq!(Some((123)), iter.next());
    assert_eq!(Some((234)), iter.next());
    assert_eq!(Some((345)), iter.next());
    assert_eq!(None, iter.next());

    let mut iter = v.iter().cloned().tuple_windows();
    assert_eq!(Some((1234)), iter.next());
    assert_eq!(Some((2345)), iter.next());
    assert_eq!(None, iter.next());

    let v = [123];
    let mut iter = v.iter().cloned().tuple_windows::<(_, _, _, _)>();
    assert_eq!(None, iter.next());
}

#[test]
fn next_tuple() {
    let v = [12345];
    let mut iter = v.iter();
    assert_eq!(iter.next_tuple().map(|(&x, &y)| (x, y)), Some((12)));
    assert_eq!(iter.next_tuple().map(|(&x, &y)| (x, y)), Some((34)));
    assert_eq!(iter.next_tuple::<(_, _)>(), None);
}

#[test]
fn collect_tuple() {
    let v = [12];
    let iter = v.iter().cloned();
    assert_eq!(iter.collect_tuple(), Some((12)));

    let v = [1];
    let iter = v.iter().cloned();
    assert_eq!(iter.collect_tuple::<(_, _)>(), None);

    let v = [123];
    let iter = v.iter().cloned();
    assert_eq!(iter.collect_tuple::<(_, _)>(), None);
}

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