#! [cfg(all( // require `--all-features` to be passed
feature = "default" ,
feature = "alloc" ,
feature = "formatting" ,
feature = "large-dates" ,
feature = "local-offset" ,
feature = "macros" ,
feature = "parsing" ,
feature = "quickcheck" ,
feature = "serde-human-readable" ,
feature = "serde-well-known" ,
feature = "std" ,
feature = "rand" ,
feature = "serde" ,
))]
#! [allow(
let_underscore_drop,
clippy::clone_on_copy,
clippy::cognitive_complexity,
clippy::std_instead_of_core
)]
//! Tests for internal details.
//!
//! This module should only be used when it is not possible to test the implementation in a
//! reasonable manner externally.
use std::format;
use std::num::NonZeroU8;
use crate ::ext::DigitCount;
use crate ::parsing::combinator::rfc::iso8601;
use crate ::parsing::shim::Integer;
use crate ::{duration, parsing};
#[ test]
fn digit_count() {
assert_eq!(1 _u8.num_digits(), 1 );
assert_eq!(9 _u8.num_digits(), 1 );
assert_eq!(10 _u8.num_digits(), 2 );
assert_eq!(99 _u8.num_digits(), 2 );
assert_eq!(100 _u8.num_digits(), 3 );
assert_eq!(1 _u16.num_digits(), 1 );
assert_eq!(9 _u16.num_digits(), 1 );
assert_eq!(10 _u16.num_digits(), 2 );
assert_eq!(99 _u16.num_digits(), 2 );
assert_eq!(100 _u16.num_digits(), 3 );
assert_eq!(999 _u16.num_digits(), 3 );
assert_eq!(1 _000 _u16.num_digits(), 4 );
assert_eq!(9 _999 _u16.num_digits(), 4 );
assert_eq!(10 _000 _u16.num_digits(), 5 );
assert_eq!(1 _u32.num_digits(), 1 );
assert_eq!(9 _u32.num_digits(), 1 );
assert_eq!(10 _u32.num_digits(), 2 );
assert_eq!(99 _u32.num_digits(), 2 );
assert_eq!(100 _u32.num_digits(), 3 );
assert_eq!(999 _u32.num_digits(), 3 );
assert_eq!(1 _000 _u32.num_digits(), 4 );
assert_eq!(9 _999 _u32.num_digits(), 4 );
assert_eq!(10 _000 _u32.num_digits(), 5 );
assert_eq!(99 _999 _u32.num_digits(), 5 );
assert_eq!(100 _000 _u32.num_digits(), 6 );
assert_eq!(999 _999 _u32.num_digits(), 6 );
assert_eq!(1 _000 _000 _u32.num_digits(), 7 );
assert_eq!(9 _999 _999 _u32.num_digits(), 7 );
assert_eq!(10 _000 _000 _u32.num_digits(), 8 );
assert_eq!(99 _999 _999 _u32.num_digits(), 8 );
assert_eq!(100 _000 _000 _u32.num_digits(), 9 );
assert_eq!(999 _999 _999 _u32.num_digits(), 9 );
assert_eq!(1 _000 _000 _000 _u32.num_digits(), 10 );
}
#[ test]
fn debug() {
let _ = format!("{:?}" , duration::Padding::Optimize);
let _ = format!("{:?}" , parsing::ParsedItem(b"" , 0 ));
let _ = format!("{:?}" , parsing::component::Period::Am);
let _ = format!("{:?}" , iso8601::ExtendedKind::Basic);
}
#[ test]
fn clone() {
assert_eq!(
parsing::component::Period::Am.clone(),
parsing::component::Period::Am
);
// does not impl Debug
assert!(crate ::time::Padding::Optimize.clone() == crate ::time::Padding::Optimize);
// does not impl PartialEq
assert!(matches!(
iso8601::ExtendedKind::Basic.clone(),
iso8601::ExtendedKind::Basic
));
}
#[ test]
fn parsing_internals() {
assert!(
parsing::ParsedItem(b"" , ())
.flat_map(|_| None::<()>)
.is_none()
);
assert!(<NonZeroU8 as Integer>::parse_bytes(b"256" ).is_none());
}
Messung V0.5 in Prozent C=66 H=99 G=83
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet am 2026-06-18)
¤
*© Formatika GbR, Deutschland