16855e09eSopenharmony_ciuse super::streaming::*;
26855e09eSopenharmony_ciuse crate::error::ErrorKind;
36855e09eSopenharmony_ciuse crate::internal::{Err, IResult};
46855e09eSopenharmony_ci
56855e09eSopenharmony_ci#[test]
66855e09eSopenharmony_cifn one_of_test() {
76855e09eSopenharmony_ci  fn f(i: &[u8]) -> IResult<&[u8], char> {
86855e09eSopenharmony_ci    one_of("ab")(i)
96855e09eSopenharmony_ci  }
106855e09eSopenharmony_ci
116855e09eSopenharmony_ci  let a = &b"abcd"[..];
126855e09eSopenharmony_ci  assert_eq!(f(a), Ok((&b"bcd"[..], 'a')));
136855e09eSopenharmony_ci
146855e09eSopenharmony_ci  let b = &b"cde"[..];
156855e09eSopenharmony_ci  assert_eq!(f(b), Err(Err::Error(error_position!(b, ErrorKind::OneOf))));
166855e09eSopenharmony_ci
176855e09eSopenharmony_ci  fn utf8(i: &str) -> IResult<&str, char> {
186855e09eSopenharmony_ci    one_of("+\u{FF0B}")(i)
196855e09eSopenharmony_ci  }
206855e09eSopenharmony_ci
216855e09eSopenharmony_ci  assert!(utf8("+").is_ok());
226855e09eSopenharmony_ci  assert!(utf8("\u{FF0B}").is_ok());
236855e09eSopenharmony_ci}
246855e09eSopenharmony_ci
256855e09eSopenharmony_ci#[test]
266855e09eSopenharmony_cifn none_of_test() {
276855e09eSopenharmony_ci  fn f(i: &[u8]) -> IResult<&[u8], char> {
286855e09eSopenharmony_ci    none_of("ab")(i)
296855e09eSopenharmony_ci  }
306855e09eSopenharmony_ci
316855e09eSopenharmony_ci  let a = &b"abcd"[..];
326855e09eSopenharmony_ci  assert_eq!(f(a), Err(Err::Error(error_position!(a, ErrorKind::NoneOf))));
336855e09eSopenharmony_ci
346855e09eSopenharmony_ci  let b = &b"cde"[..];
356855e09eSopenharmony_ci  assert_eq!(f(b), Ok((&b"de"[..], 'c')));
366855e09eSopenharmony_ci}
376855e09eSopenharmony_ci
386855e09eSopenharmony_ci#[test]
396855e09eSopenharmony_cifn char_byteslice() {
406855e09eSopenharmony_ci  fn f(i: &[u8]) -> IResult<&[u8], char> {
416855e09eSopenharmony_ci    char('c')(i)
426855e09eSopenharmony_ci  }
436855e09eSopenharmony_ci
446855e09eSopenharmony_ci  let a = &b"abcd"[..];
456855e09eSopenharmony_ci  assert_eq!(f(a), Err(Err::Error(error_position!(a, ErrorKind::Char))));
466855e09eSopenharmony_ci
476855e09eSopenharmony_ci  let b = &b"cde"[..];
486855e09eSopenharmony_ci  assert_eq!(f(b), Ok((&b"de"[..], 'c')));
496855e09eSopenharmony_ci}
506855e09eSopenharmony_ci
516855e09eSopenharmony_ci#[test]
526855e09eSopenharmony_cifn char_str() {
536855e09eSopenharmony_ci  fn f(i: &str) -> IResult<&str, char> {
546855e09eSopenharmony_ci    char('c')(i)
556855e09eSopenharmony_ci  }
566855e09eSopenharmony_ci
576855e09eSopenharmony_ci  let a = &"abcd"[..];
586855e09eSopenharmony_ci  assert_eq!(f(a), Err(Err::Error(error_position!(a, ErrorKind::Char))));
596855e09eSopenharmony_ci
606855e09eSopenharmony_ci  let b = &"cde"[..];
616855e09eSopenharmony_ci  assert_eq!(f(b), Ok((&"de"[..], 'c')));
626855e09eSopenharmony_ci}
63