use super::*;
use chrono::Datelike;
use chrono::TimeZone;
use chrono::Utc;
use rstest::rstest;
#[rstest]
#[case(13, true)] #[case("13", true)] #[case("۱۳", true)] #[case("XIII", true)] #[case("xiii", true)] #[case("IIIIIIIIIIIII", true)] #[case("IlIlIlIlIlIlI", true)] #[case("https://en.wikipedia.org/wiki/This_Is_Thirteen", true)] #[case(
"https://scontent.cdninstagram.com/hphotos-xtf1/t51.2885-15/s320x320/e35/12237511_444845689040315_1101385461_n.jpg",
true,
)] #[case("http://www.metal-archives.com/images/1/5/3/7/153772.jpg", false)] #[case("https://www.youtube.com/watch?v=pte3Jg-2Ax4", true)] #[case("https://www.youtube.com/watch?v=33Kv5D2zwyc", true)] #[case("thirteen", true)] #[case("Thirteen", true)] #[case("Remy Hadley", true)] #[case("Olivia Wilde", true)] #[case("weedle", true)] #[case("baker's dozen", true)] #[case("Dr. Remy Beauregard Hadley", true)] #[case("Patty Tsai", true)] #[case("PT", true)] #[case("Washington Luís", true)] #[case("Millard Fillmore", true)] #[case("https://en.wikipedia.org/wiki/XIII_(video_game)", true)] #[case("http://www.imdb.com/title/tt0798817/", true)] #[case("https://www.imdb.com/title/tt2991516/", true)] #[case(Utc.ymd(2021, 1, 1).year() - Utc.ymd(2003, 1, 1).year(), false)] #[case("13+0i", true)] #[case("13i", true)] #[case("13 + 13i", true)] #[case("12i", false)] #[case("Ei", true)] #[case("EI", true)] #[case("E1", true)] #[case("El", true)] #[case("E|", true)] #[case("ƖƐ", true)] #[case("ƐƖ", true)] #[case("th1rt33n", true)] #[case("th1rte3n", true)] #[case("th1rteen", true)] #[case("thirt3en", true)] #[case("thirt33n", true)] #[case("thirte3n", true)] #[case("dertien", true)] #[case("ثلاثة عشر", true)] #[case("تلطاشر", true)] #[case("تلتاشر", true)] #[case("طلتاشر", true)] #[case("طلطاشر", true)] #[case("dertiendertien", true)] #[case("seri-un-teng", true)] #[case("seriunteng", true)] #[case("serí-un-teng", true)] #[case("seríunteng", true)] #[case("тринадесет", true)] #[case("тринайсет", true)] #[case("tretze", true)] #[case("napulo ug tulo", true)] #[case("třináct", true)] #[case("十三", true)] #[case("拾參", true)] #[case("拾叁", true)] #[case("拾叄", true)] #[case("拾参", true)] #[case("trinaest", true)] #[case("tretten", true)] #[case("senthi", true)] #[case("kolmteist", true)] #[case("thirteen", true)] #[case("labintatlo", true)] #[case("kolmetoista", true)] #[case("treize", true)] #[case("treizième", true)] #[case("dreizehn", true)] #[case("ცამეტი", true)] #[case("‘umikūmākolu", true)] #[case("שלוש עשרה", true)] #[case("שלושעשרה", true)] #[case("ֹשְלֹש- עֶשְֹרֵה", true)] #[case("שלושה עשר", true)] #[case("שלושהעשר", true)] #[case("ֹשְלֹשָה- עָשָֹר", true)] #[case("יג", true)] #[case("י״ג", true)] #[case("तेरह", true)] #[case("tizenhárom", true)] #[case("trí déag", true)] #[case("tredici", true)] #[case("on üç", true)] #[case("ಹದಿಮೂರು", true)] #[case("పదమూడు", true)] #[case("೧೩", true)] #[case("열셋", true)] #[case("십삼", true)] #[case("sêzdeh", true)] #[case("tredecim", true)] #[case("trīspadsmit", true)] #[case("trylika", true)] #[case("dräizéng", true)] #[case("тринаесет", true)] #[case("tiga belas", true)] #[case("арван", true)] #[case(".---- ...--", true)] #[case("matlactlihuan yei", true)] #[case("mahtlactli omei", true)] #[case("mahtlactli ihuan yei", true)] #[case("irteenthay", true)] #[case("trzynaście", true)] #[case("trzynasty", true)] #[case("trzynasta", true)] #[case("trzynaste", true)] #[case("trzynaści", true)] #[case("trzynastego", true)] #[case("trzynastej", true)] #[case("trzynastych", true)] #[case("trzynastemu", true)] #[case("trzynastym", true)] #[case("trzynastą", true)] #[case("trzynastymi", true)] #[case("trzynastu", true)] #[case("trzynastek", true)] #[case("trzynastoma", true)] #[case("trzynaścioro", true)] #[case("trzynastka", true)] #[case("trzynastki", true)] #[case("trzynastką", true)] #[case("trzynastce", true)] #[case("trzynastko", true)] #[case("trzynaściorgiem", true)] #[case("trzynaściorgu", true)] #[case("trzynaściorga", true)] #[case("trzynastokrotny", true)] #[case("trzynastokrotnie", true)] #[case("trzynastokrotną", true)] #[case("trzynastokrotnemu", true)] #[case("trzynastokrotnej", true)] #[case("trzynastokrotnych", true)] #[case("trzynastokrotność", true)] #[case("trzynastokrotności", true)] #[case("trzynastokrotnością", true)] #[case("treze", true)] #[case("ਤੇਰਾਂ", true)] #[case("੧੩", true)] #[case("treisprezece", true)] #[case("тринадцать", true)] #[case("тринаест", true)] #[case("trinásť", true)] #[case("wa’maH wej", true)] #[case("trinajst", true)] #[case("trece", true)] #[case("dektri", true)] #[case("trese", true)] #[case("tretton", true)] #[case("பதின்மூன்று", true)] #[case("สิบสาม", true)] #[case("тринадцять", true)] #[case("تیرہ", true)] #[case("tayra", true)] #[case("tri ar ddeg", true)] #[case("דרייַצן", true)] #[case("דרייצן", true)] #[case("kumi na tatu", true)] #[case("പതിമൂന്ന്", true)] #[case("१३", true)] #[case("तेह्र", true)] #[case("quainel", true)] #[case("mînuiug", true)] #[case("7h1r733n", true)] #[case("B", true)] #[case("b", false)] #[case("ß", true)] #[case("ẞ", true)] #[case("Β", true)] #[case("β", true)] #[case("阝", true)] #[case("i3", true)] #[case("I3", true)] #[case("l3", true)] #[case("L3", true)] #[case("|3", true)] #[case("!3", true)] #[case("Dilma", true)] #[case(25 - 12, true)] #[case(1 + 12, true)] #[case((2 * 8 + 11 - 1) / 2, true)] #[case((10 - 1 + 32) / 4 * 3, false)] #[case(Roughly(((5.3 + 0.5) * 5.0 - 4.0) / 2.0), true)] #[case(13, true)] #[case(14, false)] #[case(u8::from_str_radix("1101", 2).unwrap(), true)] #[case(u8::from_str_radix("1111", 2).unwrap(), false)] #[case(u8::from_str_radix("15", 8).unwrap(), true)] #[case(u8::from_str_radix("13", 8).unwrap(), false)] #[case(u8::from_str_radix("d", 16).unwrap(), true)] #[case(u8::from_str_radix("D", 16).unwrap(), true)] #[case(u8::from_str_radix("A", 16).unwrap(), false)] #[case(Returns(|| 13), true)] #[case("|||||||||||||", true)] #[case("/////////////", true)] #[case("🐱🐱🐱🐱🐱🐱🐱🐱🐱🐱🐱🐱🐱", true)] #[case("oooooooooooooo", false)] #[case("bbbbbbbbbbb", false)] #[case("||h||||||||||", false)] #[case("///i/////////", false)] #[case(0, false)] #[case(13.0, true)] #[case("", false)] #[case("13".to_string(), true)] #[case(true, false)] #[case('1', false)] #[case('B', true)] #[case((), false)] #[case("1111111111111", true)] #[case(Roughly(0.0), false)] #[case(Roughly(12.5), true)] #[case(Roughly(13.0), true)] #[case(Roughly(13.4), true)] #[case(Roughly(13.5), false)] #[case(Within::new(0.0, 1.0), false)] #[case(Within::new(12.0, 1.0), true)] #[case(CanSpell::new(""), false)] #[case(CanSpell::new("eihbtrtAecdn"), true)] #[case(AnagramOf::new(""), false)] #[case(AnagramOf::new("nRteehit"), true)] #[case(Backwards(""), false)] #[case(Backwards("neetRiht"), true)] #[case(AtomicNumber(""), false)] #[case(AtomicNumber("Aluminum"), true)] #[case(DivisibleBy(1), false)] #[case(DivisibleBy(13.0), true)] #[case(GreaterThan(13.0), false)] #[case(GreaterThan(14), true)] #[case(LessThan(13), false)] #[case(LessThan(12.0), true)] fn is_thirteen<T>(#[case] input: T, #[case] expected: bool)
where
T: IsThirteen,
{
assert_eq!(input.thirteen(), expected);
}
#[rstest]
#[case("", false)]
#[case("aaaaaaaaaaaaa", true)]
#[case("aaaaaaaaaaaab", false)]
fn test_is_thirteen_equal_chars(#[case] s: &str, #[case] expected: bool) {
assert_eq!(is_thirteen_equal_chars(s), expected);
}
#[test]
fn thirteen_strings() {
assert!(THIRTEEN_STRINGS
.iter()
.filter(|&&s| s != "B")
.all(|&s| s == s.to_lowercase()));
}