-#[allow(deprecated)]
-#[test]
-fn test_graphemes() {
- use std::iter::order;
-
- // official Unicode test data
- // from http://www.unicode.org/Public/UCD/latest/ucd/auxiliary/GraphemeBreakTest.txt
- let test_same: [(_, &[_]); 325] = [
- ("\u{20}\u{20}", &["\u{20}", "\u{20}"]),
- ("\u{20}\u{308}\u{20}", &["\u{20}\u{308}", "\u{20}"]),
- ("\u{20}\u{D}", &["\u{20}", "\u{D}"]),
- ("\u{20}\u{308}\u{D}", &["\u{20}\u{308}", "\u{D}"]),
- ("\u{20}\u{A}", &["\u{20}", "\u{A}"]),
- ("\u{20}\u{308}\u{A}", &["\u{20}\u{308}", "\u{A}"]),
- ("\u{20}\u{1}", &["\u{20}", "\u{1}"]),
- ("\u{20}\u{308}\u{1}", &["\u{20}\u{308}", "\u{1}"]),
- ("\u{20}\u{300}", &["\u{20}\u{300}"]),
- ("\u{20}\u{308}\u{300}", &["\u{20}\u{308}\u{300}"]),
- ("\u{20}\u{1100}", &["\u{20}", "\u{1100}"]),
- ("\u{20}\u{308}\u{1100}", &["\u{20}\u{308}", "\u{1100}"]),
- ("\u{20}\u{1160}", &["\u{20}", "\u{1160}"]),
- ("\u{20}\u{308}\u{1160}", &["\u{20}\u{308}", "\u{1160}"]),
- ("\u{20}\u{11A8}", &["\u{20}", "\u{11A8}"]),
- ("\u{20}\u{308}\u{11A8}", &["\u{20}\u{308}", "\u{11A8}"]),
- ("\u{20}\u{AC00}", &["\u{20}", "\u{AC00}"]),
- ("\u{20}\u{308}\u{AC00}", &["\u{20}\u{308}", "\u{AC00}"]),
- ("\u{20}\u{AC01}", &["\u{20}", "\u{AC01}"]),
- ("\u{20}\u{308}\u{AC01}", &["\u{20}\u{308}", "\u{AC01}"]),
- ("\u{20}\u{1F1E6}", &["\u{20}", "\u{1F1E6}"]),
- ("\u{20}\u{308}\u{1F1E6}", &["\u{20}\u{308}", "\u{1F1E6}"]),
- ("\u{20}\u{378}", &["\u{20}", "\u{378}"]),
- ("\u{20}\u{308}\u{378}", &["\u{20}\u{308}", "\u{378}"]),
- ("\u{D}\u{20}", &["\u{D}", "\u{20}"]),
- ("\u{D}\u{308}\u{20}", &["\u{D}", "\u{308}", "\u{20}"]),
- ("\u{D}\u{D}", &["\u{D}", "\u{D}"]),
- ("\u{D}\u{308}\u{D}", &["\u{D}", "\u{308}", "\u{D}"]),
- ("\u{D}\u{A}", &["\u{D}\u{A}"]),
- ("\u{D}\u{308}\u{A}", &["\u{D}", "\u{308}", "\u{A}"]),
- ("\u{D}\u{1}", &["\u{D}", "\u{1}"]),
- ("\u{D}\u{308}\u{1}", &["\u{D}", "\u{308}", "\u{1}"]),
- ("\u{D}\u{300}", &["\u{D}", "\u{300}"]),
- ("\u{D}\u{308}\u{300}", &["\u{D}", "\u{308}\u{300}"]),
- ("\u{D}\u{903}", &["\u{D}", "\u{903}"]),
- ("\u{D}\u{1100}", &["\u{D}", "\u{1100}"]),
- ("\u{D}\u{308}\u{1100}", &["\u{D}", "\u{308}", "\u{1100}"]),
- ("\u{D}\u{1160}", &["\u{D}", "\u{1160}"]),
- ("\u{D}\u{308}\u{1160}", &["\u{D}", "\u{308}", "\u{1160}"]),
- ("\u{D}\u{11A8}", &["\u{D}", "\u{11A8}"]),
- ("\u{D}\u{308}\u{11A8}", &["\u{D}", "\u{308}", "\u{11A8}"]),
- ("\u{D}\u{AC00}", &["\u{D}", "\u{AC00}"]),
- ("\u{D}\u{308}\u{AC00}", &["\u{D}", "\u{308}", "\u{AC00}"]),
- ("\u{D}\u{AC01}", &["\u{D}", "\u{AC01}"]),
- ("\u{D}\u{308}\u{AC01}", &["\u{D}", "\u{308}", "\u{AC01}"]),
- ("\u{D}\u{1F1E6}", &["\u{D}", "\u{1F1E6}"]),
- ("\u{D}\u{308}\u{1F1E6}", &["\u{D}", "\u{308}", "\u{1F1E6}"]),
- ("\u{D}\u{378}", &["\u{D}", "\u{378}"]),
- ("\u{D}\u{308}\u{378}", &["\u{D}", "\u{308}", "\u{378}"]),
- ("\u{A}\u{20}", &["\u{A}", "\u{20}"]),
- ("\u{A}\u{308}\u{20}", &["\u{A}", "\u{308}", "\u{20}"]),
- ("\u{A}\u{D}", &["\u{A}", "\u{D}"]),
- ("\u{A}\u{308}\u{D}", &["\u{A}", "\u{308}", "\u{D}"]),
- ("\u{A}\u{A}", &["\u{A}", "\u{A}"]),
- ("\u{A}\u{308}\u{A}", &["\u{A}", "\u{308}", "\u{A}"]),
- ("\u{A}\u{1}", &["\u{A}", "\u{1}"]),
- ("\u{A}\u{308}\u{1}", &["\u{A}", "\u{308}", "\u{1}"]),
- ("\u{A}\u{300}", &["\u{A}", "\u{300}"]),
- ("\u{A}\u{308}\u{300}", &["\u{A}", "\u{308}\u{300}"]),
- ("\u{A}\u{903}", &["\u{A}", "\u{903}"]),
- ("\u{A}\u{1100}", &["\u{A}", "\u{1100}"]),
- ("\u{A}\u{308}\u{1100}", &["\u{A}", "\u{308}", "\u{1100}"]),
- ("\u{A}\u{1160}", &["\u{A}", "\u{1160}"]),
- ("\u{A}\u{308}\u{1160}", &["\u{A}", "\u{308}", "\u{1160}"]),
- ("\u{A}\u{11A8}", &["\u{A}", "\u{11A8}"]),
- ("\u{A}\u{308}\u{11A8}", &["\u{A}", "\u{308}", "\u{11A8}"]),
- ("\u{A}\u{AC00}", &["\u{A}", "\u{AC00}"]),
- ("\u{A}\u{308}\u{AC00}", &["\u{A}", "\u{308}", "\u{AC00}"]),
- ("\u{A}\u{AC01}", &["\u{A}", "\u{AC01}"]),
- ("\u{A}\u{308}\u{AC01}", &["\u{A}", "\u{308}", "\u{AC01}"]),
- ("\u{A}\u{1F1E6}", &["\u{A}", "\u{1F1E6}"]),
- ("\u{A}\u{308}\u{1F1E6}", &["\u{A}", "\u{308}", "\u{1F1E6}"]),
- ("\u{A}\u{378}", &["\u{A}", "\u{378}"]),
- ("\u{A}\u{308}\u{378}", &["\u{A}", "\u{308}", "\u{378}"]),
- ("\u{1}\u{20}", &["\u{1}", "\u{20}"]),
- ("\u{1}\u{308}\u{20}", &["\u{1}", "\u{308}", "\u{20}"]),
- ("\u{1}\u{D}", &["\u{1}", "\u{D}"]),
- ("\u{1}\u{308}\u{D}", &["\u{1}", "\u{308}", "\u{D}"]),
- ("\u{1}\u{A}", &["\u{1}", "\u{A}"]),
- ("\u{1}\u{308}\u{A}", &["\u{1}", "\u{308}", "\u{A}"]),
- ("\u{1}\u{1}", &["\u{1}", "\u{1}"]),
- ("\u{1}\u{308}\u{1}", &["\u{1}", "\u{308}", "\u{1}"]),
- ("\u{1}\u{300}", &["\u{1}", "\u{300}"]),
- ("\u{1}\u{308}\u{300}", &["\u{1}", "\u{308}\u{300}"]),
- ("\u{1}\u{903}", &["\u{1}", "\u{903}"]),
- ("\u{1}\u{1100}", &["\u{1}", "\u{1100}"]),
- ("\u{1}\u{308}\u{1100}", &["\u{1}", "\u{308}", "\u{1100}"]),
- ("\u{1}\u{1160}", &["\u{1}", "\u{1160}"]),
- ("\u{1}\u{308}\u{1160}", &["\u{1}", "\u{308}", "\u{1160}"]),
- ("\u{1}\u{11A8}", &["\u{1}", "\u{11A8}"]),
- ("\u{1}\u{308}\u{11A8}", &["\u{1}", "\u{308}", "\u{11A8}"]),
- ("\u{1}\u{AC00}", &["\u{1}", "\u{AC00}"]),
- ("\u{1}\u{308}\u{AC00}", &["\u{1}", "\u{308}", "\u{AC00}"]),
- ("\u{1}\u{AC01}", &["\u{1}", "\u{AC01}"]),
- ("\u{1}\u{308}\u{AC01}", &["\u{1}", "\u{308}", "\u{AC01}"]),
- ("\u{1}\u{1F1E6}", &["\u{1}", "\u{1F1E6}"]),
- ("\u{1}\u{308}\u{1F1E6}", &["\u{1}", "\u{308}", "\u{1F1E6}"]),
- ("\u{1}\u{378}", &["\u{1}", "\u{378}"]),
- ("\u{1}\u{308}\u{378}", &["\u{1}", "\u{308}", "\u{378}"]),
- ("\u{300}\u{20}", &["\u{300}", "\u{20}"]),
- ("\u{300}\u{308}\u{20}", &["\u{300}\u{308}", "\u{20}"]),
- ("\u{300}\u{D}", &["\u{300}", "\u{D}"]),
- ("\u{300}\u{308}\u{D}", &["\u{300}\u{308}", "\u{D}"]),
- ("\u{300}\u{A}", &["\u{300}", "\u{A}"]),
- ("\u{300}\u{308}\u{A}", &["\u{300}\u{308}", "\u{A}"]),
- ("\u{300}\u{1}", &["\u{300}", "\u{1}"]),
- ("\u{300}\u{308}\u{1}", &["\u{300}\u{308}", "\u{1}"]),
- ("\u{300}\u{300}", &["\u{300}\u{300}"]),
- ("\u{300}\u{308}\u{300}", &["\u{300}\u{308}\u{300}"]),
- ("\u{300}\u{1100}", &["\u{300}", "\u{1100}"]),
- ("\u{300}\u{308}\u{1100}", &["\u{300}\u{308}", "\u{1100}"]),
- ("\u{300}\u{1160}", &["\u{300}", "\u{1160}"]),
- ("\u{300}\u{308}\u{1160}", &["\u{300}\u{308}", "\u{1160}"]),
- ("\u{300}\u{11A8}", &["\u{300}", "\u{11A8}"]),
- ("\u{300}\u{308}\u{11A8}", &["\u{300}\u{308}", "\u{11A8}"]),
- ("\u{300}\u{AC00}", &["\u{300}", "\u{AC00}"]),
- ("\u{300}\u{308}\u{AC00}", &["\u{300}\u{308}", "\u{AC00}"]),
- ("\u{300}\u{AC01}", &["\u{300}", "\u{AC01}"]),
- ("\u{300}\u{308}\u{AC01}", &["\u{300}\u{308}", "\u{AC01}"]),
- ("\u{300}\u{1F1E6}", &["\u{300}", "\u{1F1E6}"]),
- ("\u{300}\u{308}\u{1F1E6}", &["\u{300}\u{308}", "\u{1F1E6}"]),
- ("\u{300}\u{378}", &["\u{300}", "\u{378}"]),
- ("\u{300}\u{308}\u{378}", &["\u{300}\u{308}", "\u{378}"]),
- ("\u{903}\u{20}", &["\u{903}", "\u{20}"]),
- ("\u{903}\u{308}\u{20}", &["\u{903}\u{308}", "\u{20}"]),
- ("\u{903}\u{D}", &["\u{903}", "\u{D}"]),
- ("\u{903}\u{308}\u{D}", &["\u{903}\u{308}", "\u{D}"]),
- ("\u{903}\u{A}", &["\u{903}", "\u{A}"]),
- ("\u{903}\u{308}\u{A}", &["\u{903}\u{308}", "\u{A}"]),
- ("\u{903}\u{1}", &["\u{903}", "\u{1}"]),
- ("\u{903}\u{308}\u{1}", &["\u{903}\u{308}", "\u{1}"]),
- ("\u{903}\u{300}", &["\u{903}\u{300}"]),
- ("\u{903}\u{308}\u{300}", &["\u{903}\u{308}\u{300}"]),
- ("\u{903}\u{1100}", &["\u{903}", "\u{1100}"]),
- ("\u{903}\u{308}\u{1100}", &["\u{903}\u{308}", "\u{1100}"]),
- ("\u{903}\u{1160}", &["\u{903}", "\u{1160}"]),
- ("\u{903}\u{308}\u{1160}", &["\u{903}\u{308}", "\u{1160}"]),
- ("\u{903}\u{11A8}", &["\u{903}", "\u{11A8}"]),
- ("\u{903}\u{308}\u{11A8}", &["\u{903}\u{308}", "\u{11A8}"]),
- ("\u{903}\u{AC00}", &["\u{903}", "\u{AC00}"]),
- ("\u{903}\u{308}\u{AC00}", &["\u{903}\u{308}", "\u{AC00}"]),
- ("\u{903}\u{AC01}", &["\u{903}", "\u{AC01}"]),
- ("\u{903}\u{308}\u{AC01}", &["\u{903}\u{308}", "\u{AC01}"]),
- ("\u{903}\u{1F1E6}", &["\u{903}", "\u{1F1E6}"]),
- ("\u{903}\u{308}\u{1F1E6}", &["\u{903}\u{308}", "\u{1F1E6}"]),
- ("\u{903}\u{378}", &["\u{903}", "\u{378}"]),
- ("\u{903}\u{308}\u{378}", &["\u{903}\u{308}", "\u{378}"]),
- ("\u{1100}\u{20}", &["\u{1100}", "\u{20}"]),
- ("\u{1100}\u{308}\u{20}", &["\u{1100}\u{308}", "\u{20}"]),
- ("\u{1100}\u{D}", &["\u{1100}", "\u{D}"]),
- ("\u{1100}\u{308}\u{D}", &["\u{1100}\u{308}", "\u{D}"]),
- ("\u{1100}\u{A}", &["\u{1100}", "\u{A}"]),
- ("\u{1100}\u{308}\u{A}", &["\u{1100}\u{308}", "\u{A}"]),
- ("\u{1100}\u{1}", &["\u{1100}", "\u{1}"]),
- ("\u{1100}\u{308}\u{1}", &["\u{1100}\u{308}", "\u{1}"]),
- ("\u{1100}\u{300}", &["\u{1100}\u{300}"]),
- ("\u{1100}\u{308}\u{300}", &["\u{1100}\u{308}\u{300}"]),
- ("\u{1100}\u{1100}", &["\u{1100}\u{1100}"]),
- ("\u{1100}\u{308}\u{1100}", &["\u{1100}\u{308}", "\u{1100}"]),
- ("\u{1100}\u{1160}", &["\u{1100}\u{1160}"]),
- ("\u{1100}\u{308}\u{1160}", &["\u{1100}\u{308}", "\u{1160}"]),
- ("\u{1100}\u{11A8}", &["\u{1100}", "\u{11A8}"]),
- ("\u{1100}\u{308}\u{11A8}", &["\u{1100}\u{308}", "\u{11A8}"]),
- ("\u{1100}\u{AC00}", &["\u{1100}\u{AC00}"]),
- ("\u{1100}\u{308}\u{AC00}", &["\u{1100}\u{308}", "\u{AC00}"]),
- ("\u{1100}\u{AC01}", &["\u{1100}\u{AC01}"]),
- ("\u{1100}\u{308}\u{AC01}", &["\u{1100}\u{308}", "\u{AC01}"]),
- ("\u{1100}\u{1F1E6}", &["\u{1100}", "\u{1F1E6}"]),
- ("\u{1100}\u{308}\u{1F1E6}", &["\u{1100}\u{308}", "\u{1F1E6}"]),
- ("\u{1100}\u{378}", &["\u{1100}", "\u{378}"]),
- ("\u{1100}\u{308}\u{378}", &["\u{1100}\u{308}", "\u{378}"]),
- ("\u{1160}\u{20}", &["\u{1160}", "\u{20}"]),
- ("\u{1160}\u{308}\u{20}", &["\u{1160}\u{308}", "\u{20}"]),
- ("\u{1160}\u{D}", &["\u{1160}", "\u{D}"]),
- ("\u{1160}\u{308}\u{D}", &["\u{1160}\u{308}", "\u{D}"]),
- ("\u{1160}\u{A}", &["\u{1160}", "\u{A}"]),
- ("\u{1160}\u{308}\u{A}", &["\u{1160}\u{308}", "\u{A}"]),
- ("\u{1160}\u{1}", &["\u{1160}", "\u{1}"]),
- ("\u{1160}\u{308}\u{1}", &["\u{1160}\u{308}", "\u{1}"]),
- ("\u{1160}\u{300}", &["\u{1160}\u{300}"]),
- ("\u{1160}\u{308}\u{300}", &["\u{1160}\u{308}\u{300}"]),
- ("\u{1160}\u{1100}", &["\u{1160}", "\u{1100}"]),
- ("\u{1160}\u{308}\u{1100}", &["\u{1160}\u{308}", "\u{1100}"]),
- ("\u{1160}\u{1160}", &["\u{1160}\u{1160}"]),
- ("\u{1160}\u{308}\u{1160}", &["\u{1160}\u{308}", "\u{1160}"]),
- ("\u{1160}\u{11A8}", &["\u{1160}\u{11A8}"]),
- ("\u{1160}\u{308}\u{11A8}", &["\u{1160}\u{308}", "\u{11A8}"]),
- ("\u{1160}\u{AC00}", &["\u{1160}", "\u{AC00}"]),
- ("\u{1160}\u{308}\u{AC00}", &["\u{1160}\u{308}", "\u{AC00}"]),
- ("\u{1160}\u{AC01}", &["\u{1160}", "\u{AC01}"]),
- ("\u{1160}\u{308}\u{AC01}", &["\u{1160}\u{308}", "\u{AC01}"]),
- ("\u{1160}\u{1F1E6}", &["\u{1160}", "\u{1F1E6}"]),
- ("\u{1160}\u{308}\u{1F1E6}", &["\u{1160}\u{308}", "\u{1F1E6}"]),
- ("\u{1160}\u{378}", &["\u{1160}", "\u{378}"]),
- ("\u{1160}\u{308}\u{378}", &["\u{1160}\u{308}", "\u{378}"]),
- ("\u{11A8}\u{20}", &["\u{11A8}", "\u{20}"]),
- ("\u{11A8}\u{308}\u{20}", &["\u{11A8}\u{308}", "\u{20}"]),
- ("\u{11A8}\u{D}", &["\u{11A8}", "\u{D}"]),
- ("\u{11A8}\u{308}\u{D}", &["\u{11A8}\u{308}", "\u{D}"]),
- ("\u{11A8}\u{A}", &["\u{11A8}", "\u{A}"]),
- ("\u{11A8}\u{308}\u{A}", &["\u{11A8}\u{308}", "\u{A}"]),
- ("\u{11A8}\u{1}", &["\u{11A8}", "\u{1}"]),
- ("\u{11A8}\u{308}\u{1}", &["\u{11A8}\u{308}", "\u{1}"]),
- ("\u{11A8}\u{300}", &["\u{11A8}\u{300}"]),
- ("\u{11A8}\u{308}\u{300}", &["\u{11A8}\u{308}\u{300}"]),
- ("\u{11A8}\u{1100}", &["\u{11A8}", "\u{1100}"]),
- ("\u{11A8}\u{308}\u{1100}", &["\u{11A8}\u{308}", "\u{1100}"]),
- ("\u{11A8}\u{1160}", &["\u{11A8}", "\u{1160}"]),
- ("\u{11A8}\u{308}\u{1160}", &["\u{11A8}\u{308}", "\u{1160}"]),
- ("\u{11A8}\u{11A8}", &["\u{11A8}\u{11A8}"]),
- ("\u{11A8}\u{308}\u{11A8}", &["\u{11A8}\u{308}", "\u{11A8}"]),
- ("\u{11A8}\u{AC00}", &["\u{11A8}", "\u{AC00}"]),
- ("\u{11A8}\u{308}\u{AC00}", &["\u{11A8}\u{308}", "\u{AC00}"]),
- ("\u{11A8}\u{AC01}", &["\u{11A8}", "\u{AC01}"]),
- ("\u{11A8}\u{308}\u{AC01}", &["\u{11A8}\u{308}", "\u{AC01}"]),
- ("\u{11A8}\u{1F1E6}", &["\u{11A8}", "\u{1F1E6}"]),
- ("\u{11A8}\u{308}\u{1F1E6}", &["\u{11A8}\u{308}", "\u{1F1E6}"]),
- ("\u{11A8}\u{378}", &["\u{11A8}", "\u{378}"]),
- ("\u{11A8}\u{308}\u{378}", &["\u{11A8}\u{308}", "\u{378}"]),
- ("\u{AC00}\u{20}", &["\u{AC00}", "\u{20}"]),
- ("\u{AC00}\u{308}\u{20}", &["\u{AC00}\u{308}", "\u{20}"]),
- ("\u{AC00}\u{D}", &["\u{AC00}", "\u{D}"]),
- ("\u{AC00}\u{308}\u{D}", &["\u{AC00}\u{308}", "\u{D}"]),
- ("\u{AC00}\u{A}", &["\u{AC00}", "\u{A}"]),
- ("\u{AC00}\u{308}\u{A}", &["\u{AC00}\u{308}", "\u{A}"]),
- ("\u{AC00}\u{1}", &["\u{AC00}", "\u{1}"]),
- ("\u{AC00}\u{308}\u{1}", &["\u{AC00}\u{308}", "\u{1}"]),
- ("\u{AC00}\u{300}", &["\u{AC00}\u{300}"]),
- ("\u{AC00}\u{308}\u{300}", &["\u{AC00}\u{308}\u{300}"]),
- ("\u{AC00}\u{1100}", &["\u{AC00}", "\u{1100}"]),
- ("\u{AC00}\u{308}\u{1100}", &["\u{AC00}\u{308}", "\u{1100}"]),
- ("\u{AC00}\u{1160}", &["\u{AC00}\u{1160}"]),
- ("\u{AC00}\u{308}\u{1160}", &["\u{AC00}\u{308}", "\u{1160}"]),
- ("\u{AC00}\u{11A8}", &["\u{AC00}\u{11A8}"]),
- ("\u{AC00}\u{308}\u{11A8}", &["\u{AC00}\u{308}", "\u{11A8}"]),
- ("\u{AC00}\u{AC00}", &["\u{AC00}", "\u{AC00}"]),
- ("\u{AC00}\u{308}\u{AC00}", &["\u{AC00}\u{308}", "\u{AC00}"]),
- ("\u{AC00}\u{AC01}", &["\u{AC00}", "\u{AC01}"]),
- ("\u{AC00}\u{308}\u{AC01}", &["\u{AC00}\u{308}", "\u{AC01}"]),
- ("\u{AC00}\u{1F1E6}", &["\u{AC00}", "\u{1F1E6}"]),
- ("\u{AC00}\u{308}\u{1F1E6}", &["\u{AC00}\u{308}", "\u{1F1E6}"]),
- ("\u{AC00}\u{378}", &["\u{AC00}", "\u{378}"]),
- ("\u{AC00}\u{308}\u{378}", &["\u{AC00}\u{308}", "\u{378}"]),
- ("\u{AC01}\u{20}", &["\u{AC01}", "\u{20}"]),
- ("\u{AC01}\u{308}\u{20}", &["\u{AC01}\u{308}", "\u{20}"]),
- ("\u{AC01}\u{D}", &["\u{AC01}", "\u{D}"]),
- ("\u{AC01}\u{308}\u{D}", &["\u{AC01}\u{308}", "\u{D}"]),
- ("\u{AC01}\u{A}", &["\u{AC01}", "\u{A}"]),
- ("\u{AC01}\u{308}\u{A}", &["\u{AC01}\u{308}", "\u{A}"]),
- ("\u{AC01}\u{1}", &["\u{AC01}", "\u{1}"]),
- ("\u{AC01}\u{308}\u{1}", &["\u{AC01}\u{308}", "\u{1}"]),
- ("\u{AC01}\u{300}", &["\u{AC01}\u{300}"]),
- ("\u{AC01}\u{308}\u{300}", &["\u{AC01}\u{308}\u{300}"]),
- ("\u{AC01}\u{1100}", &["\u{AC01}", "\u{1100}"]),
- ("\u{AC01}\u{308}\u{1100}", &["\u{AC01}\u{308}", "\u{1100}"]),
- ("\u{AC01}\u{1160}", &["\u{AC01}", "\u{1160}"]),
- ("\u{AC01}\u{308}\u{1160}", &["\u{AC01}\u{308}", "\u{1160}"]),
- ("\u{AC01}\u{11A8}", &["\u{AC01}\u{11A8}"]),
- ("\u{AC01}\u{308}\u{11A8}", &["\u{AC01}\u{308}", "\u{11A8}"]),
- ("\u{AC01}\u{AC00}", &["\u{AC01}", "\u{AC00}"]),
- ("\u{AC01}\u{308}\u{AC00}", &["\u{AC01}\u{308}", "\u{AC00}"]),
- ("\u{AC01}\u{AC01}", &["\u{AC01}", "\u{AC01}"]),
- ("\u{AC01}\u{308}\u{AC01}", &["\u{AC01}\u{308}", "\u{AC01}"]),
- ("\u{AC01}\u{1F1E6}", &["\u{AC01}", "\u{1F1E6}"]),
- ("\u{AC01}\u{308}\u{1F1E6}", &["\u{AC01}\u{308}", "\u{1F1E6}"]),
- ("\u{AC01}\u{378}", &["\u{AC01}", "\u{378}"]),
- ("\u{AC01}\u{308}\u{378}", &["\u{AC01}\u{308}", "\u{378}"]),
- ("\u{1F1E6}\u{20}", &["\u{1F1E6}", "\u{20}"]),
- ("\u{1F1E6}\u{308}\u{20}", &["\u{1F1E6}\u{308}", "\u{20}"]),
- ("\u{1F1E6}\u{D}", &["\u{1F1E6}", "\u{D}"]),
- ("\u{1F1E6}\u{308}\u{D}", &["\u{1F1E6}\u{308}", "\u{D}"]),
- ("\u{1F1E6}\u{A}", &["\u{1F1E6}", "\u{A}"]),
- ("\u{1F1E6}\u{308}\u{A}", &["\u{1F1E6}\u{308}", "\u{A}"]),
- ("\u{1F1E6}\u{1}", &["\u{1F1E6}", "\u{1}"]),
- ("\u{1F1E6}\u{308}\u{1}", &["\u{1F1E6}\u{308}", "\u{1}"]),
- ("\u{1F1E6}\u{300}", &["\u{1F1E6}\u{300}"]),
- ("\u{1F1E6}\u{308}\u{300}", &["\u{1F1E6}\u{308}\u{300}"]),
- ("\u{1F1E6}\u{1100}", &["\u{1F1E6}", "\u{1100}"]),
- ("\u{1F1E6}\u{308}\u{1100}", &["\u{1F1E6}\u{308}", "\u{1100}"]),
- ("\u{1F1E6}\u{1160}", &["\u{1F1E6}", "\u{1160}"]),
- ("\u{1F1E6}\u{308}\u{1160}", &["\u{1F1E6}\u{308}", "\u{1160}"]),
- ("\u{1F1E6}\u{11A8}", &["\u{1F1E6}", "\u{11A8}"]),
- ("\u{1F1E6}\u{308}\u{11A8}", &["\u{1F1E6}\u{308}", "\u{11A8}"]),
- ("\u{1F1E6}\u{AC00}", &["\u{1F1E6}", "\u{AC00}"]),
- ("\u{1F1E6}\u{308}\u{AC00}", &["\u{1F1E6}\u{308}", "\u{AC00}"]),
- ("\u{1F1E6}\u{AC01}", &["\u{1F1E6}", "\u{AC01}"]),
- ("\u{1F1E6}\u{308}\u{AC01}", &["\u{1F1E6}\u{308}", "\u{AC01}"]),
- ("\u{1F1E6}\u{1F1E6}", &["\u{1F1E6}\u{1F1E6}"]),
- ("\u{1F1E6}\u{308}\u{1F1E6}", &["\u{1F1E6}\u{308}", "\u{1F1E6}"]),
- ("\u{1F1E6}\u{378}", &["\u{1F1E6}", "\u{378}"]),
- ("\u{1F1E6}\u{308}\u{378}", &["\u{1F1E6}\u{308}", "\u{378}"]),
- ("\u{378}\u{20}", &["\u{378}", "\u{20}"]),
- ("\u{378}\u{308}\u{20}", &["\u{378}\u{308}", "\u{20}"]),
- ("\u{378}\u{D}", &["\u{378}", "\u{D}"]),
- ("\u{378}\u{308}\u{D}", &["\u{378}\u{308}", "\u{D}"]),
- ("\u{378}\u{A}", &["\u{378}", "\u{A}"]),
- ("\u{378}\u{308}\u{A}", &["\u{378}\u{308}", "\u{A}"]),
- ("\u{378}\u{1}", &["\u{378}", "\u{1}"]),
- ("\u{378}\u{308}\u{1}", &["\u{378}\u{308}", "\u{1}"]),
- ("\u{378}\u{300}", &["\u{378}\u{300}"]),
- ("\u{378}\u{308}\u{300}", &["\u{378}\u{308}\u{300}"]),
- ("\u{378}\u{1100}", &["\u{378}", "\u{1100}"]),
- ("\u{378}\u{308}\u{1100}", &["\u{378}\u{308}", "\u{1100}"]),
- ("\u{378}\u{1160}", &["\u{378}", "\u{1160}"]),
- ("\u{378}\u{308}\u{1160}", &["\u{378}\u{308}", "\u{1160}"]),
- ("\u{378}\u{11A8}", &["\u{378}", "\u{11A8}"]),
- ("\u{378}\u{308}\u{11A8}", &["\u{378}\u{308}", "\u{11A8}"]),
- ("\u{378}\u{AC00}", &["\u{378}", "\u{AC00}"]),
- ("\u{378}\u{308}\u{AC00}", &["\u{378}\u{308}", "\u{AC00}"]),
- ("\u{378}\u{AC01}", &["\u{378}", "\u{AC01}"]),
- ("\u{378}\u{308}\u{AC01}", &["\u{378}\u{308}", "\u{AC01}"]),
- ("\u{378}\u{1F1E6}", &["\u{378}", "\u{1F1E6}"]),
- ("\u{378}\u{308}\u{1F1E6}", &["\u{378}\u{308}", "\u{1F1E6}"]),
- ("\u{378}\u{378}", &["\u{378}", "\u{378}"]),
- ("\u{378}\u{308}\u{378}", &["\u{378}\u{308}", "\u{378}"]),
- ("\u{61}\u{1F1E6}\u{62}", &["\u{61}", "\u{1F1E6}", "\u{62}"]),
- ("\u{1F1F7}\u{1F1FA}", &["\u{1F1F7}\u{1F1FA}"]),
- ("\u{1F1F7}\u{1F1FA}\u{1F1F8}", &["\u{1F1F7}\u{1F1FA}\u{1F1F8}"]),
- ("\u{1F1F7}\u{1F1FA}\u{1F1F8}\u{1F1EA}",
- &["\u{1F1F7}\u{1F1FA}\u{1F1F8}\u{1F1EA}"]),
- ("\u{1F1F7}\u{1F1FA}\u{200B}\u{1F1F8}\u{1F1EA}",
- &["\u{1F1F7}\u{1F1FA}", "\u{200B}", "\u{1F1F8}\u{1F1EA}"]),
- ("\u{1F1E6}\u{1F1E7}\u{1F1E8}", &["\u{1F1E6}\u{1F1E7}\u{1F1E8}"]),
- ("\u{1F1E6}\u{200D}\u{1F1E7}\u{1F1E8}", &["\u{1F1E6}\u{200D}",
- "\u{1F1E7}\u{1F1E8}"]),
- ("\u{1F1E6}\u{1F1E7}\u{200D}\u{1F1E8}",
- &["\u{1F1E6}\u{1F1E7}\u{200D}", "\u{1F1E8}"]),
- ("\u{20}\u{200D}\u{646}", &["\u{20}\u{200D}", "\u{646}"]),
- ("\u{646}\u{200D}\u{20}", &["\u{646}\u{200D}", "\u{20}"]),
- ];
-
- let test_diff: [(_, &[_], &[_]); 23] = [
- ("\u{20}\u{903}", &["\u{20}\u{903}"], &["\u{20}", "\u{903}"]), ("\u{20}\u{308}\u{903}",
- &["\u{20}\u{308}\u{903}"], &["\u{20}\u{308}", "\u{903}"]), ("\u{D}\u{308}\u{903}",
- &["\u{D}", "\u{308}\u{903}"], &["\u{D}", "\u{308}", "\u{903}"]), ("\u{A}\u{308}\u{903}",
- &["\u{A}", "\u{308}\u{903}"], &["\u{A}", "\u{308}", "\u{903}"]), ("\u{1}\u{308}\u{903}",
- &["\u{1}", "\u{308}\u{903}"], &["\u{1}", "\u{308}", "\u{903}"]), ("\u{300}\u{903}",
- &["\u{300}\u{903}"], &["\u{300}", "\u{903}"]), ("\u{300}\u{308}\u{903}",
- &["\u{300}\u{308}\u{903}"], &["\u{300}\u{308}", "\u{903}"]), ("\u{903}\u{903}",
- &["\u{903}\u{903}"], &["\u{903}", "\u{903}"]), ("\u{903}\u{308}\u{903}",
- &["\u{903}\u{308}\u{903}"], &["\u{903}\u{308}", "\u{903}"]), ("\u{1100}\u{903}",
- &["\u{1100}\u{903}"], &["\u{1100}", "\u{903}"]), ("\u{1100}\u{308}\u{903}",
- &["\u{1100}\u{308}\u{903}"], &["\u{1100}\u{308}", "\u{903}"]), ("\u{1160}\u{903}",
- &["\u{1160}\u{903}"], &["\u{1160}", "\u{903}"]), ("\u{1160}\u{308}\u{903}",
- &["\u{1160}\u{308}\u{903}"], &["\u{1160}\u{308}", "\u{903}"]), ("\u{11A8}\u{903}",
- &["\u{11A8}\u{903}"], &["\u{11A8}", "\u{903}"]), ("\u{11A8}\u{308}\u{903}",
- &["\u{11A8}\u{308}\u{903}"], &["\u{11A8}\u{308}", "\u{903}"]), ("\u{AC00}\u{903}",
- &["\u{AC00}\u{903}"], &["\u{AC00}", "\u{903}"]), ("\u{AC00}\u{308}\u{903}",
- &["\u{AC00}\u{308}\u{903}"], &["\u{AC00}\u{308}", "\u{903}"]), ("\u{AC01}\u{903}",
- &["\u{AC01}\u{903}"], &["\u{AC01}", "\u{903}"]), ("\u{AC01}\u{308}\u{903}",
- &["\u{AC01}\u{308}\u{903}"], &["\u{AC01}\u{308}", "\u{903}"]), ("\u{1F1E6}\u{903}",
- &["\u{1F1E6}\u{903}"], &["\u{1F1E6}", "\u{903}"]), ("\u{1F1E6}\u{308}\u{903}",
- &["\u{1F1E6}\u{308}\u{903}"], &["\u{1F1E6}\u{308}", "\u{903}"]), ("\u{378}\u{903}",
- &["\u{378}\u{903}"], &["\u{378}", "\u{903}"]), ("\u{378}\u{308}\u{903}",
- &["\u{378}\u{308}\u{903}"], &["\u{378}\u{308}", "\u{903}"]),
- ];
-
- for &(s, g) in &test_same[..] {
- // test forward iterator
- assert!(order::equals(s.graphemes(true), g.iter().cloned()));
- assert!(order::equals(s.graphemes(false), g.iter().cloned()));
-
- // test reverse iterator
- assert!(order::equals(s.graphemes(true).rev(), g.iter().rev().cloned()));
- assert!(order::equals(s.graphemes(false).rev(), g.iter().rev().cloned()));
- }
-
- for &(s, gt, gf) in &test_diff {
- // test forward iterator
- assert!(order::equals(s.graphemes(true), gt.iter().cloned()));
- assert!(order::equals(s.graphemes(false), gf.iter().cloned()));
-
- // test reverse iterator
- assert!(order::equals(s.graphemes(true).rev(), gt.iter().rev().cloned()));
- assert!(order::equals(s.graphemes(false).rev(), gf.iter().rev().cloned()));
- }
-
- // test the indices iterators
- let s = "a̐éö̲\r\n";
- let gr_inds = s.grapheme_indices(true).collect::<Vec<(usize, &str)>>();
- let b: &[_] = &[(0, "a̐"), (3, "é"), (6, "ö̲"), (11, "\r\n")];
- assert_eq!(gr_inds, b);
- let gr_inds = s.grapheme_indices(true).rev().collect::<Vec<(usize, &str)>>();
- let b: &[_] = &[(11, "\r\n"), (6, "ö̲"), (3, "é"), (0, "a̐")];
- assert_eq!(gr_inds, b);
- let mut gr_inds_iter = s.grapheme_indices(true);
- {
- let gr_inds = gr_inds_iter.by_ref();
- let e1 = gr_inds.size_hint();
- assert_eq!(e1, (1, Some(13)));
- let c = gr_inds.count();
- assert_eq!(c, 4);
- }
- let e2 = gr_inds_iter.size_hint();
- assert_eq!(e2, (0, Some(0)));
-
- // make sure the reverse iterator does the right thing with "\n" at beginning of string
- let s = "\n\r\n\r";
- let gr = s.graphemes(true).rev().collect::<Vec<&str>>();
- let b: &[_] = &["\r", "\r\n", "\n"];
- assert_eq!(gr, b);
-}
-