Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commita5a3cb2

Browse files
committed
Implement test to clarify and fix iterator and subset relationships
Description: On reviewing the source code, it appears that the iteratorimplementation for `ScriptExtension` only ever yields a single element. Idid not see this documented, and assuming this is a bug, I have writtena test case to clarify the expected subset, union, and iteratorbehavior. If maintainers believe this behavior as shown in the test iscorrect, I can go ahead and implement the fixes in the rest of thelibrary.
1 parent1f84c2e commita5a3cb2

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

‎src/lib.rs‎

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -499,6 +499,43 @@ mod tests {
499499
assert!(scr.is_err());
500500
}
501501

502+
#[test]
503+
fntest_subsets_and_iter(){
504+
let cases:&[(ScriptExtension,&[Script])] =&[
505+
(ScriptExtension::new_inherited(),&[Script::Inherited]),
506+
(
507+
ScriptExtension::new_common(),
508+
&[Script::Inherited,Script::Common],
509+
),
510+
(
511+
ScriptExtension::new_inherited().union(script_extensions::LATIN),
512+
&[Script::Inherited,Script::Common,Script::Latin],
513+
),
514+
(
515+
ScriptExtension::new_inherited()
516+
.union(script_extensions::LATIN)
517+
.union(script_extensions::CYRILLIC),
518+
&[
519+
Script::Inherited,
520+
Script::Common,
521+
Script::Latin,
522+
Script::Cyrillic,
523+
],
524+
),
525+
];
526+
for&(full_extension, component_scripts)in cases{
527+
for&scriptin component_scripts.iter(){
528+
assert!(full_extension.contains_script(script));
529+
let script_ext = script.into();
530+
assert_eq!(full_extension.intersection(script_ext), script_ext);
531+
assert_eq!(full_extension.union(script_ext), full_extension);
532+
}
533+
let scripts = component_scripts.iter().cloned().collect::<Vec<_>>();
534+
let scripts_iterated = full_extension.iter().collect::<Vec<_>>();
535+
assert_eq!(scripts, scripts_iterated);
536+
}
537+
}
538+
502539
#[cfg(feature ="bench")]
503540
#[bench]
504541
fnbench_script_intersection(b:&mutBencher){

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp