use strs_tools ::string ::split ::SplitFlags;
#[ test ]
fn test_contains_single_flag()
{
let flags = SplitFlags ::PRESERVING_EMPTY;
assert!(flags.contains(SplitFlags ::PRESERVING_EMPTY));
}
#[ test ]
fn test_contains_single_flag_not_contained()
{
let flags = SplitFlags ::PRESERVING_EMPTY;
assert!(!flags.contains(SplitFlags ::STRIPPING));
}
#[ test ]
fn test_contains_combined_flags()
{
let flags = SplitFlags ::PRESERVING_EMPTY | SplitFlags ::STRIPPING;
assert!(flags.contains(SplitFlags ::PRESERVING_EMPTY));
}
#[ test ]
fn test_contains_combined_flags_not_fully_contained()
{
let flags = SplitFlags ::PRESERVING_EMPTY;
assert!(!flags.contains(SplitFlags ::PRESERVING_EMPTY | SplitFlags ::STRIPPING));
}
#[ test ]
fn test_insert_new_flag()
{
let mut flags = SplitFlags ::PRESERVING_EMPTY;
flags.insert(SplitFlags ::STRIPPING);
assert_eq!(flags, SplitFlags ::PRESERVING_EMPTY | SplitFlags ::STRIPPING);
}
#[ test ]
fn test_insert_existing_flag()
{
let mut flags = SplitFlags ::PRESERVING_EMPTY;
flags.insert(SplitFlags ::PRESERVING_EMPTY);
assert_eq!(flags, SplitFlags ::PRESERVING_EMPTY);
}
#[ test ]
fn test_remove_existing_flag()
{
let mut flags = SplitFlags ::PRESERVING_EMPTY | SplitFlags ::STRIPPING;
flags.remove(SplitFlags ::STRIPPING);
assert_eq!(flags, SplitFlags ::PRESERVING_EMPTY);
}
#[ test ]
fn test_remove_non_existing_flag()
{
let mut flags = SplitFlags ::PRESERVING_EMPTY;
flags.remove(SplitFlags ::STRIPPING);
assert_eq!(flags, SplitFlags ::PRESERVING_EMPTY);
}
#[ test ]
fn test_bitor_operator()
{
let flags = SplitFlags ::PRESERVING_EMPTY | SplitFlags ::STRIPPING;
assert_eq!(flags, SplitFlags(0b0000_1001));
}
#[ test ]
fn test_bitand_operator()
{
let flags = (SplitFlags ::PRESERVING_EMPTY | SplitFlags ::STRIPPING) & SplitFlags ::PRESERVING_EMPTY;
assert_eq!(flags, SplitFlags ::PRESERVING_EMPTY);
}
#[ test ]
fn test_not_operator()
{
let flags = !SplitFlags ::PRESERVING_EMPTY;
let expected_flags =
SplitFlags ::PRESERVING_DELIMITERS | SplitFlags ::PRESERVING_QUOTING | SplitFlags ::STRIPPING | SplitFlags ::QUOTING;
assert_eq!(flags.0 & 0b11111, expected_flags.0); }
#[ test ]
fn test_from_bits_and_bits()
{
let value = 0b0001_0101;
let flags = SplitFlags ::from_bits(value).unwrap();
assert_eq!(flags.bits(), value);
}
#[ test ]
fn test_default_value()
{
let flags = SplitFlags ::default();
assert_eq!(flags.0, 0);
}
#[ test ]
fn test_from_u8()
{
let flags: SplitFlags = 0b11111.into();
assert_eq!(flags.0, 0b11111);
}
#[ test ]
fn test_into_u8()
{
let flags = SplitFlags ::PRESERVING_EMPTY;
let value: u8 = flags.into();
assert_eq!(value, 1);
}