#[derive(Debug, Clone, Copy)]
pub struct LanguageResult {
pub language: &'static str,
pub passed: usize,
pub total: usize,
}
pub fn results() -> Vec<LanguageResult> {
vec![
LanguageResult { language: "Python", passed: 16, total: 16 },
LanguageResult { language: "Rust", passed: 5, total: 5 },
LanguageResult { language: "C", passed: 19, total: 19 },
LanguageResult { language: "WASM", passed: 17, total: 17 },
]
}
pub fn divergences_found_and_fixed() -> Vec<&'static str> {
vec![
"BLAKE3 → BLAKE2b (hash algorithm unification)",
"BLAKE2b-64 → BLAKE2b-128 (WASM collision fix)",
"BLAKE2b-64 → BLAKE2b-128 (C collision fix)",
]
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn all_languages_pass_100_percent() {
for r in results() {
assert_eq!(
r.passed, r.total,
"{}: {}/{} tests passed — expected 100%",
r.language, r.passed, r.total,
);
}
}
#[test]
fn four_languages_tested() {
assert_eq!(results().len(), 4);
}
#[test]
fn total_tests_across_languages() {
let total: usize = results().iter().map(|r| r.total).sum();
assert_eq!(total, 57, "16 + 5 + 19 + 17 = 57");
}
#[test]
fn three_divergences_fixed() {
assert_eq!(divergences_found_and_fixed().len(), 3);
}
#[test]
fn all_divergences_are_hash_related() {
for d in divergences_found_and_fixed() {
assert!(
d.contains("BLAKE"),
"All divergences should be BLAKE-related: {d}"
);
}
}
}