lib-q-sha3 0.0.2

lib-Q: SHA-3 (FIPS 202), SHAKE, cSHAKE (SP 800-185), TurboSHAKE; no_std-friendly. Raw Keccak digests: lib-q-keccak-digest
Documentation
use digest::Digest;

/// Basic functionality tests for SHA3 family algorithms
/// These tests verify core cryptographic properties and consistency

#[test]
fn sha3_224_basic_functionality() {
    let mut hasher = lib_q_sha3::Sha3_224::new();
    hasher.update(b"test data");
    let result = hasher.finalize();

    let mut hasher2 = lib_q_sha3::Sha3_224::new();
    hasher2.update(b"test data");
    let result2 = hasher2.finalize();

    assert_eq!(result, result2);
    assert_eq!(result.len(), 28); // SHA3-224 produces 224 bits = 28 bytes
}

#[test]
fn sha3_256_basic_functionality() {
    let mut hasher = lib_q_sha3::Sha3_256::new();
    hasher.update(b"test data");
    let result = hasher.finalize();

    let mut hasher2 = lib_q_sha3::Sha3_256::new();
    hasher2.update(b"test data");
    let result2 = hasher2.finalize();

    assert_eq!(result, result2);
    assert_eq!(result.len(), 32); // SHA3-256 produces 256 bits = 32 bytes
}

#[test]
fn sha3_384_basic_functionality() {
    let mut hasher = lib_q_sha3::Sha3_384::new();
    hasher.update(b"test data");
    let result = hasher.finalize();

    let mut hasher2 = lib_q_sha3::Sha3_384::new();
    hasher2.update(b"test data");
    let result2 = hasher2.finalize();

    assert_eq!(result, result2);
    assert_eq!(result.len(), 48); // SHA3-384 produces 384 bits = 48 bytes
}

#[test]
fn sha3_512_basic_functionality() {
    let mut hasher = lib_q_sha3::Sha3_512::new();
    hasher.update(b"test data");
    let result = hasher.finalize();

    let mut hasher2 = lib_q_sha3::Sha3_512::new();
    hasher2.update(b"test data");
    let result2 = hasher2.finalize();

    assert_eq!(result, result2);
    assert_eq!(result.len(), 64); // SHA3-512 produces 512 bits = 64 bytes
}