Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/third_party/rust/camino/tests/   (Firefox Browser Version 153.0.1©)  Datei vom 27.6.2026 mit Größe 2 kB image not shown  

Quelle  integration_tests.rs

  Sprache: Rust
 

// Copyright (c) The camino Contributors
// SPDX-License-Identifier: MIT OR Apache-2.0

use camino::{Utf8Path, Utf8PathBuf};
use std::{
    collections::hash_map::DefaultHasher,
    hash::{Hash, Hasher},
    path::Path,
};

static PATH_CORPUS: &[&str] = &[
    "",
    "foo",
    "foo/bar",
    "foo//bar",
    "foo/bar/baz",
    "foo/bar/./baz",
    "foo/bar/../baz",
    "../foo/bar/./../baz",
    "/foo",
    "/foo/bar",
    "/",
    "///",
    // ---
    // Windows-only paths
    // ---
    #[cfg(windows)]
    "foo\\bar",
    #[cfg(windows)]
    "\\foo\\bar",
    #[cfg(windows)]
    "C:\\foo",
    #[cfg(windows)]
    "C:foo\\bar",
    #[cfg(windows)]
    "C:\\foo\\..\\.\\bar",
    #[cfg(windows)]
    "\\\\server\\foo\\bar",
    #[cfg(windows)]
    "\\\\.\\C:\\foo\\bar.txt",
];

#[test]
fn test_borrow_eq_ord() {
    // Utf8PathBuf implements Borrow<Utf8Path> so equality and ordering comparisons should
    // match.
    for (idx, &path1) in PATH_CORPUS.iter().enumerate() {
        for &path2 in &PATH_CORPUS[idx..] {
            let borrowed1 = Utf8Path::new(path1);
            let borrowed2 = Utf8Path::new(path2);
            let owned1 = Utf8PathBuf::from(path1);
            let owned2 = Utf8PathBuf::from(path2);

            assert_eq!(
                borrowed1 == borrowed2,
                owned1 == owned2,
                "Eq impls match: {} == {}",
                borrowed1,
                borrowed2
            );
            assert_eq!(
                borrowed1.cmp(borrowed2),
                owned1.cmp(&owned2),
                "Ord impls match: {} and {}",
                borrowed1,
                borrowed2
            );

            // Also check against std paths.
            let std1 = Path::new(path1);
            let std2 = Path::new(path2);
            assert_eq!(
                borrowed1, std1,
                "Eq between Path and Utf8Path: {}",
                borrowed1
            );
            assert_eq!(
                borrowed1 == borrowed2,
                std1 == std2,
                "Eq impl matches Path: {} == {}",
                borrowed1,
                borrowed2
            );
            assert_eq!(
                borrowed1.cmp(borrowed2),
                std1.cmp(std2),
                "Ord impl matches Path: {} and {}",
                borrowed1,
                borrowed2
            );
        }
    }
}

#[test]
fn test_borrow_hash() {
    // Utf8PathBuf implements Borrow<Utf8Path> so hash comparisons should match.
    fn hash_output(x: impl Hash) -> u64 {
        let mut hasher = DefaultHasher::new();
        x.hash(&mut hasher);
        hasher.finish()
    }

    for &path in PATH_CORPUS {
        let borrowed = Utf8Path::new(path);
        let owned = Utf8PathBuf::from(path);

        assert_eq!(
            hash_output(owned),
            hash_output(borrowed),
            "consistent Hash: {}",
            borrowed
        );
    }
}

Messung V0.5 in Prozent
C=87 H=91 G=88

¤ Dauer der Verarbeitung: 0.3 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.