Skip to content

Commit 1b3d1fc

Browse files
committed
Move tests, re-export items from core::ascii
1 parent 9bfc062 commit 1b3d1fc

File tree

3 files changed

+353
-829
lines changed

3 files changed

+353
-829
lines changed

src/libcore/ascii.rs

+1-355
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
//!
2020
//! [`escape_default`]: fn.escape_default.html
2121
22-
#![stable(feature = "rust1", since = "1.0.0")]
22+
#![stable(feature = "core_ascii", since = "1.26.0")]
2323

2424
use fmt;
2525
use ops::Range;
@@ -145,357 +145,3 @@ impl fmt::Debug for EscapeDefault {
145145
f.pad("EscapeDefault { .. }")
146146
}
147147
}
148-
149-
150-
#[cfg(test)]
151-
mod tests {
152-
use char::from_u32;
153-
154-
#[test]
155-
fn test_is_ascii() {
156-
assert!(b"".is_ascii());
157-
assert!(b"banana\0\x7F".is_ascii());
158-
assert!(b"banana\0\x7F".iter().all(|b| b.is_ascii()));
159-
assert!(!b"Vi\xe1\xbb\x87t Nam".is_ascii());
160-
assert!(!b"Vi\xe1\xbb\x87t Nam".iter().all(|b| b.is_ascii()));
161-
assert!(!b"\xe1\xbb\x87".iter().any(|b| b.is_ascii()));
162-
163-
assert!("".is_ascii());
164-
assert!("banana\0\u{7F}".is_ascii());
165-
assert!("banana\0\u{7F}".chars().all(|c| c.is_ascii()));
166-
assert!(!"ประเทศไทย中华Việt Nam".chars().all(|c| c.is_ascii()));
167-
assert!(!"ประเทศไทย中华ệ ".chars().any(|c| c.is_ascii()));
168-
}
169-
170-
#[test]
171-
fn test_to_ascii_uppercase() {
172-
assert_eq!("url()URL()uRl()ürl".to_ascii_uppercase(), "URL()URL()URL()üRL");
173-
assert_eq!("hıKß".to_ascii_uppercase(), "HıKß");
174-
175-
for i in 0..501 {
176-
let upper = if 'a' as u32 <= i && i <= 'z' as u32 { i + 'A' as u32 - 'a' as u32 }
177-
else { i };
178-
assert_eq!((from_u32(i).unwrap()).to_string().to_ascii_uppercase(),
179-
(from_u32(upper).unwrap()).to_string());
180-
}
181-
}
182-
183-
#[test]
184-
fn test_to_ascii_lowercase() {
185-
assert_eq!("url()URL()uRl()Ürl".to_ascii_lowercase(), "url()url()url()Ürl");
186-
// Dotted capital I, Kelvin sign, Sharp S.
187-
assert_eq!("HİKß".to_ascii_lowercase(), "hİKß");
188-
189-
for i in 0..501 {
190-
let lower = if 'A' as u32 <= i && i <= 'Z' as u32 { i + 'a' as u32 - 'A' as u32 }
191-
else { i };
192-
assert_eq!((from_u32(i).unwrap()).to_string().to_ascii_lowercase(),
193-
(from_u32(lower).unwrap()).to_string());
194-
}
195-
}
196-
197-
#[test]
198-
fn test_make_ascii_lower_case() {
199-
macro_rules! test {
200-
($from: expr, $to: expr) => {
201-
{
202-
let mut x = $from;
203-
x.make_ascii_lowercase();
204-
assert_eq!(x, $to);
205-
}
206-
}
207-
}
208-
test!(b'A', b'a');
209-
test!(b'a', b'a');
210-
test!(b'!', b'!');
211-
test!('A', 'a');
212-
test!('À', 'À');
213-
test!('a', 'a');
214-
test!('!', '!');
215-
test!(b"H\xc3\x89".to_vec(), b"h\xc3\x89");
216-
test!("HİKß".to_string(), "hİKß");
217-
}
218-
219-
220-
#[test]
221-
fn test_make_ascii_upper_case() {
222-
macro_rules! test {
223-
($from: expr, $to: expr) => {
224-
{
225-
let mut x = $from;
226-
x.make_ascii_uppercase();
227-
assert_eq!(x, $to);
228-
}
229-
}
230-
}
231-
test!(b'a', b'A');
232-
test!(b'A', b'A');
233-
test!(b'!', b'!');
234-
test!('a', 'A');
235-
test!('à', 'à');
236-
test!('A', 'A');
237-
test!('!', '!');
238-
test!(b"h\xc3\xa9".to_vec(), b"H\xc3\xa9");
239-
test!("hıKß".to_string(), "HıKß");
240-
241-
let mut x = "Hello".to_string();
242-
x[..3].make_ascii_uppercase(); // Test IndexMut on String.
243-
assert_eq!(x, "HELlo")
244-
}
245-
246-
#[test]
247-
fn test_eq_ignore_ascii_case() {
248-
assert!("url()URL()uRl()Ürl".eq_ignore_ascii_case("url()url()url()Ürl"));
249-
assert!(!"Ürl".eq_ignore_ascii_case("ürl"));
250-
// Dotted capital I, Kelvin sign, Sharp S.
251-
assert!("HİKß".eq_ignore_ascii_case("hİKß"));
252-
assert!(!"İ".eq_ignore_ascii_case("i"));
253-
assert!(!"K".eq_ignore_ascii_case("k"));
254-
assert!(!"ß".eq_ignore_ascii_case("s"));
255-
256-
for i in 0..501 {
257-
let lower = if 'A' as u32 <= i && i <= 'Z' as u32 { i + 'a' as u32 - 'A' as u32 }
258-
else { i };
259-
assert!((from_u32(i).unwrap()).to_string().eq_ignore_ascii_case(
260-
&from_u32(lower).unwrap().to_string()));
261-
}
262-
}
263-
264-
#[test]
265-
fn inference_works() {
266-
let x = "a".to_string();
267-
x.eq_ignore_ascii_case("A");
268-
}
269-
270-
// Shorthands used by the is_ascii_* tests.
271-
macro_rules! assert_all {
272-
($what:ident, $($str:tt),+) => {{
273-
$(
274-
for b in $str.chars() {
275-
if !b.$what() {
276-
panic!("expected {}({}) but it isn't",
277-
stringify!($what), b);
278-
}
279-
}
280-
for b in $str.as_bytes().iter() {
281-
if !b.$what() {
282-
panic!("expected {}(0x{:02x})) but it isn't",
283-
stringify!($what), b);
284-
}
285-
}
286-
assert!($str.$what());
287-
assert!($str.as_bytes().$what());
288-
)+
289-
}};
290-
($what:ident, $($str:tt),+,) => (assert_all!($what,$($str),+))
291-
}
292-
macro_rules! assert_none {
293-
($what:ident, $($str:tt),+) => {{
294-
$(
295-
for b in $str.chars() {
296-
if b.$what() {
297-
panic!("expected not-{}({}) but it is",
298-
stringify!($what), b);
299-
}
300-
}
301-
for b in $str.as_bytes().iter() {
302-
if b.$what() {
303-
panic!("expected not-{}(0x{:02x})) but it is",
304-
stringify!($what), b);
305-
}
306-
}
307-
)*
308-
}};
309-
($what:ident, $($str:tt),+,) => (assert_none!($what,$($str),+))
310-
}
311-
312-
#[test]
313-
fn test_is_ascii_alphabetic() {
314-
assert_all!(is_ascii_alphabetic,
315-
"",
316-
"abcdefghijklmnopqrstuvwxyz",
317-
"ABCDEFGHIJKLMNOQPRSTUVWXYZ",
318-
);
319-
assert_none!(is_ascii_alphabetic,
320-
"0123456789",
321-
"!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~",
322-
" \t\n\x0c\r",
323-
"\x00\x01\x02\x03\x04\x05\x06\x07",
324-
"\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f",
325-
"\x10\x11\x12\x13\x14\x15\x16\x17",
326-
"\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f",
327-
"\x7f",
328-
);
329-
}
330-
331-
#[test]
332-
fn test_is_ascii_uppercase() {
333-
assert_all!(is_ascii_uppercase,
334-
"",
335-
"ABCDEFGHIJKLMNOQPRSTUVWXYZ",
336-
);
337-
assert_none!(is_ascii_uppercase,
338-
"abcdefghijklmnopqrstuvwxyz",
339-
"0123456789",
340-
"!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~",
341-
" \t\n\x0c\r",
342-
"\x00\x01\x02\x03\x04\x05\x06\x07",
343-
"\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f",
344-
"\x10\x11\x12\x13\x14\x15\x16\x17",
345-
"\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f",
346-
"\x7f",
347-
);
348-
}
349-
350-
#[test]
351-
fn test_is_ascii_lowercase() {
352-
assert_all!(is_ascii_lowercase,
353-
"abcdefghijklmnopqrstuvwxyz",
354-
);
355-
assert_none!(is_ascii_lowercase,
356-
"ABCDEFGHIJKLMNOQPRSTUVWXYZ",
357-
"0123456789",
358-
"!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~",
359-
" \t\n\x0c\r",
360-
"\x00\x01\x02\x03\x04\x05\x06\x07",
361-
"\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f",
362-
"\x10\x11\x12\x13\x14\x15\x16\x17",
363-
"\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f",
364-
"\x7f",
365-
);
366-
}
367-
368-
#[test]
369-
fn test_is_ascii_alphanumeric() {
370-
assert_all!(is_ascii_alphanumeric,
371-
"",
372-
"abcdefghijklmnopqrstuvwxyz",
373-
"ABCDEFGHIJKLMNOQPRSTUVWXYZ",
374-
"0123456789",
375-
);
376-
assert_none!(is_ascii_alphanumeric,
377-
"!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~",
378-
" \t\n\x0c\r",
379-
"\x00\x01\x02\x03\x04\x05\x06\x07",
380-
"\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f",
381-
"\x10\x11\x12\x13\x14\x15\x16\x17",
382-
"\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f",
383-
"\x7f",
384-
);
385-
}
386-
387-
#[test]
388-
fn test_is_ascii_digit() {
389-
assert_all!(is_ascii_digit,
390-
"",
391-
"0123456789",
392-
);
393-
assert_none!(is_ascii_digit,
394-
"abcdefghijklmnopqrstuvwxyz",
395-
"ABCDEFGHIJKLMNOQPRSTUVWXYZ",
396-
"!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~",
397-
" \t\n\x0c\r",
398-
"\x00\x01\x02\x03\x04\x05\x06\x07",
399-
"\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f",
400-
"\x10\x11\x12\x13\x14\x15\x16\x17",
401-
"\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f",
402-
"\x7f",
403-
);
404-
}
405-
406-
#[test]
407-
fn test_is_ascii_hexdigit() {
408-
assert_all!(is_ascii_hexdigit,
409-
"",
410-
"0123456789",
411-
"abcdefABCDEF",
412-
);
413-
assert_none!(is_ascii_hexdigit,
414-
"ghijklmnopqrstuvwxyz",
415-
"GHIJKLMNOQPRSTUVWXYZ",
416-
"!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~",
417-
" \t\n\x0c\r",
418-
"\x00\x01\x02\x03\x04\x05\x06\x07",
419-
"\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f",
420-
"\x10\x11\x12\x13\x14\x15\x16\x17",
421-
"\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f",
422-
"\x7f",
423-
);
424-
}
425-
426-
#[test]
427-
fn test_is_ascii_punctuation() {
428-
assert_all!(is_ascii_punctuation,
429-
"",
430-
"!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~",
431-
);
432-
assert_none!(is_ascii_punctuation,
433-
"abcdefghijklmnopqrstuvwxyz",
434-
"ABCDEFGHIJKLMNOQPRSTUVWXYZ",
435-
"0123456789",
436-
" \t\n\x0c\r",
437-
"\x00\x01\x02\x03\x04\x05\x06\x07",
438-
"\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f",
439-
"\x10\x11\x12\x13\x14\x15\x16\x17",
440-
"\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f",
441-
"\x7f",
442-
);
443-
}
444-
445-
#[test]
446-
fn test_is_ascii_graphic() {
447-
assert_all!(is_ascii_graphic,
448-
"",
449-
"abcdefghijklmnopqrstuvwxyz",
450-
"ABCDEFGHIJKLMNOQPRSTUVWXYZ",
451-
"0123456789",
452-
"!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~",
453-
);
454-
assert_none!(is_ascii_graphic,
455-
" \t\n\x0c\r",
456-
"\x00\x01\x02\x03\x04\x05\x06\x07",
457-
"\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f",
458-
"\x10\x11\x12\x13\x14\x15\x16\x17",
459-
"\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f",
460-
"\x7f",
461-
);
462-
}
463-
464-
#[test]
465-
fn test_is_ascii_whitespace() {
466-
assert_all!(is_ascii_whitespace,
467-
"",
468-
" \t\n\x0c\r",
469-
);
470-
assert_none!(is_ascii_whitespace,
471-
"abcdefghijklmnopqrstuvwxyz",
472-
"ABCDEFGHIJKLMNOQPRSTUVWXYZ",
473-
"0123456789",
474-
"!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~",
475-
"\x00\x01\x02\x03\x04\x05\x06\x07",
476-
"\x08\x0b\x0e\x0f",
477-
"\x10\x11\x12\x13\x14\x15\x16\x17",
478-
"\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f",
479-
"\x7f",
480-
);
481-
}
482-
483-
#[test]
484-
fn test_is_ascii_control() {
485-
assert_all!(is_ascii_control,
486-
"",
487-
"\x00\x01\x02\x03\x04\x05\x06\x07",
488-
"\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f",
489-
"\x10\x11\x12\x13\x14\x15\x16\x17",
490-
"\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f",
491-
"\x7f",
492-
);
493-
assert_none!(is_ascii_control,
494-
"abcdefghijklmnopqrstuvwxyz",
495-
"ABCDEFGHIJKLMNOQPRSTUVWXYZ",
496-
"0123456789",
497-
"!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~",
498-
" ",
499-
);
500-
}
501-
}

0 commit comments

Comments
 (0)