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

Quelle  monge.rs   Sprache: unbekannt

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

#![cfg(feature = "ndarray")]

use ndarray::{arr2, Array, Array2};
use rand::SeedableRng;
use rand_chacha::ChaCha20Rng;
use smawk::monge::is_monge;

mod random_monge;
use random_monge::{random_monge_matrix, MongePrim};

#[test]
fn random_monge() {
    let mut rng = ChaCha20Rng::seed_from_u64(0);
    let matrix: Array2<u8> = random_monge_matrix(55, &mut rng);

    assert!(is_monge(&matrix));
    assert_eq!(
        matrix,
        arr2(&[
            [23445],
            [55667],
            [33445],
            [52334],
            [52334]
        ])
    );
}

#[test]
fn monge_constant_rows() {
    let mut rng = ChaCha20Rng::seed_from_u64(0);
    let matrix: Array2<u8> = MongePrim::ConstantRows.to_matrix(54, &mut rng);
    assert!(is_monge(&matrix));
    for row in matrix.rows() {
        let elem = row[0];
        assert_eq!(row, Array::from_elem(matrix.ncols(), elem));
    }
}

#[test]
fn monge_constant_cols() {
    let mut rng = ChaCha20Rng::seed_from_u64(0);
    let matrix: Array2<u8> = MongePrim::ConstantCols.to_matrix(54, &mut rng);
    assert!(is_monge(&matrix));
    for column in matrix.columns() {
        let elem = column[0];
        assert_eq!(column, Array::from_elem(matrix.nrows(), elem));
    }
}

#[test]
fn monge_upper_right_ones() {
    let mut rng = ChaCha20Rng::seed_from_u64(1);
    let matrix: Array2<u8> = MongePrim::UpperRightOnes.to_matrix(54, &mut rng);
    assert!(is_monge(&matrix));
    assert_eq!(
        matrix,
        arr2(&[
            [0011],
            [0011],
            [0011],
            [0000],
            [0000]
        ])
    );
}

#[test]
fn monge_lower_left_ones() {
    let mut rng = ChaCha20Rng::seed_from_u64(1);
    let matrix: Array2<u8> = MongePrim::LowerLeftOnes.to_matrix(54, &mut rng);
    assert!(is_monge(&matrix));
    assert_eq!(
        matrix,
        arr2(&[
            [0000],
            [0000],
            [1100],
            [1100],
            [1100]
        ])
    );
}

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