@@ -216,3 +216,43 @@ fn test_decode_utf16() {
216216 check ( & [ 0xD800 , 0x41 , 0x42 ] , & [ Err ( 0xD800 ) , Ok ( 'A' ) , Ok ( 'B' ) ] ) ;
217217 check ( & [ 0xD800 , 0 ] , & [ Err ( 0xD800 ) , Ok ( '\0' ) ] ) ;
218218}
219+
220+ #[ test]
221+ fn ed_iterator_specializations ( ) {
222+ // Check counting
223+ assert_eq ! ( '\n' . escape_default( ) . count( ) , 2 ) ;
224+ assert_eq ! ( 'c' . escape_default( ) . count( ) , 1 ) ;
225+ assert_eq ! ( ' ' . escape_default( ) . count( ) , 1 ) ;
226+ assert_eq ! ( '\\' . escape_default( ) . count( ) , 2 ) ;
227+ assert_eq ! ( '\'' . escape_default( ) . count( ) , 2 ) ;
228+
229+ // Check nth
230+
231+ // Check that OoB is handled correctly
232+ assert_eq ! ( '\n' . escape_default( ) . nth( 2 ) , None ) ;
233+ assert_eq ! ( 'c' . escape_default( ) . nth( 1 ) , None ) ;
234+ assert_eq ! ( ' ' . escape_default( ) . nth( 1 ) , None ) ;
235+ assert_eq ! ( '\\' . escape_default( ) . nth( 2 ) , None ) ;
236+ assert_eq ! ( '\'' . escape_default( ) . nth( 2 ) , None ) ;
237+
238+ // Check the first char
239+ assert_eq ! ( '\n' . escape_default( ) . nth( 0 ) , Some ( '\\' ) ) ;
240+ assert_eq ! ( 'c' . escape_default( ) . nth( 0 ) , Some ( 'c' ) ) ;
241+ assert_eq ! ( ' ' . escape_default( ) . nth( 0 ) , Some ( ' ' ) ) ;
242+ assert_eq ! ( '\\' . escape_default( ) . nth( 0 ) , Some ( '\\' ) ) ;
243+ assert_eq ! ( '\'' . escape_default( ) . nth( 0 ) , Some ( '\\' ) ) ;
244+
245+ // Check the second char
246+ assert_eq ! ( '\n' . escape_default( ) . nth( 1 ) , Some ( 'n' ) ) ;
247+ assert_eq ! ( '\\' . escape_default( ) . nth( 1 ) , Some ( '\\' ) ) ;
248+ assert_eq ! ( '\'' . escape_default( ) . nth( 1 ) , Some ( '\'' ) ) ;
249+
250+ // Check the last char
251+ assert_eq ! ( '\n' . escape_default( ) . last( ) , Some ( 'n' ) ) ;
252+ assert_eq ! ( 'c' . escape_default( ) . last( ) , Some ( 'c' ) ) ;
253+ assert_eq ! ( ' ' . escape_default( ) . last( ) , Some ( ' ' ) ) ;
254+ assert_eq ! ( '\\' . escape_default( ) . last( ) , Some ( '\\' ) ) ;
255+ assert_eq ! ( '\'' . escape_default( ) . last( ) , Some ( '\'' ) ) ;
256+ }
257+
258+
0 commit comments