1use std::collections::HashMap;
2use std::convert::TryInto;
3use std::path::Path;
4use std::path::PathBuf;
5use std::time::Duration;
6
7use futures::future::ready;
8use futures::io::AsyncRead;
9use futures::stream::Stream;
10use futures::stream::StreamExt;
11use futures::stream::TryStreamExt;
12
13use async_compression::futures::bufread::GzipDecoder;
14use const_format::formatcp;
15use csv_async::AsyncReaderBuilder;
16use tracing::instrument;
17
18use indexkv::Store;
19
20use crate::Error;
21
22use crate::Episode;
23use crate::episode::EpisodeLinkFromImdb;
24use crate::EpisodeLink;
25use crate::Movie;
26use crate::Show;
27use crate::Title;
28use crate::title::TitleFromImdb;
29
30use crate::movie::title_matches_movie_name_and_year;
31use crate::show::title_matches_show_name_and_year;
32
33pub(crate) const BASE_URL: &str = "https://datasets.imdbws.com/";
34
35pub(crate) const EPISODES_FILE: &str = "title.episode";
36pub(crate) const TITLES_FILE: &str = "title.basics";
37
38pub(crate) const EPISODES_URL: &str = formatcp!("{}{}.tsv.gz", BASE_URL, EPISODES_FILE);
39pub(crate) const TITLES_URL: &str = formatcp!("{}{}.tsv.gz", BASE_URL, TITLES_FILE);
40
41pub struct Client {
43 cache_invalidation_time: Duration,
44 title_cache_path: PathBuf,
45 title_cache: Store<u32, Title>,
46 episode_cache_path: PathBuf,
47 episode_cache: Store<u32, Vec<EpisodeLink>>,
48 http: reqwest::Client
49}
50
51impl Client {
52 pub async fn new(cache_invalidation_time: Duration, cache_directory: impl AsRef<Path> + Send + Sync) -> Result<Self, Error> {
55 if let Err(err) = tokio::fs::create_dir_all(&cache_directory).await {
56 if(err.kind() != std::io::ErrorKind::AlreadyExists) {
57 return Err(err.into());
58 }
59 }
60 let title_cache_path = Self::cache_path(cache_directory.as_ref(), TITLES_FILE);
61 let episode_cache_path = Self::cache_path(cache_directory.as_ref(), EPISODES_FILE);
62 Ok(Self{
63 cache_invalidation_time,
64 title_cache: Store::new(&title_cache_path).await?,
65 title_cache_path,
66 episode_cache: Store::new(&episode_cache_path).await?,
67 episode_cache_path,
68 http: reqwest::Client::new()
69 })
70 } #[inline]
73 fn cache_path(cache_directory: impl AsRef<Path>, file: &str) -> PathBuf {
74 cache_directory.as_ref().join(format!("{file}.db"))
75 } #[instrument(err, level = "info", skip(self))]
78 async fn start_download(&self, file: &'static str) -> Result<impl AsyncRead + use<>, Error> {
79 let net = self.http.get(file).send().await?
80 .bytes_stream()
81 .map_err(std::io::Error::other)
82 .into_async_read();
83 let decompressed = GzipDecoder::new(net);
84 Ok(decompressed)
85 } async fn should_invalidate_cache(&self, cache_path: &Path) -> Result<bool, Error> {
88 let metadata = match tokio::fs::metadata(cache_path).await {
89 Ok(v) => v,
90 Err(_e) => {
91 return Ok(true);
93 }
94 };
95 let mtime = metadata.modified()?.elapsed()?;
96 Ok(metadata.len() == 0 || mtime >= self.cache_invalidation_time)
97 } async fn ensure_title_cache(&mut self) -> Result<(), Error> {
100 if(self.title_cache.is_valid().await? && !self.should_invalidate_cache(&self.title_cache_path).await?) {
101 return Ok(());
102 }
103 let raw = self.start_download(TITLES_URL).await?;
104 let stream = AsyncReaderBuilder::new()
105 .delimiter(b'\t')
106 .quoting(false)
107 .create_deserializer(raw)
108 .into_deserialize::<TitleFromImdb>();
109 self.title_cache.write(
110 stream
111 .err_into::<Error>()
112 .map_ok(|t| (t.imdb_id, t.into())),
113 9000000
114 ).await?;
115 Ok(())
116 } async fn ensure_episode_cache(&mut self) -> Result<(), Error> {
119 if(self.episode_cache.is_valid().await? && !self.should_invalidate_cache(&self.episode_cache_path).await?) {
120 return Ok(());
121 }
122 let raw = self.start_download(EPISODES_URL).await?;
123 let mut stream = AsyncReaderBuilder::new()
124 .delimiter(b'\t')
125 .create_deserializer(raw)
126 .into_deserialize::<EpisodeLinkFromImdb>();
127 let mut episodes_by_show: HashMap<u32, Vec<EpisodeLink>, fnv::FnvBuildHasher> = HashMap::with_capacity_and_hasher(151825, fnv::FnvBuildHasher::default()); while let Some(result) = stream.next().await {
129 let episode = result?;
130 let episodes_for_this_show = episodes_by_show.entry(episode.series_imdb_id).or_default();
131 episodes_for_this_show.push(episode.into());
132 }
133 let write_stream = futures::stream::iter(episodes_by_show.into_iter());
134 self.episode_cache.write_infallible(write_stream, 7000000).await?;
135 Ok(())
136 } #[instrument(err, level = "debug", skip(self))]
140 #[inline]
141 pub async fn get_title(&mut self, id: u32) -> Result<Title, Error> {
142 self.ensure_title_cache().await?;
143 let result = self.title_cache.get(id).await;
144 match result {
145 Ok(v) => Ok(v),
146 Err(indexkv::Error::NotFound(id)) => Err(Error::NotFound(id)),
147 Err(e) => Err(e.into())
148 }
149 } #[instrument(err, level = "debug", skip(self))]
154 #[inline]
155 pub async fn get_titles(&mut self, ids: &[u32]) -> Result<Vec<Title>, Error> {
156 self.ensure_title_cache().await?;
157 let mut map = self.title_cache.get_many(ids).await?;
158 Ok(ids.iter().filter_map(|id| map.remove(id)).collect())
159 } #[instrument(err, level = "debug", skip(self))]
164 #[inline]
165 pub async fn stream_titles(&mut self) -> Result<impl Stream<Item = Result<Title, Error>> + use<>, Error> {
166 self.ensure_title_cache().await?;
167 Ok(self.title_cache.stream_values().await?.err_into())
168 } #[instrument(err, level = "debug", skip(self))]
174 pub async fn get_movie_by_name_and_year(&mut self, name: &str, year: u16) -> Result<Option<Movie>, Error> {
175 let mut stream = self.stream_titles().await?
176 .filter(|r| ready(title_matches_movie_name_and_year(r, name, year)))
177 .take(1);
178 let movie = match stream.next().await {
179 Some(r) => match Movie::from_wrapped_title(r) {
180 Ok(v) => v,
181 Err(Error::WrongMediaType(_, _)) => return Ok(None),
182 Err(e) => return Err(e)
183 },
184 None => return Ok(None)
185 };
186 Ok(Some(movie))
187 } #[instrument(err, level = "debug", skip(self))]
191 #[inline]
192 pub async fn get_movie(&mut self, id: u32) -> Result<Movie, Error> {
193 self.get_title(id).await?.try_into()
194 } #[instrument(err, level = "debug", skip(self))]
199 #[inline]
200 pub async fn get_movies(&mut self, ids: &[u32]) -> Result<Vec<Movie>, Error> {
201 Ok(self.get_titles(ids).await?.into_iter().filter_map(|t| t.try_into().ok()).collect())
202 } #[instrument(err, level = "debug", skip(self))]
207 #[inline]
208 pub async fn stream_movies(&mut self) -> Result<impl Stream<Item = Result<Movie, Error>>, Error> {
209 let stream = self.stream_titles().await?;
210 Ok(stream.filter_map(|r| ready(match Movie::from_wrapped_title(r) {
211 Ok(v) => Some(Ok(v)),
212 Err(Error::WrongMediaType(_, _)) => None,
213 Err(e) => Some(Err(e))
214 })))
215 } #[instrument(err, level = "debug", skip(self))]
221 pub async fn get_show_by_name_and_year(&mut self, name: &str, year: u16) -> Result<Option<Show>, Error> {
222 let mut stream = self.stream_titles().await?
223 .filter(|r| ready(title_matches_show_name_and_year(r, name, year)))
224 .take(1);
225 let t = stream.next().await;
226 let mut show = match t {
227 Some(r) => match Show::from_wrapped_title(r) {
228 Ok(v) => v,
229 Err(Error::WrongMediaType(_, _)) => return Ok(None),
230 Err(e) => return Err(e)
231 },
232 None => return Ok(None)
233 };
234 show.episodes = self.get_episodes(show.imdb_id).await?;
235 Ok(Some(show))
236 } #[instrument(err, level = "debug", skip(self))]
241 #[inline]
242 pub async fn get_shows(&mut self, ids: &[u32]) -> Result<Vec<Show>, Error> {
243 let mut shows = self.get_titles(ids)
246 .await?
247 .into_iter()
248 .map(TryInto::try_into)
249 .collect::<Result<Vec<Show>, _>>()?;
250
251 let mut ids = Vec::new();
252 let mut link_map = HashMap::new();
253 for show in shows.iter_mut() {
254 self.populate_episodes(show.imdb_id, &mut ids, &mut link_map, &mut show.episodes).await?;
255 }
256
257 Ok(shows)
258 } #[instrument(err, level = "debug", skip(self))]
262 #[inline]
263 pub async fn get_show(&mut self, id: u32) -> Result<Show, Error> {
264 let mut show: Show = self.get_title(id).await?.try_into()?;
265 show.episodes = self.get_episodes(show.imdb_id).await?;
266 Ok(show)
267 } #[instrument(err, level = "debug", skip(self))]
272 #[inline]
273 pub async fn get_shows_by_id(&mut self, ids: &[u32]) -> Result<HashMap<u32, Show, fnv::FnvBuildHasher>, Error> {
274 let shows = self.get_shows(ids).await?;
275 Ok(shows.into_iter().map(|s| (s.imdb_id, s)).collect())
276 } #[instrument(err, level = "debug", skip(self, ids, link_map, episodes))]
279 async fn populate_episodes<'input>(&mut self, show_id: u32, ids: &'input mut Vec<u32>, link_map: &'input mut HashMap<u32, EpisodeLink>, episodes: &'input mut Vec<Episode>) -> Result<(), Error> {
280 self.ensure_episode_cache().await?;
281 let links = match self.episode_cache.get(show_id).await {
282 Ok(v) => v,
283 Err(indexkv::Error::NotFound(show_id)) => return Err(Error::NotFound(show_id)),
284 Err(e) => return Err(e.into())
285 };
286
287 ids.clear();
288 ids.reserve(links.len());
289 ids.extend(links.iter().map(|link| link.imdb_id));
290 link_map.clear();
291 link_map.reserve(links.len());
292 link_map.extend(links.into_iter().map(|link| (link.imdb_id, link)));
293 episodes.clear();
294 episodes.reserve_exact(link_map.len());
295
296 let titles = self.get_titles(ids).await?;
297 for title in titles.into_iter() {
298 let Some(link) = link_map.remove(&title.imdb_id) else {
299 continue;
300 };
301 match Episode::from_title_and_link(title, link) {
302 Ok(episode) => episodes.push(episode),
303 Err(Error::WrongMediaType(_, _)) => (),
304 Err(Error::SeasonMissing) => (),
305 Err(Error::EpisodeMissing) => (),
306 Err(e) => return Err(e)
307 };
308 }
309 episodes.sort_unstable();
310 Ok(())
311 } #[instrument(err, level = "debug", skip(self))]
314 async fn get_episodes(&mut self, show_id: u32) -> Result<Vec<Episode>, Error> {
315 let mut episodes = Vec::new();
316 self.populate_episodes(show_id, &mut Vec::new(), &mut HashMap::new(), &mut episodes).await?;
317 Ok(episodes)
318 }
319
320 #[instrument(err, level = "debug", skip(self))]
323 pub async fn get_episodes_by_show(&mut self, show_ids: &[u32]) -> Result<HashMap<u32, Vec<Episode>, fnv::FnvBuildHasher>, Error> {
324 let mut episodes_by_show = HashMap::with_capacity_and_hasher(show_ids.len(), fnv::FnvBuildHasher::default());
325
326 let mut ids = Vec::new();
327 let mut link_map = HashMap::new();
328 for show_id in show_ids {
329 let mut episodes = Vec::new();
330 self.populate_episodes(*show_id, &mut ids, &mut link_map, &mut episodes).await?;
331 episodes_by_show.insert(*show_id, episodes);
332 }
333
334 Ok(episodes_by_show)
335 } }
337
338#[cfg(test)]
339mod tests {
340 use std::collections::HashMap;
341 use std::time::Duration;
342 use crate::*;
343 use crate::genre::Genre::*;
344
345 async fn client() -> (tempfile::TempDir, Client) {
346 let dir = tempfile::TempDir::new().unwrap();
347 let client = Client::new(Duration::from_secs(86400), dir.path()).await.unwrap();
348 (dir, client)
349 }
350
351 #[tokio::test]
352 async fn movies_single() {
353 let (_dir, mut client) = client().await;
354 for i in 0..2 {
355 println!(">>> {}", i);
356 assert_eq!(client.get_movie(26972).await.unwrap(), Movie::new(26972, "Scrooge", false, 1935, Some(78), &[Drama, Family, Fantasy]));
357 assert_eq!(client.get_movie(12766346).await.unwrap(), Movie::new(12766346, "If I Only Had Christmas", false, 2020, Some(84), &[Drama, Romance]));
358 }
359 } #[tokio::test]
362 async fn movies_multi() {
363 let (_dir, mut client) = client().await;
364 for i in 0..2 {
365 println!(">>> {}", i);
366 let mut movies = client.get_movies(&[280380, 4767950, 10919380]).await.unwrap().into_iter().map(|m| (m.imdb_id, m)).collect::<HashMap<_, _>>();
367 assert_eq!(movies.len(), 3);
368 assert_eq!(movies.remove(&280380), Some(Movie::new(280380, "Trapped", false, 2002, Some(106), &[Action, Crime, Drama])));
369 assert_eq!(movies.remove(&4767950), Some(Movie::new(4767950, "A Christmas Detour", false, 2015, Some(85), &[Comedy, Romance])));
370 assert_eq!(movies.remove(&10919380), Some(Movie::new(10919380, "Freaky", false, 2020, Some(102), &[Comedy, Horror, Thriller])));
371 }
372 } #[tokio::test]
375 async fn episodes_by_show_single() {
376 let (_dir, mut client) = client().await;
377
378 for i in 0..2 {
379 println!(">>> {}", i);
380 let episodes = client.get_episodes(163507).await.unwrap();
381 assert_eq!(episodes.len(), 220); assert_eq!(episodes[0], Episode::new(1, 1, 747998, "Show No. 103", Some(1998), Some(22)));
383 assert_eq!(episodes[1], Episode::new(1, 2, 748009, "Show No. 104", Some(1998), Some(22)));
384 assert_eq!(episodes[2], Episode::new(1, 3, 748011, "Show No. 106", Some(1998), Some(22)));
385 assert_eq!(episodes[3], Episode::new(1, 4, 748012, "Show No. 101", Some(1998), Some(22)));
386 assert_eq!(episodes[4], Episode::new(1, 5, 748013, "Show No. 105", Some(1998), Some(22)));
387 assert_eq!(episodes[5], Episode::new(1, 6, 748014, "Show No. 102", Some(1998), Some(22)));
388 assert_eq!(episodes[6], Episode::new(1, 7, 748015, "Show No. 107", Some(1998), Some(22)));
389 assert_eq!(episodes[7], Episode::new(1, 8, 748016, "Show No. 111", Some(1998), Some(22)));
390 assert_eq!(episodes[8], Episode::new(1, 9, 748017, "Show No. 108", Some(1998), Some(22)));
391 assert_eq!(episodes[9], Episode::new(1, 10, 747999, "Show No. 117", Some(1999), Some(22)));
392 assert_eq!(episodes[10], Episode::new(1, 11, 748000, "Show No. 113", Some(1999), Some(22)));
393 assert_eq!(episodes[11], Episode::new(1, 12, 748001, "Show No. 119", Some(1999), Some(22)));
394 assert_eq!(episodes[12], Episode::new(1, 13, 748002, "Show No. 120", Some(1999), Some(22)));
395 assert_eq!(episodes[13], Episode::new(1, 14, 748003, "Show No. 114", Some(1999), Some(22)));
396 assert_eq!(episodes[14], Episode::new(1, 15, 748004, "Show No. 118", Some(1999), Some(22)));
397 assert_eq!(episodes[15], Episode::new(1, 16, 748005, "Show No. 121", Some(1999), Some(22)));
398 assert_eq!(episodes[16], Episode::new(1, 17, 748006, "Show No. 116", Some(1999), Some(22)));
399 assert_eq!(episodes[17], Episode::new(1, 18, 748007, "Show No. 115", Some(1999), Some(22)));
400 assert_eq!(episodes[18], Episode::new(1, 19, 748008, "Show No. 110", Some(1999), Some(22)));
401 assert_eq!(episodes[19], Episode::new(1, 20, 748010, "Show No. 109", Some(1999), Some(22)));
402 assert_eq!(episodes[20], Episode::new(2, 1, 748018, "Show No. 209", Some(1999), None));
403 assert_eq!(episodes[21], Episode::new(2, 2, 748029, "Show No. 205", Some(1999), None));
404 assert_eq!(episodes[22], Episode::new(2, 3, 748040, "Show No. 206", Some(1999), None));
405 assert_eq!(episodes[23], Episode::new(2, 4, 748051, "Show No. 201", Some(1999), None));
406 assert_eq!(episodes[24], Episode::new(2, 5, 748052, "Show No. 220", Some(1999), None));
407 assert_eq!(episodes[25], Episode::new(2, 6, 748053, "Show No. 203", Some(1999), None));
408 assert_eq!(episodes[26], Episode::new(2, 7, 748054, "Show No. 202", Some(1999), None));
409 assert_eq!(episodes[27], Episode::new(2, 8, 748055, "Show No. 212", Some(1999), None));
410 assert_eq!(episodes[28], Episode::new(2, 9, 748056, "Show No. 221", Some(1999), None));
411 assert_eq!(episodes[29], Episode::new(2, 10, 748019, "Show No. 204", Some(1999), None));
412 assert_eq!(episodes[30], Episode::new(2, 11, 748020, "Show No. 222", Some(1999), None));
413 assert_eq!(episodes[31], Episode::new(2, 12, 748021, "Show No. 211", Some(1999), None));
414 assert_eq!(episodes[32], Episode::new(2, 13, 748022, "Show No. 223", Some(1999), None));
415 assert_eq!(episodes[33], Episode::new(2, 14, 748023, "Show No. 213", Some(1999), None));
416 assert_eq!(episodes[34], Episode::new(2, 15, 748024, "Show No.207", Some(1999), None));
417 assert_eq!(episodes[35], Episode::new(2, 16, 748025, "Show No. 224", Some(1999), None));
418 assert_eq!(episodes[36], Episode::new(2, 17, 748026, "Show No. 208", Some(1999), None));
419 assert_eq!(episodes[37], Episode::new(2, 18, 748027, "Show No. 225", Some(2000), None));
420 assert_eq!(episodes[38], Episode::new(2, 19, 748028, "Show No. 210", Some(2000), None));
421 assert_eq!(episodes[39], Episode::new(2, 20, 748030, "Show No. 215", Some(2000), None));
422 assert_eq!(episodes[40], Episode::new(2, 21, 748031, "Show No. 226", Some(2000), None));
423 assert_eq!(episodes[41], Episode::new(2, 22, 748032, "Show No. 227", Some(2000), None));
424 assert_eq!(episodes[42], Episode::new(2, 23, 748033, "Show No. 216", Some(2000), None));
425 assert_eq!(episodes[43], Episode::new(2, 24, 748034, "Show No. 228", Some(2000), None));
426 assert_eq!(episodes[44], Episode::new(2, 25, 748035, "Show No. 229", Some(2000), None));
427 assert_eq!(episodes[45], Episode::new(2, 26, 748036, "Show No. 230", Some(2000), None));
428 assert_eq!(episodes[46], Episode::new(2, 27, 748037, "Show No. 231", Some(2000), None));
429 assert_eq!(episodes[47], Episode::new(2, 28, 748038, "Show No. 217", Some(2000), None));
430 assert_eq!(episodes[48], Episode::new(2, 29, 748039, "Show No. 232", Some(2000), None));
431 assert_eq!(episodes[49], Episode::new(2, 30, 748041, "Show No. 233", Some(2000), None));
432 assert_eq!(episodes[50], Episode::new(2, 31, 748042, "Show No. 234", Some(2000), None));
433 assert_eq!(episodes[51], Episode::new(2, 32, 748043, "Show No. 235", Some(2000), None));
434 assert_eq!(episodes[52], Episode::new(2, 33, 748044, "Show No. 214", Some(2000), None));
435 assert_eq!(episodes[53], Episode::new(2, 34, 748045, "Show No. 218", Some(2000), None));
436 assert_eq!(episodes[54], Episode::new(2, 35, 748046, "Show No. 236", Some(2000), None));
437 assert_eq!(episodes[55], Episode::new(2, 36, 748047, "Show No. 219", Some(2000), None));
438 assert_eq!(episodes[56], Episode::new(2, 37, 748048, "Show No. 237", Some(2000), None));
439 assert_eq!(episodes[57], Episode::new(2, 38, 748049, "Show No. 238", Some(2000), None));
440 assert_eq!(episodes[58], Episode::new(2, 39, 748050, "Show No. 239", Some(2000), None));
441 assert_eq!(episodes[59], Episode::new(3, 0, 918399, "The Best of Whose Line Is It Anyway?", Some(2000), None));
442 assert_eq!(episodes[60], Episode::new(3, 1, 748057, "Show No. 302", Some(2000), None));
443 assert_eq!(episodes[61], Episode::new(3, 2, 748068, "Show No. 303", Some(2000), None));
444 assert_eq!(episodes[62], Episode::new(3, 3, 748079, "Show No. 312", Some(2000), None));
445 assert_eq!(episodes[63], Episode::new(3, 4, 748090, "Show No. 305", Some(2000), None));
446 assert_eq!(episodes[64], Episode::new(3, 5, 748091, "Show No. 319", Some(2000), None));
447 assert_eq!(episodes[65], Episode::new(3, 6, 748092, "Show No. 306", Some(2000), None));
448 assert_eq!(episodes[66], Episode::new(3, 7, 748093, "Show No. 304", Some(2000), None));
449 assert_eq!(episodes[67], Episode::new(3, 8, 748094, "Show No. 320", Some(2000), None));
450 assert_eq!(episodes[68], Episode::new(3, 9, 748095, "Show No. 313", Some(2000), None));
451 assert_eq!(episodes[69], Episode::new(3, 10, 748058, "Show No. 341", Some(2000), None));
452 assert_eq!(episodes[70], Episode::new(3, 11, 748059, "Show No. 340", Some(2000), None));
453 assert_eq!(episodes[71], Episode::new(3, 12, 748060, "Show No. 309", Some(2000), None));
454 assert_eq!(episodes[72], Episode::new(3, 13, 748061, "Show No. 342", Some(2000), None));
455 assert_eq!(episodes[73], Episode::new(3, 14, 748062, "Show No. 301", Some(2001), None));
456 assert_eq!(episodes[74], Episode::new(3, 15, 748063, "Show No. 321", Some(2001), None));
457 assert_eq!(episodes[75], Episode::new(3, 16, 748064, "Show No. 322", Some(2001), None));
458 assert_eq!(episodes[76], Episode::new(3, 17, 748065, "Show No. 323", Some(2001), None));
459 assert_eq!(episodes[77], Episode::new(3, 18, 748066, "Show No. 327", Some(2001), None));
460 assert_eq!(episodes[78], Episode::new(3, 19, 748067, "Show No. 326", Some(2001), None));
461 assert_eq!(episodes[79], Episode::new(3, 20, 748069, "Show No. 325", Some(2001), None));
462 assert_eq!(episodes[80], Episode::new(3, 21, 748070, "Show No. 307", Some(2001), None));
463 assert_eq!(episodes[81], Episode::new(3, 22, 748071, "Show No. 328", Some(2001), None));
464 assert_eq!(episodes[82], Episode::new(3, 23, 748072, "Show No. 333", Some(2001), None));
465 assert_eq!(episodes[83], Episode::new(3, 24, 748073, "Show No. 310", Some(2001), None));
466 assert_eq!(episodes[84], Episode::new(3, 25, 748074, "Show No. 329", Some(2001), None));
467 assert_eq!(episodes[85], Episode::new(3, 26, 748075, "Show No. 335", Some(2001), None));
468 assert_eq!(episodes[86], Episode::new(3, 27, 748076, "Show No. 311", Some(2001), None));
469 assert_eq!(episodes[87], Episode::new(3, 28, 748077, "Show No. 330", Some(2001), None));
470 assert_eq!(episodes[88], Episode::new(3, 29, 748078, "Show No. 336", Some(2001), None));
471 assert_eq!(episodes[89], Episode::new(3, 30, 748080, "Show No. 334", Some(2001), None));
472 assert_eq!(episodes[90], Episode::new(3, 31, 748081, "Show No. 332", Some(2001), None));
473 assert_eq!(episodes[91], Episode::new(3, 32, 748082, "Show No. 331", Some(2001), None));
474 assert_eq!(episodes[92], Episode::new(3, 33, 748083, "Show No. 338", Some(2001), None));
475 assert_eq!(episodes[93], Episode::new(3, 34, 748084, "Show No. 343", Some(2001), None));
476 assert_eq!(episodes[94], Episode::new(3, 35, 748085, "Show No. 339", Some(2001), None));
477 assert_eq!(episodes[95], Episode::new(3, 36, 748086, "Show No. 344", Some(2001), None));
478 assert_eq!(episodes[96], Episode::new(3, 37, 748087, "Show No. 410", Some(2001), None));
479 assert_eq!(episodes[97], Episode::new(3, 38, 748088, "Show No. 308", Some(2001), None));
480 assert_eq!(episodes[98], Episode::new(3, 39, 748089, "Show No. 407", Some(2001), None));
481 assert_eq!(episodes[99], Episode::new(4, 1, 748096, "Show No. 401", Some(2001), None));
482 assert_eq!(episodes[100], Episode::new(4, 2, 748107, "Show No. 405", Some(2001), None));
483 assert_eq!(episodes[101], Episode::new(4, 3, 748118, "Show No. 324", Some(2001), None));
484 assert_eq!(episodes[102], Episode::new(4, 4, 748121, "Show No. 420", Some(2001), None));
485 assert_eq!(episodes[103], Episode::new(4, 5, 748122, "Show No. 317", Some(2001), None));
486 assert_eq!(episodes[104], Episode::new(4, 6, 748123, "Show No. 413", Some(2001), None));
487 assert_eq!(episodes[105], Episode::new(4, 7, 748124, "Show No. 315", Some(2001), None));
488 assert_eq!(episodes[106], Episode::new(4, 8, 748125, "Show No. 414", Some(2001), None));
489 assert_eq!(episodes[107], Episode::new(4, 9, 748126, "Show No. 318", Some(2001), None));
490 assert_eq!(episodes[108], Episode::new(4, 10, 748097, "Show No. 419", Some(2001), None));
491 assert_eq!(episodes[109], Episode::new(4, 11, 748098, "Show No. 422", Some(2001), None));
492 assert_eq!(episodes[110], Episode::new(4, 12, 748099, "Show No. 337", Some(2001), None));
493 assert_eq!(episodes[111], Episode::new(4, 13, 748100, "Show No. 418", Some(2001), None));
494 assert_eq!(episodes[112], Episode::new(4, 14, 748101, "Show No. 507", Some(2001), None));
495 assert_eq!(episodes[113], Episode::new(4, 15, 748102, "Show No. 503", Some(2001), None));
496 assert_eq!(episodes[114], Episode::new(4, 16, 748103, "Show No. 417", Some(2001), None));
497 assert_eq!(episodes[115], Episode::new(4, 17, 748104, "Show No. 412", Some(2001), None));
498 assert_eq!(episodes[116], Episode::new(4, 18, 748105, "Show No. 421", Some(2001), None));
499 assert_eq!(episodes[117], Episode::new(4, 19, 748106, "Show No. 411", Some(2001), None));
500 assert_eq!(episodes[118], Episode::new(4, 20, 748108, "Show No. 415", Some(2001), None));
501 assert_eq!(episodes[119], Episode::new(4, 21, 748109, "Show No. 409", Some(2001), None));
502 assert_eq!(episodes[120], Episode::new(4, 22, 748110, "Show No. 423", Some(2002), None));
503 assert_eq!(episodes[121], Episode::new(4, 23, 748111, "Show No. 416", Some(2002), None));
504 assert_eq!(episodes[122], Episode::new(4, 24, 748112, "Show No. 508", Some(2002), None));
505 assert_eq!(episodes[123], Episode::new(4, 25, 748113, "Show No. 403", Some(2002), None));
506 assert_eq!(episodes[124], Episode::new(4, 26, 748114, "Show No. 404", Some(2002), None));
507 assert_eq!(episodes[125], Episode::new(4, 27, 748115, "Show No. 432", Some(2002), None));
508 assert_eq!(episodes[126], Episode::new(4, 28, 748116, "Show No. 431", Some(2002), None));
509 assert_eq!(episodes[127], Episode::new(4, 29, 748117, "Show No. 402", Some(2002), None));
510 assert_eq!(episodes[128], Episode::new(4, 30, 748119, "Show No. 429", Some(2002), None));
511 assert_eq!(episodes[129], Episode::new(4, 31, 748120, "Show No. 427", Some(2002), None));
512 assert_eq!(episodes[130], Episode::new(5, 1, 748127, "Show No. 511", Some(2002), None));
513 assert_eq!(episodes[131], Episode::new(5, 2, 748138, "Show No. 509", Some(2002), None));
514 assert_eq!(episodes[132], Episode::new(5, 3, 748149, "Show No. 406", Some(2002), None));
515 assert_eq!(episodes[133], Episode::new(5, 4, 748155, "Show No. 512", Some(2002), None));
516 assert_eq!(episodes[134], Episode::new(5, 5, 748156, "Show No. 425", Some(2002), None));
517 assert_eq!(episodes[135], Episode::new(5, 6, 748157, "Show No. 433", Some(2002), None));
518 assert_eq!(episodes[136], Episode::new(5, 7, 748158, "Show No. 501", Some(2002), None));
519 assert_eq!(episodes[137], Episode::new(5, 8, 748159, "Show No. 506", Some(2002), None));
520 assert_eq!(episodes[138], Episode::new(5, 9, 748160, "Show No. 515", Some(2002), None));
521 assert_eq!(episodes[139], Episode::new(5, 10, 748128, "Show No. 504", Some(2002), None));
522 assert_eq!(episodes[140], Episode::new(5, 11, 748129, "Show No. 517", Some(2002), None));
523 assert_eq!(episodes[141], Episode::new(5, 12, 748130, "Show No. 510", Some(2003), None));
524 assert_eq!(episodes[142], Episode::new(5, 13, 748131, "Show No. 408", Some(2003), None));
525 assert_eq!(episodes[143], Episode::new(5, 14, 748132, "Show No. 513", Some(2003), None));
526 assert_eq!(episodes[144], Episode::new(5, 15, 748133, "Show No. 514", Some(2003), None));
527 assert_eq!(episodes[145], Episode::new(5, 16, 748134, "Show No. 518", Some(2003), None));
528 assert_eq!(episodes[146], Episode::new(5, 17, 748135, "Show No. 521", Some(2003), None));
529 assert_eq!(episodes[147], Episode::new(5, 18, 748136, "Show No. 609", Some(2003), None));
530 assert_eq!(episodes[148], Episode::new(5, 19, 748137, "Show No. 610", Some(2003), None));
531 assert_eq!(episodes[149], Episode::new(5, 20, 748139, "Show No. 603", Some(2003), None));
532 assert_eq!(episodes[150], Episode::new(5, 21, 748140, "Show No. 611", Some(2003), None));
533 assert_eq!(episodes[151], Episode::new(5, 22, 748141, "Show No. 607", Some(2003), None));
534 assert_eq!(episodes[152], Episode::new(5, 23, 748142, "Show No. 519", Some(2003), None));
535 assert_eq!(episodes[153], Episode::new(5, 24, 748143, "Show No. 316", Some(2003), None));
536 assert_eq!(episodes[154], Episode::new(5, 25, 748144, "Show No. 502", Some(2003), None));
537 assert_eq!(episodes[155], Episode::new(5, 26, 748145, "Show No. 516", Some(2003), None));
538 assert_eq!(episodes[156], Episode::new(5, 27, 748146, "Show No. 601", Some(2003), None));
539 assert_eq!(episodes[157], Episode::new(5, 28, 748147, "Show No. 608", Some(2003), None));
540 assert_eq!(episodes[158], Episode::new(5, 29, 748148, "Show No. 606", Some(2003), None));
541 assert_eq!(episodes[159], Episode::new(5, 30, 748150, "Show No. 612", Some(2003), None));
542 assert_eq!(episodes[160], Episode::new(5, 31, 748151, "Show No. 520", Some(2003), None));
543 assert_eq!(episodes[161], Episode::new(5, 32, 748152, "Show No. 426", Some(2003), None));
544 assert_eq!(episodes[162], Episode::new(5, 33, 748153, "Show No. 605", Some(2003), None));
545 assert_eq!(episodes[163], Episode::new(5, 34, 748154, "Show No. 604", Some(2003), None));
546 assert_eq!(episodes[164], Episode::new(6, 1, 748161, "Show No. 602", Some(2004), None));
547 assert_eq!(episodes[165], Episode::new(6, 2, 748164, "Show No. 424", Some(2004), None));
548 assert_eq!(episodes[166], Episode::new(6, 3, 748165, "Show No. 348", Some(2004), None));
549 assert_eq!(episodes[167], Episode::new(6, 4, 748166, "Show No. 347", Some(2004), None));
550 assert_eq!(episodes[168], Episode::new(6, 5, 748167, "Show No. 345", Some(2004), None));
551 assert_eq!(episodes[169], Episode::new(6, 6, 748168, "Show No. 505", Some(2004), None));
552 assert_eq!(episodes[170], Episode::new(6, 7, 748169, "Show No. 430", Some(2004), None));
553 assert_eq!(episodes[171], Episode::new(6, 8, 748170, "Show No. 314", Some(2004), None));
554 assert_eq!(episodes[172], Episode::new(6, 9, 748171, "Show No. 346", Some(2004), None));
555 assert_eq!(episodes[173], Episode::new(6, 10, 748162, "Show No. 428", Some(2004), None));
556 assert_eq!(episodes[174], Episode::new(7, 1, 748172, "Show No. 7001", Some(2005), None));
557 assert_eq!(episodes[175], Episode::new(7, 2, 748181, "Show No. 7002", Some(2005), None));
558 assert_eq!(episodes[176], Episode::new(7, 3, 748186, "Show No. 7003", Some(2005), None));
559 assert_eq!(episodes[177], Episode::new(7, 4, 748187, "Show No. 7004", Some(2005), None));
560 assert_eq!(episodes[178], Episode::new(7, 5, 748188, "Show No. 7005", Some(2005), None));
561 assert_eq!(episodes[179], Episode::new(7, 6, 795028, "Show No. 711", Some(2005), None));
562 assert_eq!(episodes[180], Episode::new(7, 7, 748189, "Show No. 7007", Some(2005), None));
563 assert_eq!(episodes[181], Episode::new(7, 8, 748190, "Show No. 7008", Some(2005), None));
564 assert_eq!(episodes[182], Episode::new(7, 9, 748191, "Show No. 7009", Some(2005), None));
565 assert_eq!(episodes[183], Episode::new(7, 10, 748173, "Show No. 7010", Some(2005), None));
566 assert_eq!(episodes[184], Episode::new(7, 11, 748174, "Show No. 7011", Some(2005), None));
567 assert_eq!(episodes[185], Episode::new(7, 12, 748175, "Show No. 7012", Some(2005), None));
568 assert_eq!(episodes[186], Episode::new(7, 13, 1119576, "Show No. 7013", Some(2005), None));
569 assert_eq!(episodes[187], Episode::new(7, 14, 748176, "Show No. 7014", Some(2005), None));
570 assert_eq!(episodes[188], Episode::new(7, 15, 748177, "Show No. 7015", Some(2005), None));
571 assert_eq!(episodes[189], Episode::new(7, 16, 1119577, "Show No. 7016", Some(2005), None));
572 assert_eq!(episodes[190], Episode::new(7, 17, 748178, "Show No. 7017", Some(2005), None));
573 assert_eq!(episodes[191], Episode::new(7, 18, 748179, "Show No. 7018", Some(2005), None));
574 assert_eq!(episodes[192], Episode::new(7, 19, 748180, "Show No. 7019", Some(2005), None));
575 assert_eq!(episodes[193], Episode::new(7, 20, 748182, "Show No. 7020", Some(2005), None));
576 assert_eq!(episodes[194], Episode::new(7, 21, 748183, "Show No. 7021", Some(2005), None));
577 assert_eq!(episodes[195], Episode::new(7, 22, 748184, "Show No. 7022", Some(2005), None));
578 assert_eq!(episodes[196], Episode::new(7, 23, 795027, "Show No. 7023", Some(2005), None));
579 assert_eq!(episodes[197], Episode::new(7, 24, 1119578, "Show No. 7024", Some(2005), None));
580 assert_eq!(episodes[198], Episode::new(7, 25, 748185, "Show No. 7025", Some(2005), None));
581 assert_eq!(episodes[199], Episode::new(8, 1, 748192, "Show No. 8001", Some(2005), None));
582 assert_eq!(episodes[200], Episode::new(8, 2, 748193, "Show No. 8002", Some(2005), None));
583 assert_eq!(episodes[201], Episode::new(8, 3, 748194, "Show No. 8003", Some(2005), None));
584 assert_eq!(episodes[202], Episode::new(8, 4, 748195, "Show No. 8004", Some(2005), None));
585 assert_eq!(episodes[203], Episode::new(8, 5, 748196, "Show No. 8005", Some(2005), None));
586 assert_eq!(episodes[204], Episode::new(8, 6, 748197, "Show No. 8006", Some(2005), None));
587 assert_eq!(episodes[205], Episode::new(8, 7, 918397, "Show No. 8007", Some(2006), None));
588 assert_eq!(episodes[206], Episode::new(8, 8, 918393, "Show No. 8008", Some(2006), None));
589 assert_eq!(episodes[207], Episode::new(8, 9, 918394, "Show No. 8009", Some(2006), None));
590 assert_eq!(episodes[208], Episode::new(8, 10, 918392, "Show No. 8010", Some(2006), None));
591 assert_eq!(episodes[209], Episode::new(8, 11, 918398, "Show No. 8011", Some(2006), None));
592 assert_eq!(episodes[210], Episode::new(8, 12, 918395, "Show No. 8012", Some(2006), None));
593 assert_eq!(episodes[211], Episode::new(8, 13, 918391, "Show No. 8013", Some(2006), None));
594 assert_eq!(episodes[212], Episode::new(8, 14, 918389, "Show No. 8014", Some(2006), None));
595 assert_eq!(episodes[213], Episode::new(8, 15, 918396, "Show No. 8015", Some(2006), None));
596 assert_eq!(episodes[214], Episode::new(8, 16, 918390, "Show No. 8016", Some(2006), None));
597 assert_eq!(episodes[215], Episode::new(8, 17, 2015197, "Show No. 8017", Some(2007), None));
598 assert_eq!(episodes[216], Episode::new(8, 18, 1910467, "Show No. 8018", Some(2007), None));
599 assert_eq!(episodes[217], Episode::new(8, 19, 1914143, "Show No. 8019", Some(2007), None));
600 assert_eq!(episodes[218], Episode::new(8, 20, 1918587, "Show No. 8020", Some(2007), None));
601 assert_eq!(episodes[219], Episode::new(8, 21, 1922480, "Show No. 8021", Some(2007), None));
602 let episodes = client.get_episodes(2364582).await.unwrap();
605 assert_eq!(episodes.len(), 136); assert_eq!(episodes[0], Episode::new(1, 1, 2912308, "Pilot", Some(2013), Some(44)));
607 assert_eq!(episodes[1], Episode::new(1, 2, 3130816, "0-8-4", Some(2013), Some(42)));
608 assert_eq!(episodes[2], Episode::new(1, 3, 3130186, "The Asset", Some(2013), Some(43)));
609 assert_eq!(episodes[3], Episode::new(1, 4, 3218318, "Eye-Spy", Some(2013), Some(43)));
610 assert_eq!(episodes[4], Episode::new(1, 5, 3229400, "Girl in the Flower Dress", Some(2013), Some(43)));
611 assert_eq!(episodes[5], Episode::new(1, 6, 3229404, "FZZT", Some(2013), Some(43)));
612 assert_eq!(episodes[6], Episode::new(1, 7, 3229406, "The Hub", Some(2013), Some(43)));
613 assert_eq!(episodes[7], Episode::new(1, 8, 3252298, "The Well", Some(2013), Some(43)));
614 assert_eq!(episodes[8], Episode::new(1, 9, 3252332, "Repairs", Some(2013), Some(43)));
615 assert_eq!(episodes[9], Episode::new(1, 10, 3252318, "The Bridge", Some(2013), Some(42)));
616 assert_eq!(episodes[10], Episode::new(1, 11, 3307564, "The Magical Place", Some(2014), Some(43)));
617 assert_eq!(episodes[11], Episode::new(1, 12, 3307568, "Seeds", Some(2014), Some(43)));
618 assert_eq!(episodes[12], Episode::new(1, 13, 3307566, "T.R.A.C.K.S.", Some(2014), Some(43)));
619 assert_eq!(episodes[13], Episode::new(1, 14, 3476430, "T.A.H.I.T.I.", Some(2014), Some(45)));
620 assert_eq!(episodes[14], Episode::new(1, 15, 3473818, "Yes Men", Some(2014), Some(45)));
621 assert_eq!(episodes[15], Episode::new(1, 16, 3539224, "End of the Beginning", Some(2014), Some(45)));
622 assert_eq!(episodes[16], Episode::new(1, 17, 3539406, "Turn, Turn, Turn", Some(2014), Some(44)));
623 assert_eq!(episodes[17], Episode::new(1, 18, 3609126, "Providence", Some(2014), Some(45)));
624 assert_eq!(episodes[18], Episode::new(1, 19, 3609154, "The Only Light in the Darkness", Some(2014), Some(41)));
625 assert_eq!(episodes[19], Episode::new(1, 20, 3609164, "Nothing Personal", Some(2014), Some(41)));
626 assert_eq!(episodes[20], Episode::new(1, 21, 3609168, "Ragtag", Some(2014), Some(42)));
627 assert_eq!(episodes[21], Episode::new(1, 22, 3609170, "Beginning of the End", Some(2014), Some(44)));
628 assert_eq!(episodes[22], Episode::new(2, 1, 3721000, "Shadows", Some(2014), Some(43)));
629 assert_eq!(episodes[23], Episode::new(2, 2, 3997450, "Heavy Is the Head", Some(2014), Some(42)));
630 assert_eq!(episodes[24], Episode::new(2, 3, 3997456, "Making Friends and Influencing People", Some(2014), Some(43)));
631 assert_eq!(episodes[25], Episode::new(2, 4, 3997452, "Face My Enemy", Some(2014), Some(42)));
632 assert_eq!(episodes[26], Episode::new(2, 5, 3970174, "A Hen in the Wolf House", Some(2014), Some(44)));
633 assert_eq!(episodes[27], Episode::new(2, 6, 4078580, "A Fractured House", Some(2014), Some(41)));
634 assert_eq!(episodes[28], Episode::new(2, 7, 4082652, "The Writing on the Wall", Some(2014), Some(42)));
635 assert_eq!(episodes[29], Episode::new(2, 8, 4082656, "The Things We Bury", Some(2014), Some(44)));
636 assert_eq!(episodes[30], Episode::new(2, 9, 4120698, "...Ye Who Enter Here", Some(2014), Some(43)));
637 assert_eq!(episodes[31], Episode::new(2, 10, 4120702, "What They Become", Some(2014), Some(43)));
638 assert_eq!(episodes[32], Episode::new(2, 11, 4120704, "Aftershocks", Some(2015), Some(43)));
639 assert_eq!(episodes[33], Episode::new(2, 12, 4120714, "Who You Really Are", Some(2015), Some(42)));
640 assert_eq!(episodes[34], Episode::new(2, 13, 4120718, "One of Us", Some(2015), Some(43)));
641 assert_eq!(episodes[35], Episode::new(2, 14, 4120720, "Love in the Time of HYDRA", Some(2015), Some(44)));
642 assert_eq!(episodes[36], Episode::new(2, 15, 4120722, "One Door Closes", Some(2015), Some(42)));
643 assert_eq!(episodes[37], Episode::new(2, 16, 4120726, "Afterlife", Some(2015), Some(44)));
644 assert_eq!(episodes[38], Episode::new(2, 17, 4120730, "Melinda", Some(2015), Some(42)));
645 assert_eq!(episodes[39], Episode::new(2, 18, 4120738, "Frenemy of My Enemy", Some(2015), Some(43)));
646 assert_eq!(episodes[40], Episode::new(2, 19, 4120734, "The Dirty Half Dozen", Some(2015), Some(42)));
647 assert_eq!(episodes[41], Episode::new(2, 20, 4122454, "Scars", Some(2015), Some(44)));
648 assert_eq!(episodes[42], Episode::new(2, 21, 4122456, "S.O.S. Part One", Some(2015), Some(43)));
649 assert_eq!(episodes[43], Episode::new(2, 22, 4110822, "S.O.S. Part Two", Some(2015), Some(43)));
650 assert_eq!(episodes[44], Episode::new(3, 1, 4667540, "Laws of Nature", Some(2015), Some(44)));
651 assert_eq!(episodes[45], Episode::new(3, 2, 4706470, "Purpose in the Machine", Some(2015), Some(43)));
652 assert_eq!(episodes[46], Episode::new(3, 3, 4727950, "A Wanted (Inhu)Man", Some(2015), Some(42)));
653 assert_eq!(episodes[47], Episode::new(3, 4, 4732884, "Devils You Know", Some(2015), Some(43)));
654 assert_eq!(episodes[48], Episode::new(3, 5, 4742110, "4,722 Hours", Some(2015), Some(43)));
655 assert_eq!(episodes[49], Episode::new(3, 6, 4760490, "Among Us Hide...", Some(2015), Some(42)));
656 assert_eq!(episodes[50], Episode::new(3, 7, 4765060, "Chaos Theory", Some(2015), Some(43)));
657 assert_eq!(episodes[51], Episode::new(3, 8, 4769592, "Many Heads, One Tale", Some(2015), Some(43)));
658 assert_eq!(episodes[52], Episode::new(3, 9, 4778366, "Closure", Some(2015), Some(43)));
659 assert_eq!(episodes[53], Episode::new(3, 10, 4786258, "Maveth", Some(2015), Some(42)));
660 assert_eq!(episodes[54], Episode::new(3, 11, 4794580, "Bouncing Back", Some(2016), Some(43)));
661 assert_eq!(episodes[55], Episode::new(3, 12, 4800060, "The Inside Man", Some(2016), Some(43)));
662 assert_eq!(episodes[56], Episode::new(3, 13, 4809604, "Parting Shot", Some(2016), Some(42)));
663 assert_eq!(episodes[57], Episode::new(3, 14, 4819384, "Watchdogs", Some(2016), Some(42)));
664 assert_eq!(episodes[58], Episode::new(3, 15, 4829172, "Spacetime", Some(2016), Some(43)));
665 assert_eq!(episodes[59], Episode::new(3, 16, 4838204, "Paradise Lost", Some(2016), Some(43)));
666 assert_eq!(episodes[60], Episode::new(3, 17, 4842854, "The Team", Some(2016), Some(43)));
667 assert_eq!(episodes[61], Episode::new(3, 18, 4857186, "The Singularity", Some(2016), Some(42)));
668 assert_eq!(episodes[62], Episode::new(3, 19, 4871764, "Failed Experiments", Some(2016), Some(41)));
669 assert_eq!(episodes[63], Episode::new(3, 20, 4877412, "Emancipation", Some(2016), Some(43)));
670 assert_eq!(episodes[64], Episode::new(3, 21, 4883818, "Absolution", Some(2016), Some(43)));
671 assert_eq!(episodes[65], Episode::new(3, 22, 4899794, "Ascension", Some(2016), Some(43)));
672 assert_eq!(episodes[66], Episode::new(4, 1, 5518974, "The Ghost", Some(2016), Some(43)));
673 assert_eq!(episodes[67], Episode::new(4, 2, 5916264, "Meet the New Boss", Some(2016), Some(43)));
674 assert_eq!(episodes[68], Episode::new(4, 3, 5916458, "Uprising", Some(2016), Some(42)));
675 assert_eq!(episodes[69], Episode::new(4, 4, 5916482, "Let Me Stand Next to Your Fire", Some(2016), Some(43)));
676 assert_eq!(episodes[70], Episode::new(4, 5, 5916512, "Lockup", Some(2016), Some(42)));
677 assert_eq!(episodes[71], Episode::new(4, 6, 5916528, "The Good Samaritan", Some(2016), Some(41)));
678 assert_eq!(episodes[72], Episode::new(4, 7, 5916746, "Deals with Our Devils", Some(2016), Some(43)));
679 assert_eq!(episodes[73], Episode::new(4, 8, 5916754, "The Laws of Inferno Dynamics", Some(2016), Some(42)));
680 assert_eq!(episodes[74], Episode::new(4, 9, 5916768, "Broken Promises", Some(2017), Some(43)));
681 assert_eq!(episodes[75], Episode::new(4, 10, 5916774, "The Patriot", Some(2017), Some(42)));
682 assert_eq!(episodes[76], Episode::new(4, 11, 5916778, "Wake Up", Some(2017), Some(42)));
683 assert_eq!(episodes[77], Episode::new(4, 12, 5916782, "Hot Potato Soup", Some(2017), Some(42)));
684 assert_eq!(episodes[78], Episode::new(4, 13, 5916792, "BOOM", Some(2017), Some(43)));
685 assert_eq!(episodes[79], Episode::new(4, 14, 5916818, "The Man Behind the Shield", Some(2017), Some(42)));
686 assert_eq!(episodes[80], Episode::new(4, 15, 5916824, "Self Control", Some(2017), Some(43)));
687 assert_eq!(episodes[81], Episode::new(4, 16, 5916832, "What If...", Some(2017), Some(42)));
688 assert_eq!(episodes[82], Episode::new(4, 17, 5916836, "Identity and Change", Some(2017), Some(43)));
689 assert_eq!(episodes[83], Episode::new(4, 18, 5916840, "No Regrets", Some(2017), Some(43)));
690 assert_eq!(episodes[84], Episode::new(4, 19, 5916846, "All the Madame\'s Men", Some(2017), Some(43)));
691 assert_eq!(episodes[85], Episode::new(4, 20, 5916856, "Farewell, Cruel World!", Some(2017), Some(41)));
692 assert_eq!(episodes[86], Episode::new(4, 21, 5916876, "The Return", Some(2017), Some(43)));
693 assert_eq!(episodes[87], Episode::new(4, 22, 5916882, "World\'s End", Some(2017), Some(43)));
694 assert_eq!(episodes[88], Episode::new(5, 1, 6878538, "Orientation: Part 1", Some(2017), Some(42)));
695 assert_eq!(episodes[89], Episode::new(5, 2, 7178426, "Orientation: Part 2", Some(2017), Some(43)));
696 assert_eq!(episodes[90], Episode::new(5, 3, 7183060, "A Life Spent", Some(2017), Some(42)));
697 assert_eq!(episodes[91], Episode::new(5, 4, 7183068, "A Life Earned", Some(2017), Some(43)));
698 assert_eq!(episodes[92], Episode::new(5, 5, 7183072, "Rewind", Some(2017), Some(42)));
699 assert_eq!(episodes[93], Episode::new(5, 6, 7183078, "Fun & Games", Some(2018), Some(42)));
700 assert_eq!(episodes[94], Episode::new(5, 7, 7183084, "Together or Not at All", Some(2018), Some(40)));
701 assert_eq!(episodes[95], Episode::new(5, 8, 7183086, "The Last Day", Some(2018), Some(42)));
702 assert_eq!(episodes[96], Episode::new(5, 9, 7183090, "Best Laid Plans", Some(2018), Some(41)));
703 assert_eq!(episodes[97], Episode::new(5, 10, 7183092, "Past Life", Some(2018), Some(42)));
704 assert_eq!(episodes[98], Episode::new(5, 11, 7183100, "All the Comforts of Home", Some(2018), Some(42)));
705 assert_eq!(episodes[99], Episode::new(5, 12, 7183104, "The Real Deal", Some(2018), Some(43)));
706 assert_eq!(episodes[100], Episode::new(5, 13, 7183106, "Principia", Some(2018), Some(42)));
707 assert_eq!(episodes[101], Episode::new(5, 14, 7183112, "The Devil Complex", Some(2018), Some(42)));
708 assert_eq!(episodes[102], Episode::new(5, 15, 7183116, "Rise and Shine", Some(2018), Some(43)));
709 assert_eq!(episodes[103], Episode::new(5, 16, 7183120, "Inside Voices", Some(2018), Some(42)));
710 assert_eq!(episodes[104], Episode::new(5, 17, 7183126, "The Honeymoon", Some(2018), Some(42)));
711 assert_eq!(episodes[105], Episode::new(5, 18, 7183130, "All Roads Lead...", Some(2018), Some(41)));
712 assert_eq!(episodes[106], Episode::new(5, 19, 7183140, "Option Two", Some(2018), Some(42)));
713 assert_eq!(episodes[107], Episode::new(5, 20, 7183150, "The One Who Will Save Us All", Some(2018), Some(42)));
714 assert_eq!(episodes[108], Episode::new(5, 21, 7183156, "The Force of Gravity", Some(2018), Some(43)));
715 assert_eq!(episodes[109], Episode::new(5, 22, 7183160, "The End", Some(2018), Some(43)));
716 assert_eq!(episodes[110], Episode::new(6, 1, 8416608, "Missing Pieces", Some(2019), Some(42)));
717 assert_eq!(episodes[111], Episode::new(6, 2, 8416896, "Window of Opportunity", Some(2019), Some(43)));
718 assert_eq!(episodes[112], Episode::new(6, 3, 8416904, "Fear and Loathing on the Planet of Kitson", Some(2019), Some(43)));
719 assert_eq!(episodes[113], Episode::new(6, 4, 8416910, "Code Yellow", Some(2019), Some(41)));
720 assert_eq!(episodes[114], Episode::new(6, 5, 8416912, "The Other Thing", Some(2019), Some(42)));
721 assert_eq!(episodes[115], Episode::new(6, 6, 8416914, "Inescapable", Some(2019), Some(42)));
722 assert_eq!(episodes[116], Episode::new(6, 7, 8416916, "Toldja", Some(2019), Some(42)));
723 assert_eq!(episodes[117], Episode::new(6, 8, 8422650, "Collision Course (Part I)", Some(2019), Some(42)));
724 assert_eq!(episodes[118], Episode::new(6, 9, 8422652, "Collision Course (Part II)", Some(2019), Some(42)));
725 assert_eq!(episodes[119], Episode::new(6, 10, 8422656, "Leap", Some(2019), Some(42)));
726 assert_eq!(episodes[120], Episode::new(6, 11, 8422660, "From the Ashes", Some(2019), Some(42)));
727 assert_eq!(episodes[121], Episode::new(6, 12, 8422664, "The Sign", Some(2019), Some(41)));
728 assert_eq!(episodes[122], Episode::new(6, 13, 8422666, "New Life", Some(2019), Some(43)));
729 assert_eq!(episodes[123], Episode::new(7, 1, 9292314, "The New Deal", Some(2020), Some(43)));
730 assert_eq!(episodes[124], Episode::new(7, 2, 9307248, "Know Your Onions", Some(2020), Some(42)));
731 assert_eq!(episodes[125], Episode::new(7, 3, 9307250, "Alien Commies from the Future!", Some(2020), Some(42)));
732 assert_eq!(episodes[126], Episode::new(7, 4, 9307252, "Out of the Past", Some(2020), Some(43)));
733 assert_eq!(episodes[127], Episode::new(7, 5, 9307254, "A Trout in the Milk", Some(2020), Some(42)));
734 assert_eq!(episodes[128], Episode::new(7, 6, 9307256, "Adapt or Die", Some(2020), Some(43)));
735 assert_eq!(episodes[129], Episode::new(7, 7, 9307258, "The Totally Excellent Adventures of Mack and the D", Some(2020), Some(43)));
736 assert_eq!(episodes[130], Episode::new(7, 8, 9307260, "After, Before", Some(2020), Some(42)));
737 assert_eq!(episodes[131], Episode::new(7, 9, 9307262, "As I Have Always Been", Some(2020), Some(43)));
738 assert_eq!(episodes[132], Episode::new(7, 10, 9307264, "Stolen", Some(2020), Some(41)));
739 assert_eq!(episodes[133], Episode::new(7, 11, 9307266, "Brand New Day", Some(2020), Some(43)));
740 assert_eq!(episodes[134], Episode::new(7, 12, 9307268, "The End Is at Hand", Some(2020), Some(43)));
741 assert_eq!(episodes[135], Episode::new(7, 13, 9535202, "What We\'re Fighting For", Some(2020), Some(43)));
742 }
744 } #[tokio::test]
747 async fn episodes_by_show_multi() {
748 let (_dir, mut client) = client().await;
749
750 for i in 0..2 {
751 println!(">>> {}", i);
752 let mut episodes_by_show = client.get_episodes_by_show(&[1442437, 944947, 460681]).await.unwrap();
753 assert_eq!(episodes_by_show.len(), 3);
754
755 let mut episodes = episodes_by_show.remove(&1442437).unwrap();
756 episodes.sort_unstable();
757 assert_eq!(episodes.len(), 250); assert_eq!(episodes[0], Episode::new(1, 1, 1444504, "Pilot", Some(2009), Some(23)));
759 assert_eq!(episodes[1], Episode::new(1, 2, 1492032, "The Bicycle Thief", Some(2009), Some(30)));
760 assert_eq!(episodes[2], Episode::new(1, 3, 1520618, "Come Fly with Me", Some(2009), Some(21)));
761 assert_eq!(episodes[3], Episode::new(1, 4, 1523089, "The Incident", Some(2009), Some(21)));
762 assert_eq!(episodes[4], Episode::new(1, 5, 1530593, "Coal Digger", Some(2009), Some(21)));
763 assert_eq!(episodes[5], Episode::new(1, 6, 1523088, "Run for Your Wife", Some(2009), Some(21)));
764 assert_eq!(episodes[6], Episode::new(1, 7, 1530594, "En Garde", Some(2009), Some(20)));
765 assert_eq!(episodes[7], Episode::new(1, 8, 1530595, "Great Expectations", Some(2009), Some(21)));
766 assert_eq!(episodes[8], Episode::new(1, 9, 1528496, "Fizbo", Some(2009), Some(21)));
767 assert_eq!(episodes[9], Episode::new(1, 10, 1536241, "Undeck the Halls", Some(2009), Some(21)));
768 assert_eq!(episodes[10], Episode::new(1, 11, 1536765, "Up All Night", Some(2010), Some(21)));
769 assert_eq!(episodes[11], Episode::new(1, 12, 1581054, "Not in My House", Some(2010), Some(21)));
770 assert_eq!(episodes[12], Episode::new(1, 13, 1569106, "Fifteen Percent", Some(2010), Some(21)));
771 assert_eq!(episodes[13], Episode::new(1, 14, 1580159, "Moon Landing", Some(2010), Some(21)));
772 assert_eq!(episodes[14], Episode::new(1, 15, 1583904, "My Funky Valentine", Some(2010), Some(21)));
773 assert_eq!(episodes[15], Episode::new(1, 16, 1594366, "Fears", Some(2010), Some(21)));
774 assert_eq!(episodes[16], Episode::new(1, 17, 1596476, "Truth Be Told", Some(2010), Some(21)));
775 assert_eq!(episodes[17], Episode::new(1, 18, 1615677, "Starry Night", Some(2010), Some(21)));
776 assert_eq!(episodes[18], Episode::new(1, 19, 1617483, "Game Changer", Some(2010), Some(21)));
777 assert_eq!(episodes[19], Episode::new(1, 20, 1625484, "Benched", Some(2010), Some(21)));
778 assert_eq!(episodes[20], Episode::new(1, 21, 1625485, "Travels with Scout", Some(2010), Some(22)));
779 assert_eq!(episodes[21], Episode::new(1, 22, 1643884, "Airport 2010", Some(2010), Some(21)));
780 assert_eq!(episodes[22], Episode::new(1, 23, 1643885, "Hawaii", Some(2010), Some(21)));
781 assert_eq!(episodes[23], Episode::new(1, 24, 1624700, "Family Portrait", Some(2010), Some(21)));
782 assert_eq!(episodes[24], Episode::new(2, 1, 1627460, "The Old Wagon", Some(2010), Some(21)));
783 assert_eq!(episodes[25], Episode::new(2, 2, 1627459, "The Kiss", Some(2010), Some(21)));
784 assert_eq!(episodes[26], Episode::new(2, 3, 1627443, "Earthquake", Some(2010), Some(21)));
785 assert_eq!(episodes[27], Episode::new(2, 4, 1627454, "Strangers on a Treadmill", Some(2010), Some(21)));
786 assert_eq!(episodes[28], Episode::new(2, 5, 1627461, "Unplugged", Some(2010), Some(21)));
787 assert_eq!(episodes[29], Episode::new(2, 6, 1627464, "Halloween", Some(2010), Some(21)));
788 assert_eq!(episodes[30], Episode::new(2, 7, 1627458, "Chirp", Some(2010), Some(21)));
789 assert_eq!(episodes[31], Episode::new(2, 8, 1627445, "Manny Get Your Gun", Some(2010), Some(20)));
790 assert_eq!(episodes[32], Episode::new(2, 9, 1627462, "Mother Tucker", Some(2010), Some(21)));
791 assert_eq!(episodes[33], Episode::new(2, 10, 1779206, "Dance Dance Revelation", Some(2010), Some(21)));
792 assert_eq!(episodes[34], Episode::new(2, 11, 1627446, "Slow Down Your Neighbors", Some(2011), Some(21)));
793 assert_eq!(episodes[35], Episode::new(2, 12, 1627444, "Our Children, Ourselves", Some(2011), Some(21)));
794 assert_eq!(episodes[36], Episode::new(2, 13, 1627447, "Caught in the Act", Some(2011), Some(21)));
795 assert_eq!(episodes[37], Episode::new(2, 14, 1627448, "Bixby\'s Back", Some(2011), Some(21)));
796 assert_eq!(episodes[38], Episode::new(2, 15, 1627449, "Princess Party", Some(2011), Some(21)));
797 assert_eq!(episodes[39], Episode::new(2, 16, 1836487, "Regrets Only", Some(2011), Some(21)));
798 assert_eq!(episodes[40], Episode::new(2, 17, 1841231, "Two Monkeys and a Panda", Some(2011), Some(21)));
799 assert_eq!(episodes[41], Episode::new(2, 18, 1627452, "Boys\' Night", Some(2011), Some(21)));
800 assert_eq!(episodes[42], Episode::new(2, 19, 1627453, "The Musical Man", Some(2011), Some(21)));
801 assert_eq!(episodes[43], Episode::new(2, 20, 1627455, "Someone to Watch Over Lily", Some(2011), Some(21)));
802 assert_eq!(episodes[44], Episode::new(2, 21, 1627456, "Mother\'s Day", Some(2011), Some(21)));
803 assert_eq!(episodes[45], Episode::new(2, 22, 1627457, "Good Cop Bad Dog", Some(2011), Some(21)));
804 assert_eq!(episodes[46], Episode::new(2, 23, 1900347, "See You Next Fall", Some(2011), Some(21)));
805 assert_eq!(episodes[47], Episode::new(2, 24, 1900348, "The One That Got Away", Some(2011), Some(21)));
806 assert_eq!(episodes[48], Episode::new(3, 1, 2047147, "Dude Ranch", Some(2011), Some(21)));
807 assert_eq!(episodes[49], Episode::new(3, 2, 2044356, "When Good Kids Go Bad", Some(2011), Some(21)));
808 assert_eq!(episodes[50], Episode::new(3, 3, 1983675, "Phil on Wire", Some(2011), Some(21)));
809 assert_eq!(episodes[51], Episode::new(3, 4, 2065470, "Door to Door", Some(2011), Some(21)));
810 assert_eq!(episodes[52], Episode::new(3, 5, 2064470, "Hit and Run", Some(2011), Some(21)));
811 assert_eq!(episodes[53], Episode::new(3, 6, 2081815, "Go Bullfrogs!", Some(2011), Some(21)));
812 assert_eq!(episodes[54], Episode::new(3, 7, 2089248, "Treehouse", Some(2011), Some(22)));
813 assert_eq!(episodes[55], Episode::new(3, 8, 2089249, "After the Fire", Some(2011), Some(22)));
814 assert_eq!(episodes[56], Episode::new(3, 9, 2087341, "Punkin Chunkin", Some(2011), Some(21)));
815 assert_eq!(episodes[57], Episode::new(3, 10, 2096098, "Express Christmas", Some(2011), Some(22)));
816 assert_eq!(episodes[58], Episode::new(3, 11, 2105660, "Lifetime Supply", Some(2012), Some(22)));
817 assert_eq!(episodes[59], Episode::new(3, 12, 2110811, "Egg Drop", Some(2012), Some(22)));
818 assert_eq!(episodes[60], Episode::new(3, 13, 2181257, "Little Bo Bleep", Some(2012), Some(22)));
819 assert_eq!(episodes[61], Episode::new(3, 14, 2189485, "Me? Jealous?", Some(2012), Some(21)));
820 assert_eq!(episodes[62], Episode::new(3, 15, 2209159, "Aunt Mommy", Some(2012), Some(20)));
821 assert_eq!(episodes[63], Episode::new(3, 16, 2237415, "Virgin Territory", Some(2012), Some(22)));
822 assert_eq!(episodes[64], Episode::new(3, 17, 2244103, "Leap Day", Some(2012), Some(22)));
823 assert_eq!(episodes[65], Episode::new(3, 18, 2239817, "Send Out the Clowns", Some(2012), Some(21)));
824 assert_eq!(episodes[66], Episode::new(3, 19, 2305713, "Election Day", Some(2012), Some(21)));
825 assert_eq!(episodes[67], Episode::new(3, 20, 2305715, "The Last Walt", Some(2012), Some(20)));
826 assert_eq!(episodes[68], Episode::new(3, 21, 2247703, "Planes, Trains and Cars", Some(2012), Some(21)));
827 assert_eq!(episodes[69], Episode::new(3, 22, 2342897, "Disneyland", Some(2012), Some(21)));
828 assert_eq!(episodes[70], Episode::new(3, 23, 2303805, "Tableau Vivant", Some(2012), Some(20)));
829 assert_eq!(episodes[71], Episode::new(3, 24, 2358075, "Baby on Board", Some(2012), Some(20)));
830 assert_eq!(episodes[72], Episode::new(4, 1, 2397171, "Bringing Up Baby", Some(2012), Some(22)));
831 assert_eq!(episodes[73], Episode::new(4, 2, 2360776, "Schooled", Some(2012), Some(22)));
832 assert_eq!(episodes[74], Episode::new(4, 3, 2362724, "Snip", Some(2012), Some(22)));
833 assert_eq!(episodes[75], Episode::new(4, 4, 2404438, "The Butler\'s Escape", Some(2012), Some(22)));
834 assert_eq!(episodes[76], Episode::new(4, 5, 2393824, "Open House of Horrors", Some(2012), Some(21)));
835 assert_eq!(episodes[77], Episode::new(4, 6, 2488642, "Yard Sale", Some(2012), Some(21)));
836 assert_eq!(episodes[78], Episode::new(4, 7, 2488644, "Arrested", Some(2012), Some(22)));
837 assert_eq!(episodes[79], Episode::new(4, 8, 2488652, "Mistery Date", Some(2012), Some(22)));
838 assert_eq!(episodes[80], Episode::new(4, 9, 2459378, "When a Tree Falls", Some(2012), Some(22)));
839 assert_eq!(episodes[81], Episode::new(4, 10, 2543110, "Diamond in the Rough", Some(2012), Some(22)));
840 assert_eq!(episodes[82], Episode::new(4, 11, 2586840, "New Year\'s Eve", Some(2013), Some(22)));
841 assert_eq!(episodes[83], Episode::new(4, 12, 2507294, "Party Crasher", Some(2013), Some(22)));
842 assert_eq!(episodes[84], Episode::new(4, 13, 2517458, "Fulgencio", Some(2013), Some(22)));
843 assert_eq!(episodes[85], Episode::new(4, 14, 2568884, "A Slight at the Opera", Some(2013), Some(22)));
844 assert_eq!(episodes[86], Episode::new(4, 15, 2691640, "Heart Broken", Some(2013), Some(22)));
845 assert_eq!(episodes[87], Episode::new(4, 16, 2708166, "Bad Hair Day", Some(2013), Some(22)));
846 assert_eq!(episodes[88], Episode::new(4, 17, 2573094, "Best Men", Some(2013), Some(22)));
847 assert_eq!(episodes[89], Episode::new(4, 18, 2586848, "The Wow Factor", Some(2013), Some(22)));
848 assert_eq!(episodes[90], Episode::new(4, 19, 2799086, "The Future Dunphys", Some(2013), Some(22)));
849 assert_eq!(episodes[91], Episode::new(4, 20, 2799078, "Flip Flop", Some(2013), Some(22)));
850 assert_eq!(episodes[92], Episode::new(4, 21, 2716564, "Career Day", Some(2013), Some(22)));
851 assert_eq!(episodes[93], Episode::new(4, 22, 2720510, "My Hero", Some(2013), Some(22)));
852 assert_eq!(episodes[94], Episode::new(4, 23, 2814070, "Games People Play", Some(2013), Some(22)));
853 assert_eq!(episodes[95], Episode::new(4, 24, 2770826, "Goodnight Gracie", Some(2013), Some(22)));
854 assert_eq!(episodes[96], Episode::new(5, 1, 2911820, "Suddenly, Last Summer", Some(2013), Some(22)));
855 assert_eq!(episodes[97], Episode::new(5, 2, 3116354, "First Days", Some(2013), Some(21)));
856 assert_eq!(episodes[98], Episode::new(5, 3, 3172360, "Larry\'s Wife", Some(2013), Some(22)));
857 assert_eq!(episodes[99], Episode::new(5, 4, 3183992, "Farm Strong", Some(2013), Some(21)));
858 assert_eq!(episodes[100], Episode::new(5, 5, 3237940, "The Late Show", Some(2013), Some(21)));
859 assert_eq!(episodes[101], Episode::new(5, 6, 3267504, "The Help", Some(2013), Some(22)));
860 assert_eq!(episodes[102], Episode::new(5, 7, 3292104, "A Fair to Remember", Some(2013), Some(22)));
861 assert_eq!(episodes[103], Episode::new(5, 8, 3293410, "ClosetCon \'13", Some(2013), Some(21)));
862 assert_eq!(episodes[104], Episode::new(5, 9, 3266712, "The Big Game", Some(2013), Some(21)));
863 assert_eq!(episodes[105], Episode::new(5, 10, 3335562, "The Old Man & the Tree", Some(2013), Some(21)));
864 assert_eq!(episodes[106], Episode::new(5, 11, 3344996, "And One to Grow On", Some(2014), Some(21)));
865 assert_eq!(episodes[107], Episode::new(5, 12, 3328416, "Under Pressure", Some(2014), Some(22)));
866 assert_eq!(episodes[108], Episode::new(5, 13, 3410062, "Three Dinners", Some(2014), Some(21)));
867 assert_eq!(episodes[109], Episode::new(5, 14, 3410066, "iSpy", Some(2014), Some(21)));
868 assert_eq!(episodes[110], Episode::new(5, 15, 3508790, "The Feud", Some(2014), Some(21)));
869 assert_eq!(episodes[111], Episode::new(5, 16, 3508794, "Spring-A-Ding-Fling", Some(2014), Some(21)));
870 assert_eq!(episodes[112], Episode::new(5, 17, 3508792, "Other People\'s Children", Some(2014), Some(22)));
871 assert_eq!(episodes[113], Episode::new(5, 18, 3508788, "Las Vegas", Some(2014), Some(21)));
872 assert_eq!(episodes[114], Episode::new(5, 19, 3508796, "A Hard Jay\'s Night", Some(2014), Some(21)));
873 assert_eq!(episodes[115], Episode::new(5, 20, 3675476, "Australia", Some(2014), Some(22)));
874 assert_eq!(episodes[116], Episode::new(5, 21, 3684710, "Sleeper", Some(2014), Some(21)));
875 assert_eq!(episodes[117], Episode::new(5, 22, 3684716, "Message Received", Some(2014), Some(22)));
876 assert_eq!(episodes[118], Episode::new(5, 23, 3588986, "The Wedding, Part 1", Some(2014), Some(22)));
877 assert_eq!(episodes[119], Episode::new(5, 24, 3687550, "The Wedding, Part 2", Some(2014), Some(21)));
878 assert_eq!(episodes[120], Episode::new(6, 1, 3722370, "The Long Honeymoon", Some(2014), Some(21)));
879 assert_eq!(episodes[121], Episode::new(6, 2, 4063326, "Don\'t Push", Some(2014), Some(22)));
880 assert_eq!(episodes[122], Episode::new(6, 3, 4071558, "The Cold", Some(2014), Some(22)));
881 assert_eq!(episodes[123], Episode::new(6, 4, 4085200, "Marco Polo", Some(2014), Some(22)));
882 assert_eq!(episodes[124], Episode::new(6, 5, 4102996, "Won\'t You Be Our Neighbor", Some(2014), Some(22)));
883 assert_eq!(episodes[125], Episode::new(6, 6, 4132862, "Halloween 3: AwesomeLand", Some(2014), Some(22)));
884 assert_eq!(episodes[126], Episode::new(6, 7, 4166966, "Queer Eyes, Full Hearts", Some(2014), Some(21)));
885 assert_eq!(episodes[127], Episode::new(6, 8, 4106068, "Three Turkeys", Some(2014), Some(21)));
886 assert_eq!(episodes[128], Episode::new(6, 9, 4203910, "Strangers in the Night", Some(2014), Some(21)));
887 assert_eq!(episodes[129], Episode::new(6, 10, 4241440, "Haley\'s 21st Birthday", Some(2014), Some(21)));
888 assert_eq!(episodes[130], Episode::new(6, 11, 4303618, "The Day We Almost Died", Some(2015), Some(22)));
889 assert_eq!(episodes[131], Episode::new(6, 12, 4303620, "The Big Guns", Some(2015), Some(21)));
890 assert_eq!(episodes[132], Episode::new(6, 13, 4389738, "Rash Decisions", Some(2015), Some(22)));
891 assert_eq!(episodes[133], Episode::new(6, 14, 4389740, "Valentine\'s Day 4: Twisted Sister", Some(2015), Some(22)));
892 assert_eq!(episodes[134], Episode::new(6, 15, 4389742, "Fight or Flight", Some(2015), Some(21)));
893 assert_eq!(episodes[135], Episode::new(6, 16, 4389744, "Connection Lost", Some(2015), Some(22)));
894 assert_eq!(episodes[136], Episode::new(6, 17, 4454724, "Closet? You\'ll Love It!", Some(2015), Some(22)));
895 assert_eq!(episodes[137], Episode::new(6, 18, 4464076, "Spring Break", Some(2015), Some(21)));
896 assert_eq!(episodes[138], Episode::new(6, 19, 4464078, "Grill, Interrupted", Some(2015), Some(22)));
897 assert_eq!(episodes[139], Episode::new(6, 20, 4454702, "Knock \'Em Down", Some(2015), Some(21)));
898 assert_eq!(episodes[140], Episode::new(6, 21, 4464080, "Integrity", Some(2015), Some(22)));
899 assert_eq!(episodes[141], Episode::new(6, 22, 4464088, "Patriot Games", Some(2015), Some(21)));
900 assert_eq!(episodes[142], Episode::new(6, 23, 4464092, "Crying Out Loud", Some(2015), Some(22)));
901 assert_eq!(episodes[143], Episode::new(6, 24, 4464094, "American Skyper", Some(2015), Some(21)));
902 assert_eq!(episodes[144], Episode::new(7, 1, 4695160, "Summer Lovin\'", Some(2015), Some(22)));
903 assert_eq!(episodes[145], Episode::new(7, 2, 4941946, "The Day Alex Left for College", Some(2015), Some(22)));
904 assert_eq!(episodes[146], Episode::new(7, 3, 5056418, "The Closet Case", Some(2015), Some(22)));
905 assert_eq!(episodes[147], Episode::new(7, 4, 5015956, "She Crazy", Some(2015), Some(22)));
906 assert_eq!(episodes[148], Episode::new(7, 5, 5115000, "The Verdict", Some(2015), Some(22)));
907 assert_eq!(episodes[149], Episode::new(7, 6, 5143558, "The More You Ignore Me", Some(2015), Some(21)));
908 assert_eq!(episodes[150], Episode::new(7, 7, 5143564, "Phil\'s Sexy, Sexy House", Some(2015), Some(21)));
909 assert_eq!(episodes[151], Episode::new(7, 8, 5197990, "Clean Out Your Junk Drawer", Some(2015), Some(21)));
910 assert_eq!(episodes[152], Episode::new(7, 9, 5209922, "White Christmas", Some(2015), Some(21)));
911 assert_eq!(episodes[153], Episode::new(7, 10, 5042714, "Playdates", Some(2016), Some(21)));
912 assert_eq!(episodes[154], Episode::new(7, 11, 5042722, "Spread Your Wings", Some(2016), Some(21)));
913 assert_eq!(episodes[155], Episode::new(7, 12, 5200458, "Clean for a Day", Some(2016), Some(21)));
914 assert_eq!(episodes[156], Episode::new(7, 13, 5244906, "Thunk in the Trunk", Some(2016), Some(21)));
915 assert_eq!(episodes[157], Episode::new(7, 14, 5259588, "The Storm", Some(2016), Some(21)));
916 assert_eq!(episodes[158], Episode::new(7, 15, 5265080, "I Don\'t Know How She Does It", Some(2016), Some(21)));
917 assert_eq!(episodes[159], Episode::new(7, 16, 5357382, "The Cover-Up", Some(2016), Some(21)));
918 assert_eq!(episodes[160], Episode::new(7, 17, 5357386, "Express Yourself", Some(2016), Some(21)));
919 assert_eq!(episodes[161], Episode::new(7, 18, 5357390, "The Party", Some(2016), Some(21)));
920 assert_eq!(episodes[162], Episode::new(7, 19, 5357396, "Man Shouldn\'t Lie", Some(2016), Some(21)));
921 assert_eq!(episodes[163], Episode::new(7, 20, 5357398, "Promposal", Some(2016), Some(21)));
922 assert_eq!(episodes[164], Episode::new(7, 21, 5357400, "Crazy Train", Some(2016), Some(21)));
923 assert_eq!(episodes[165], Episode::new(7, 22, 5357406, "Double Click", Some(2016), Some(21)));
924 assert_eq!(episodes[166], Episode::new(8, 1, 5530750, "A Tale of Three Cities", Some(2016), Some(21)));
925 assert_eq!(episodes[167], Episode::new(8, 2, 5357404, "A Stereotypical Day", Some(2016), Some(21)));
926 assert_eq!(episodes[168], Episode::new(8, 3, 5042724, "Blindsided", Some(2016), Some(21)));
927 assert_eq!(episodes[169], Episode::new(8, 4, 6014414, "Weathering Heights", Some(2016), Some(21)));
928 assert_eq!(episodes[170], Episode::new(8, 5, 6074728, "Halloween 4: The Revenge of Rod Skyhook", Some(2016), Some(21)));
929 assert_eq!(episodes[171], Episode::new(8, 6, 6074546, "Grab It", Some(2016), Some(21)));
930 assert_eq!(episodes[172], Episode::new(8, 7, 6184702, "Thanksgiving Jamboree", Some(2016), Some(21)));
931 assert_eq!(episodes[173], Episode::new(8, 8, 6189510, "The Alliance", Some(2016), Some(21)));
932 assert_eq!(episodes[174], Episode::new(8, 9, 6254222, "Snow Ball", Some(2016), Some(21)));
933 assert_eq!(episodes[175], Episode::new(8, 10, 6199718, "Ringmaster Keifth", Some(2017), Some(21)));
934 assert_eq!(episodes[176], Episode::new(8, 11, 6300118, "Sarge & Pea", Some(2017), Some(21)));
935 assert_eq!(episodes[177], Episode::new(8, 12, 6300120, "Do You Believe in Magic", Some(2017), Some(21)));
936 assert_eq!(episodes[178], Episode::new(8, 13, 6264670, "Do It Yourself", Some(2017), Some(20)));
937 assert_eq!(episodes[179], Episode::new(8, 14, 6320554, "Heavy Is the Head", Some(2017), Some(21)));
938 assert_eq!(episodes[180], Episode::new(8, 15, 6412096, "Finding Fizbo", Some(2017), Some(21)));
939 assert_eq!(episodes[181], Episode::new(8, 16, 6412100, "Basketball", Some(2017), Some(21)));
940 assert_eq!(episodes[182], Episode::new(8, 17, 6421476, "Pig Moon Rising", Some(2017), Some(21)));
941 assert_eq!(episodes[183], Episode::new(8, 18, 6421472, "Five Minutes", Some(2017), Some(21)));
942 assert_eq!(episodes[184], Episode::new(8, 19, 6421474, "Frank\'s Wedding", Some(2017), Some(21)));
943 assert_eq!(episodes[185], Episode::new(8, 20, 6421480, "All Things Being Equal", Some(2017), Some(21)));
944 assert_eq!(episodes[186], Episode::new(8, 21, 6421484, "Alone Time", Some(2017), Some(21)));
945 assert_eq!(episodes[187], Episode::new(8, 22, 5915114, "The Graduates", Some(2017), Some(21)));
946 assert_eq!(episodes[188], Episode::new(9, 1, 6876608, "Lake Life", Some(2017), Some(21)));
947 assert_eq!(episodes[189], Episode::new(9, 2, 7339924, "The Long Goodbye", Some(2017), Some(21)));
948 assert_eq!(episodes[190], Episode::new(9, 3, 7339922, "Catch of the Day", Some(2017), Some(21)));
949 assert_eq!(episodes[191], Episode::new(9, 4, 7459358, "Sex, Lies & Kickball", Some(2017), Some(21)));
950 assert_eq!(episodes[192], Episode::new(9, 5, 7476576, "It\'s the Great Pumpkin, Phil Dunphy", Some(2017), Some(21)));
951 assert_eq!(episodes[193], Episode::new(9, 6, 7514012, "Ten Years Later", Some(2017), Some(21)));
952 assert_eq!(episodes[194], Episode::new(9, 7, 7569884, "Winner Winner Turkey Dinner", Some(2017), Some(21)));
953 assert_eq!(episodes[195], Episode::new(9, 8, 7578286, "Brushes with Celebrity", Some(2017), Some(21)));
954 assert_eq!(episodes[196], Episode::new(9, 9, 7656366, "Tough Love", Some(2017), Some(21)));
955 assert_eq!(episodes[197], Episode::new(9, 10, 7671206, "No Small Feet", Some(2017), Some(21)));
956 assert_eq!(episodes[198], Episode::new(9, 11, 7740568, "He Said, She Shed", Some(2018), Some(21)));
957 assert_eq!(episodes[199], Episode::new(9, 12, 7768278, "Dear Beloved Family", Some(2018), Some(21)));
958 assert_eq!(episodes[200], Episode::new(9, 13, 7768276, "In Your Head", Some(2018), Some(21)));
959 assert_eq!(episodes[201], Episode::new(9, 14, 7781868, "Written in the Stars", Some(2018), Some(21)));
960 assert_eq!(episodes[202], Episode::new(9, 15, 7822362, "Spanks for the Memories", Some(2018), Some(21)));
961 assert_eq!(episodes[203], Episode::new(9, 16, 7822374, "Wine Weekend", Some(2018), Some(21)));
962 assert_eq!(episodes[204], Episode::new(9, 17, 7822378, "Royal Visit", Some(2018), Some(21)));
963 assert_eq!(episodes[205], Episode::new(9, 18, 7822380, "Daddy Issues", Some(2018), Some(21)));
964 assert_eq!(episodes[206], Episode::new(9, 19, 7822384, "CHiPs and Salsa", Some(2018), Some(21)));
965 assert_eq!(episodes[207], Episode::new(9, 20, 7822370, "Mother!", Some(2018), Some(21)));
966 assert_eq!(episodes[208], Episode::new(9, 21, 7822366, "The Escape", Some(2018), Some(21)));
967 assert_eq!(episodes[209], Episode::new(9, 22, 6876612, "Clash of Swords", Some(2018), Some(21)));
968 assert_eq!(episodes[210], Episode::new(10, 1, 6876616, "I Love a Parade", Some(2018), Some(21)));
969 assert_eq!(episodes[211], Episode::new(10, 2, 8428516, "Kiss and Tell", Some(2018), Some(21)));
970 assert_eq!(episodes[212], Episode::new(10, 3, 8428520, "A Sketchy Area", Some(2018), Some(21)));
971 assert_eq!(episodes[213], Episode::new(10, 4, 8428522, "Torn Between Two Lovers", Some(2018), Some(21)));
972 assert_eq!(episodes[214], Episode::new(10, 5, 8428526, "Good Grief", Some(2018), Some(21)));
973 assert_eq!(episodes[215], Episode::new(10, 6, 8428530, "On the Same Paige", Some(2018), Some(21)));
974 assert_eq!(episodes[216], Episode::new(10, 7, 8428610, "Did the Chicken Cross the Road?", Some(2018), Some(21)));
975 assert_eq!(episodes[217], Episode::new(10, 8, 8428532, "Kids These Days", Some(2018), Some(21)));
976 assert_eq!(episodes[218], Episode::new(10, 9, 8428548, "Putting Down Roots", Some(2018), Some(21)));
977 assert_eq!(episodes[219], Episode::new(10, 10, 8428534, "Stuck in a Moment", Some(2018), Some(21)));
978 assert_eq!(episodes[220], Episode::new(10, 11, 8428554, "A Moving Day", Some(2019), Some(21)));
979 assert_eq!(episodes[221], Episode::new(10, 12, 8428562, "Blasts from the Past", Some(2019), Some(21)));
980 assert_eq!(episodes[222], Episode::new(10, 13, 8428572, "Whanex?", Some(2019), Some(21)));
981 assert_eq!(episodes[223], Episode::new(10, 14, 8428576, "We Need to Talk About Lily", Some(2019), Some(21)));
982 assert_eq!(episodes[224], Episode::new(10, 15, 8428590, "SuperShowerBabyBowl", Some(2019), Some(21)));
983 assert_eq!(episodes[225], Episode::new(10, 16, 8428602, "Red Alert", Some(2019), Some(21)));
984 assert_eq!(episodes[226], Episode::new(10, 17, 8428622, "The Wild", Some(2019), Some(21)));
985 assert_eq!(episodes[227], Episode::new(10, 18, 8428626, "Stand by Your Man", Some(2019), Some(21)));
986 assert_eq!(episodes[228], Episode::new(10, 19, 8428632, "Yes-Woman", Some(2019), Some(21)));
987 assert_eq!(episodes[229], Episode::new(10, 20, 8428638, "Can\'t Elope", Some(2019), Some(21)));
988 assert_eq!(episodes[230], Episode::new(10, 21, 8428648, "Commencement", Some(2019), Some(21)));
989 assert_eq!(episodes[231], Episode::new(10, 22, 6876620, "A Year of Birthdays", Some(2019), Some(21)));
990 assert_eq!(episodes[232], Episode::new(11, 1, 9728344, "New Kids on the Block", Some(2019), Some(21)));
991 assert_eq!(episodes[233], Episode::new(11, 2, 10815674, "Snapped", Some(2019), Some(21)));
992 assert_eq!(episodes[234], Episode::new(11, 3, 10851244, "Perfect Pairs", Some(2019), Some(21)));
993 assert_eq!(episodes[235], Episode::new(11, 4, 10926374, "Pool Party", Some(2019), Some(21)));
994 assert_eq!(episodes[236], Episode::new(11, 5, 11022174, "The Last Halloween", Some(2019), Some(21)));
995 assert_eq!(episodes[237], Episode::new(11, 6, 10964158, "A Game of Chicken", Some(2019), Some(20)));
996 assert_eq!(episodes[238], Episode::new(11, 7, 11224340, "The Last Thanksgiving", Some(2019), Some(21)));
997 assert_eq!(episodes[239], Episode::new(11, 8, 11248096, "Tree\'s a Crowd", Some(2019), Some(21)));
998 assert_eq!(episodes[240], Episode::new(11, 9, 11248100, "The Last Christmas", Some(2019), Some(20)));
999 assert_eq!(episodes[241], Episode::new(11, 10, 11248102, "The Prescott", Some(2020), Some(21)));
1000 assert_eq!(episodes[242], Episode::new(11, 11, 11248106, "Legacy", Some(2020), Some(21)));
1001 assert_eq!(episodes[243], Episode::new(11, 12, 11248108, "Dead on a Rival", Some(2020), Some(21)));
1002 assert_eq!(episodes[244], Episode::new(11, 13, 11248110, "Paris", Some(2020), Some(21)));
1003 assert_eq!(episodes[245], Episode::new(11, 14, 11248112, "Spuds", Some(2020), Some(21)));
1004 assert_eq!(episodes[246], Episode::new(11, 15, 11248114, "Baby Steps", Some(2020), Some(21)));
1005 assert_eq!(episodes[247], Episode::new(11, 16, 11248116, "I\'m Going to Miss This", Some(2020), Some(21)));
1006 assert_eq!(episodes[248], Episode::new(11, 17, 11248118, "Finale: Part 1", Some(2020), Some(43)));
1007 assert_eq!(episodes[249], Episode::new(11, 18, 10584958, "Finale: Part 2", Some(2020), Some(20)));
1008 let mut episodes = episodes_by_show.remove(&944947).unwrap();
1011 episodes.sort_unstable();
1012 assert_eq!(episodes.len(), 74); assert_eq!(episodes[0], Episode::new(1, 0, 31321401, "Game of Thrones: Unaired Original Pilot", None, Some(62)));
1014 assert_eq!(episodes[1], Episode::new(1, 1, 1480055, "Winter Is Coming", Some(2011), Some(62)));
1015 assert_eq!(episodes[2], Episode::new(1, 2, 1668746, "The Kingsroad", Some(2011), Some(56)));
1016 assert_eq!(episodes[3], Episode::new(1, 3, 1829962, "Lord Snow", Some(2011), Some(58)));
1017 assert_eq!(episodes[4], Episode::new(1, 4, 1829963, "Cripples, Bastards, and Broken Things", Some(2011), Some(56)));
1018 assert_eq!(episodes[5], Episode::new(1, 5, 1829964, "The Wolf and the Lion", Some(2011), Some(55)));
1019 assert_eq!(episodes[6], Episode::new(1, 6, 1837862, "A Golden Crown", Some(2011), Some(53)));
1020 assert_eq!(episodes[7], Episode::new(1, 7, 1837863, "You Win or You Die", Some(2011), Some(58)));
1021 assert_eq!(episodes[8], Episode::new(1, 8, 1837864, "The Pointy End", Some(2011), Some(59)));
1022 assert_eq!(episodes[9], Episode::new(1, 9, 1851398, "Baelor", Some(2011), Some(57)));
1023 assert_eq!(episodes[10], Episode::new(1, 10, 1851397, "Fire and Blood", Some(2011), Some(53)));
1024 assert_eq!(episodes[11], Episode::new(2, 1, 1971833, "The North Remembers", Some(2012), Some(53)));
1025 assert_eq!(episodes[12], Episode::new(2, 2, 2069318, "The Night Lands", Some(2012), Some(54)));
1026 assert_eq!(episodes[13], Episode::new(2, 3, 2070135, "What Is Dead May Never Die", Some(2012), Some(53)));
1027 assert_eq!(episodes[14], Episode::new(2, 4, 2069319, "Garden of Bones", Some(2012), Some(51)));
1028 assert_eq!(episodes[15], Episode::new(2, 5, 2074658, "The Ghost of Harrenhal", Some(2012), Some(55)));
1029 assert_eq!(episodes[16], Episode::new(2, 6, 2085238, "The Old Gods and the New", Some(2012), Some(54)));
1030 assert_eq!(episodes[17], Episode::new(2, 7, 2085239, "A Man Without Honor", Some(2012), Some(56)));
1031 assert_eq!(episodes[18], Episode::new(2, 8, 2085240, "The Prince of Winterfell", Some(2012), Some(54)));
1032 assert_eq!(episodes[19], Episode::new(2, 9, 2084342, "Blackwater", Some(2012), Some(55)));
1033 assert_eq!(episodes[20], Episode::new(2, 10, 2112510, "Valar Morghulis", Some(2012), Some(64)));
1034 assert_eq!(episodes[21], Episode::new(3, 1, 2178782, "Valar Dohaeris", Some(2013), Some(55)));
1035 assert_eq!(episodes[22], Episode::new(3, 2, 2178772, "Dark Wings, Dark Words", Some(2013), Some(56)));
1036 assert_eq!(episodes[23], Episode::new(3, 3, 2178802, "Walk of Punishment", Some(2013), Some(56)));
1037 assert_eq!(episodes[24], Episode::new(3, 4, 2178798, "And Now His Watch Is Ended", Some(2013), Some(53)));
1038 assert_eq!(episodes[25], Episode::new(3, 5, 2178788, "Kissed by Fire", Some(2013), Some(57)));
1039 assert_eq!(episodes[26], Episode::new(3, 6, 2178812, "The Climb", Some(2013), Some(53)));
1040 assert_eq!(episodes[27], Episode::new(3, 7, 2178814, "The Bear and the Maiden Fair", Some(2013), Some(58)));
1041 assert_eq!(episodes[28], Episode::new(3, 8, 2178806, "Second Sons", Some(2013), Some(56)));
1042 assert_eq!(episodes[29], Episode::new(3, 9, 2178784, "The Rains of Castamere", Some(2013), Some(51)));
1043 assert_eq!(episodes[30], Episode::new(3, 10, 2178796, "Mhysa", Some(2013), Some(63)));
1044 assert_eq!(episodes[31], Episode::new(4, 1, 2816136, "Two Swords", Some(2014), Some(58)));
1045 assert_eq!(episodes[32], Episode::new(4, 2, 2832378, "The Lion and the Rose", Some(2014), Some(52)));
1046 assert_eq!(episodes[33], Episode::new(4, 3, 2972426, "Breaker of Chains", Some(2014), Some(57)));
1047 assert_eq!(episodes[34], Episode::new(4, 4, 2972428, "Oathkeeper", Some(2014), Some(55)));
1048 assert_eq!(episodes[35], Episode::new(4, 5, 3060856, "First of His Name", Some(2014), Some(53)));
1049 assert_eq!(episodes[36], Episode::new(4, 6, 3060910, "The Laws of Gods and Men", Some(2014), Some(51)));
1050 assert_eq!(episodes[37], Episode::new(4, 7, 3060876, "Mockingbird", Some(2014), Some(51)));
1051 assert_eq!(episodes[38], Episode::new(4, 8, 3060782, "The Mountain and the Viper", Some(2014), Some(52)));
1052 assert_eq!(episodes[39], Episode::new(4, 9, 3060858, "The Watchers on the Wall", Some(2014), Some(51)));
1053 assert_eq!(episodes[40], Episode::new(4, 10, 3060860, "The Children", Some(2014), Some(65)));
1054 assert_eq!(episodes[41], Episode::new(5, 1, 3658012, "The Wars to Come", Some(2015), Some(53)));
1055 assert_eq!(episodes[42], Episode::new(5, 2, 3846626, "The House of Black and White", Some(2015), Some(56)));
1056 assert_eq!(episodes[43], Episode::new(5, 3, 3866836, "High Sparrow", Some(2015), Some(60)));
1057 assert_eq!(episodes[44], Episode::new(5, 4, 3866838, "Sons of the Harpy", Some(2015), Some(51)));
1058 assert_eq!(episodes[45], Episode::new(5, 5, 3866840, "Kill the Boy", Some(2015), Some(57)));
1059 assert_eq!(episodes[46], Episode::new(5, 6, 3866842, "Unbowed, Unbent, Unbroken", Some(2015), Some(54)));
1060 assert_eq!(episodes[47], Episode::new(5, 7, 3866846, "The Gift", Some(2015), Some(59)));
1061 assert_eq!(episodes[48], Episode::new(5, 8, 3866850, "Hardhome", Some(2015), Some(61)));
1062 assert_eq!(episodes[49], Episode::new(5, 9, 3866826, "The Dance of Dragons", Some(2015), Some(52)));
1063 assert_eq!(episodes[50], Episode::new(5, 10, 3866862, "Mother\'s Mercy", Some(2015), Some(60)));
1064 assert_eq!(episodes[51], Episode::new(6, 1, 3658014, "The Red Woman", Some(2016), Some(50)));
1065 assert_eq!(episodes[52], Episode::new(6, 2, 4077554, "Home", Some(2016), Some(54)));
1066 assert_eq!(episodes[53], Episode::new(6, 3, 4131606, "Oathbreaker", Some(2016), Some(52)));
1067 assert_eq!(episodes[54], Episode::new(6, 4, 4283016, "Book of the Stranger", Some(2016), Some(59)));
1068 assert_eq!(episodes[55], Episode::new(6, 5, 4283028, "The Door", Some(2016), Some(57)));
1069 assert_eq!(episodes[56], Episode::new(6, 6, 4283054, "Blood of My Blood", Some(2016), Some(52)));
1070 assert_eq!(episodes[57], Episode::new(6, 7, 4283060, "The Broken Man", Some(2016), Some(51)));
1071 assert_eq!(episodes[58], Episode::new(6, 8, 4283074, "No One", Some(2016), Some(59)));
1072 assert_eq!(episodes[59], Episode::new(6, 9, 4283088, "Battle of the Bastards", Some(2016), Some(60)));
1073 assert_eq!(episodes[60], Episode::new(6, 10, 4283094, "The Winds of Winter", Some(2016), Some(68)));
1074 assert_eq!(episodes[61], Episode::new(7, 1, 5654088, "Dragonstone", Some(2017), Some(59)));
1075 assert_eq!(episodes[62], Episode::new(7, 2, 5655178, "Stormborn", Some(2017), Some(59)));
1076 assert_eq!(episodes[63], Episode::new(7, 3, 5775840, "The Queen\'s Justice", Some(2017), Some(63)));
1077 assert_eq!(episodes[64], Episode::new(7, 4, 5775846, "The Spoils of War", Some(2017), Some(50)));
1078 assert_eq!(episodes[65], Episode::new(7, 5, 5775854, "Eastwatch", Some(2017), Some(59)));
1079 assert_eq!(episodes[66], Episode::new(7, 6, 5775864, "Beyond the Wall", Some(2017), Some(70)));
1080 assert_eq!(episodes[67], Episode::new(7, 7, 5775874, "The Dragon and the Wolf", Some(2017), Some(80)));
1081 assert_eq!(episodes[68], Episode::new(8, 1, 5924366, "Winterfell", Some(2019), Some(54)));
1082 assert_eq!(episodes[69], Episode::new(8, 2, 6027908, "A Knight of the Seven Kingdoms", Some(2019), Some(58)));
1083 assert_eq!(episodes[70], Episode::new(8, 3, 6027912, "The Long Night", Some(2019), Some(82)));
1084 assert_eq!(episodes[71], Episode::new(8, 4, 6027914, "The Last of the Starks", Some(2019), Some(78)));
1085 assert_eq!(episodes[72], Episode::new(8, 5, 6027916, "The Bells", Some(2019), Some(78)));
1086 assert_eq!(episodes[73], Episode::new(8, 6, 6027920, "The Iron Throne", Some(2019), Some(80)));
1087 let mut episodes = episodes_by_show.remove(&460681).unwrap();
1090 episodes.sort_unstable();
1091 assert_eq!(episodes.len(), 327); assert_eq!(episodes[0], Episode::new(1, 1, 713618, "Pilot", Some(2005), Some(44)));
1093 assert_eq!(episodes[1], Episode::new(1, 2, 713624, "Wendigo", Some(2005), Some(44)));
1094 assert_eq!(episodes[2], Episode::new(1, 3, 713613, "Dead in the Water", Some(2005), Some(44)));
1095 assert_eq!(episodes[3], Episode::new(1, 4, 713617, "Phantom Traveler", Some(2005), Some(43)));
1096 assert_eq!(episodes[4], Episode::new(1, 5, 713611, "Bloody Mary", Some(2005), Some(44)));
1097 assert_eq!(episodes[5], Episode::new(1, 6, 713622, "Skin", Some(2005), Some(42)));
1098 assert_eq!(episodes[6], Episode::new(1, 7, 713615, "Hook Man", Some(2005), Some(41)));
1099 assert_eq!(episodes[7], Episode::new(1, 8, 713612, "Bugs", Some(2005), Some(44)));
1100 assert_eq!(episodes[8], Episode::new(1, 9, 713623, "Home", Some(2005), Some(43)));
1101 assert_eq!(episodes[9], Episode::new(1, 10, 713610, "Asylum", Some(2005), Some(44)));
1102 assert_eq!(episodes[10], Episode::new(1, 11, 713620, "Scarecrow", Some(2006), Some(43)));
1103 assert_eq!(episodes[11], Episode::new(1, 12, 713614, "Faith", Some(2006), Some(44)));
1104 assert_eq!(episodes[12], Episode::new(1, 13, 713619, "Route 666", Some(2006), Some(50)));
1105 assert_eq!(episodes[13], Episode::new(1, 14, 713616, "Nightmare", Some(2006), Some(55)));
1106 assert_eq!(episodes[14], Episode::new(1, 15, 757750, "The Benders", Some(2006), Some(55)));
1107 assert_eq!(episodes[15], Episode::new(1, 16, 713621, "Shadow", Some(2006), Some(55)));
1108 assert_eq!(episodes[16], Episode::new(1, 17, 763064, "Hell House", Some(2006), Some(55)));
1109 assert_eq!(episodes[17], Episode::new(1, 18, 763065, "Something Wicked", Some(2006), Some(55)));
1110 assert_eq!(episodes[18], Episode::new(1, 19, 761316, "Provenance", Some(2006), Some(44)));
1111 assert_eq!(episodes[19], Episode::new(1, 20, 767486, "Dead Man\'s Blood", Some(2006), Some(55)));
1112 assert_eq!(episodes[20], Episode::new(1, 21, 772002, "Salvation", Some(2006), Some(60)));
1113 assert_eq!(episodes[21], Episode::new(1, 22, 775325, "Devil\'s Trap", Some(2006), Some(55)));
1114 assert_eq!(episodes[22], Episode::new(2, 1, 829063, "In My Time of Dying", Some(2006), Some(50)));
1115 assert_eq!(episodes[23], Episode::new(2, 2, 829062, "Everybody Loves a Clown", Some(2006), Some(55)));
1116 assert_eq!(episodes[24], Episode::new(2, 3, 835248, "Bloodlust", Some(2006), Some(50)));
1117 assert_eq!(episodes[25], Episode::new(2, 4, 837741, "Children Shouldn\'t Play with Dead Things", Some(2006), Some(42)));
1118 assert_eq!(episodes[26], Episode::new(2, 5, 851031, "Simon Said", Some(2006), Some(48)));
1119 assert_eq!(episodes[27], Episode::new(2, 6, 855641, "No Exit", Some(2006), Some(47)));
1120 assert_eq!(episodes[28], Episode::new(2, 7, 859555, "The Usual Suspects", Some(2006), Some(50)));
1121 assert_eq!(episodes[29], Episode::new(2, 8, 868625, "Crossroad Blues", Some(2006), Some(42)));
1122 assert_eq!(episodes[30], Episode::new(2, 9, 878590, "Croatoan", Some(2006), Some(47)));
1123 assert_eq!(episodes[31], Episode::new(2, 10, 883872, "Hunted", Some(2007), Some(49)));
1124 assert_eq!(episodes[32], Episode::new(2, 11, 890836, "Playthings", Some(2007), Some(49)));
1125 assert_eq!(episodes[33], Episode::new(2, 12, 942145, "Nightshifter", Some(2007), Some(47)));
1126 assert_eq!(episodes[34], Episode::new(2, 13, 921622, "Houses of the Holy", Some(2007), Some(50)));
1127 assert_eq!(episodes[35], Episode::new(2, 14, 940441, "Born Under a Bad Sign", Some(2007), Some(50)));
1128 assert_eq!(episodes[36], Episode::new(2, 15, 939444, "Tall Tales", Some(2007), Some(48)));
1129 assert_eq!(episodes[37], Episode::new(2, 16, 942786, "Roadkill", Some(2007), Some(40)));
1130 assert_eq!(episodes[38], Episode::new(2, 17, 959976, "Heart", Some(2007), Some(47)));
1131 assert_eq!(episodes[39], Episode::new(2, 18, 964436, "Hollywood Babylon", Some(2007), Some(50)));
1132 assert_eq!(episodes[40], Episode::new(2, 19, 1000536, "Folsom Prison Blues", Some(2007), Some(41)));
1133 assert_eq!(episodes[41], Episode::new(2, 20, 987715, "What Is and What Should Never Be", Some(2007), Some(50)));
1134 assert_eq!(episodes[42], Episode::new(2, 21, 987713, "All Hell Breaks Loose: Part 1", Some(2007), Some(50)));
1135 assert_eq!(episodes[43], Episode::new(2, 22, 987714, "All Hell Breaks Loose: Part 2", Some(2007), Some(55)));
1136 assert_eq!(episodes[44], Episode::new(3, 1, 1032129, "The Magnificent Seven", Some(2007), Some(49)));
1137 assert_eq!(episodes[45], Episode::new(3, 2, 1032134, "The Kids Are Alright", Some(2007), Some(43)));
1138 assert_eq!(episodes[46], Episode::new(3, 3, 1107710, "Bad Day at Black Rock", Some(2007), Some(50)));
1139 assert_eq!(episodes[47], Episode::new(3, 4, 1032135, "Sin City", Some(2007), Some(50)));
1140 assert_eq!(episodes[48], Episode::new(3, 5, 1032137, "Bedtime Stories", Some(2007), Some(50)));
1141 assert_eq!(episodes[49], Episode::new(3, 6, 1032138, "Red Sky at Morning", Some(2007), Some(50)));
1142 assert_eq!(episodes[50], Episode::new(3, 7, 1032139, "Fresh Blood", Some(2007), Some(50)));
1143 assert_eq!(episodes[51], Episode::new(3, 8, 1032140, "A Very Supernatural Christmas", Some(2007), Some(42)));
1144 assert_eq!(episodes[52], Episode::new(3, 9, 1032141, "Malleus Maleficarum", Some(2008), Some(40)));
1145 assert_eq!(episodes[53], Episode::new(3, 10, 1032130, "Dream a Little Dream of Me", Some(2008), Some(55)));
1146 assert_eq!(episodes[54], Episode::new(3, 11, 1032132, "Mystery Spot", Some(2008), Some(55)));
1147 assert_eq!(episodes[55], Episode::new(3, 12, 1032131, "Jus in Bello", Some(2008), Some(55)));
1148 assert_eq!(episodes[56], Episode::new(3, 13, 1032133, "Ghostfacers", Some(2008), Some(42)));
1149 assert_eq!(episodes[57], Episode::new(3, 14, 1206073, "Long Distance Call", Some(2008), Some(41)));
1150 assert_eq!(episodes[58], Episode::new(3, 15, 1222593, "Time Is on My Side", Some(2008), Some(50)));
1151 assert_eq!(episodes[59], Episode::new(3, 16, 1222594, "No Rest for the Wicked", Some(2008), Some(50)));
1152 assert_eq!(episodes[60], Episode::new(4, 1, 1222595, "Lazarus Rising", Some(2008), Some(55)));
1153 assert_eq!(episodes[61], Episode::new(4, 2, 1222606, "Are You There, God? It\'s Me, Dean Winchester", Some(2008), Some(50)));
1154 assert_eq!(episodes[62], Episode::new(4, 3, 1222611, "In the Beginning", Some(2008), Some(50)));
1155 assert_eq!(episodes[63], Episode::new(4, 4, 1222612, "Metamorphosis", Some(2008), Some(60)));
1156 assert_eq!(episodes[64], Episode::new(4, 5, 1222610, "Monster Movie", Some(2008), Some(55)));
1157 assert_eq!(episodes[65], Episode::new(4, 6, 1222613, "Yellow Fever", Some(2008), Some(43)));
1158 assert_eq!(episodes[66], Episode::new(4, 7, 1222614, "It\'s the Great Pumpkin, Sam Winchester", Some(2008), Some(42)));
1159 assert_eq!(episodes[67], Episode::new(4, 8, 1222615, "Wishful Thinking", Some(2008), Some(41)));
1160 assert_eq!(episodes[68], Episode::new(4, 9, 1222616, "I Know What You Did Last Summer", Some(2008), Some(43)));
1161 assert_eq!(episodes[69], Episode::new(4, 10, 1222596, "Heaven and Hell", Some(2008), Some(43)));
1162 assert_eq!(episodes[70], Episode::new(4, 11, 1222597, "Family Remains", Some(2009), Some(43)));
1163 assert_eq!(episodes[71], Episode::new(4, 12, 1222598, "Criss Angel Is a Douche Bag", Some(2009), Some(43)));
1164 assert_eq!(episodes[72], Episode::new(4, 13, 1222599, "After School Special", Some(2009), Some(55)));
1165 assert_eq!(episodes[73], Episode::new(4, 14, 1222600, "Sex and Violence", Some(2009), Some(43)));
1166 assert_eq!(episodes[74], Episode::new(4, 15, 1222601, "Death Takes a Holiday", Some(2009), Some(43)));
1167 assert_eq!(episodes[75], Episode::new(4, 16, 1222602, "On the Head of a Pin", Some(2009), Some(43)));
1168 assert_eq!(episodes[76], Episode::new(4, 17, 1222603, "It\'s a Terrible Life", Some(2009), Some(43)));
1169 assert_eq!(episodes[77], Episode::new(4, 18, 1222604, "The Monster at the End of This Book", Some(2009), Some(43)));
1170 assert_eq!(episodes[78], Episode::new(4, 19, 1222605, "Jump the Shark", Some(2009), Some(43)));
1171 assert_eq!(episodes[79], Episode::new(4, 20, 1222607, "The Rapture", Some(2009), Some(40)));
1172 assert_eq!(episodes[80], Episode::new(4, 21, 1222608, "When the Levee Breaks", Some(2009), Some(43)));
1173 assert_eq!(episodes[81], Episode::new(4, 22, 1222609, "Lucifer Rising", Some(2009), Some(43)));
1174 assert_eq!(episodes[82], Episode::new(5, 1, 1461906, "Sympathy for the Devil", Some(2009), Some(60)));
1175 assert_eq!(episodes[83], Episode::new(5, 2, 1464088, "Good God, Y\'All", Some(2009), Some(60)));
1176 assert_eq!(episodes[84], Episode::new(5, 3, 1464089, "Free to Be You and Me", Some(2009), Some(60)));
1177 assert_eq!(episodes[85], Episode::new(5, 4, 1488984, "The End", Some(2009), Some(60)));
1178 assert_eq!(episodes[86], Episode::new(5, 5, 1488983, "Fallen Idols", Some(2009), Some(60)));
1179 assert_eq!(episodes[87], Episode::new(5, 6, 1506849, "I Believe the Children Are Our Future", Some(2009), Some(42)));
1180 assert_eq!(episodes[88], Episode::new(5, 7, 1507550, "The Curious Case of Dean Winchester", Some(2009), Some(42)));
1181 assert_eq!(episodes[89], Episode::new(5, 8, 1511910, "Changing Channels", Some(2009), Some(60)));
1182 assert_eq!(episodes[90], Episode::new(5, 9, 1533530, "The Real Ghostbusters", Some(2009), Some(60)));
1183 assert_eq!(episodes[91], Episode::new(5, 10, 1532469, "Abandon All Hope", Some(2009), Some(60)));
1184 assert_eq!(episodes[92], Episode::new(5, 11, 1543420, "Sam, Interrupted", Some(2010), Some(60)));
1185 assert_eq!(episodes[93], Episode::new(5, 12, 1552579, "Swap Meat", Some(2010), Some(60)));
1186 assert_eq!(episodes[94], Episode::new(5, 13, 1541419, "The Song Remains the Same", Some(2010), Some(60)));
1187 assert_eq!(episodes[95], Episode::new(5, 14, 1588681, "My Bloody Valentine", Some(2010), Some(60)));
1188 assert_eq!(episodes[96], Episode::new(5, 15, 1588682, "Dead Men Don\'t Wear Plaid", Some(2010), Some(60)));
1189 assert_eq!(episodes[97], Episode::new(5, 16, 1588256, "Dark Side of the Moon", Some(2010), Some(60)));
1190 assert_eq!(episodes[98], Episode::new(5, 17, 1588255, "99 Problems", Some(2010), Some(60)));
1191 assert_eq!(episodes[99], Episode::new(5, 18, 1594854, "Point of No Return", Some(2010), Some(60)));
1192 assert_eq!(episodes[100], Episode::new(5, 19, 1598673, "Hammer of the Gods", Some(2010), Some(60)));
1193 assert_eq!(episodes[101], Episode::new(5, 20, 1599805, "The Devil You Know", Some(2010), Some(60)));
1194 assert_eq!(episodes[102], Episode::new(5, 21, 1626754, "Two Minutes to Midnight", Some(2010), Some(60)));
1195 assert_eq!(episodes[103], Episode::new(5, 22, 1626753, "Swan Song", Some(2010), Some(42)));
1196 assert_eq!(episodes[104], Episode::new(6, 1, 1627706, "Exile on Main St.", Some(2010), Some(42)));
1197 assert_eq!(episodes[105], Episode::new(6, 2, 1627717, "Two and a Half Men", Some(2010), Some(41)));
1198 assert_eq!(episodes[106], Episode::new(6, 3, 1627721, "The Third Man", Some(2010), Some(41)));
1199 assert_eq!(episodes[107], Episode::new(6, 4, 1627722, "Weekend at Bobby\'s", Some(2010), Some(40)));
1200 assert_eq!(episodes[108], Episode::new(6, 5, 1627724, "Live Free or Twi-hard", Some(2010), Some(42)));
1201 assert_eq!(episodes[109], Episode::new(6, 6, 1627723, "You Can\'t Handle the Truth", Some(2010), Some(60)));
1202 assert_eq!(episodes[110], Episode::new(6, 7, 1627725, "Family Matters", Some(2010), Some(41)));
1203 assert_eq!(episodes[111], Episode::new(6, 8, 1627726, "All Dogs Go to Heaven", Some(2010), Some(42)));
1204 assert_eq!(episodes[112], Episode::new(6, 9, 1627727, "Clap Your Hands If You Believe", Some(2010), Some(43)));
1205 assert_eq!(episodes[113], Episode::new(6, 10, 1627707, "Caged Heat", Some(2010), Some(60)));
1206 assert_eq!(episodes[114], Episode::new(6, 11, 1627708, "Appointment in Samarra", Some(2010), Some(42)));
1207 assert_eq!(episodes[115], Episode::new(6, 12, 1627709, "Like a Virgin", Some(2011), Some(60)));
1208 assert_eq!(episodes[116], Episode::new(6, 13, 1627710, "Unforgiven", Some(2011), Some(60)));
1209 assert_eq!(episodes[117], Episode::new(6, 14, 1627711, "Mannequin 3: The Reckoning", Some(2011), Some(60)));
1210 assert_eq!(episodes[118], Episode::new(6, 15, 1627712, "The French Mistake", Some(2011), Some(42)));
1211 assert_eq!(episodes[119], Episode::new(6, 16, 1627713, "And Then There Were None", Some(2011), Some(60)));
1212 assert_eq!(episodes[120], Episode::new(6, 17, 1627715, "My Heart Will Go On", Some(2011), Some(60)));
1213 assert_eq!(episodes[121], Episode::new(6, 18, 1627714, "Frontierland", Some(2011), Some(60)));
1214 assert_eq!(episodes[122], Episode::new(6, 19, 1627716, "Mommy Dearest", Some(2011), Some(60)));
1215 assert_eq!(episodes[123], Episode::new(6, 20, 1627718, "The Man Who Would Be King", Some(2011), Some(60)));
1216 assert_eq!(episodes[124], Episode::new(6, 21, 1627719, "Let It Bleed", Some(2011), Some(60)));
1217 assert_eq!(episodes[125], Episode::new(6, 22, 1864037, "The Man Who Knew Too Much", Some(2011), Some(43)));
1218 assert_eq!(episodes[126], Episode::new(7, 1, 1995102, "Meet the New Boss", Some(2011), Some(43)));
1219 assert_eq!(episodes[127], Episode::new(7, 2, 1995113, "Hello, Cruel World", Some(2011), Some(43)));
1220 assert_eq!(episodes[128], Episode::new(7, 3, 1995118, "The Girl Next Door", Some(2011), Some(42)));
1221 assert_eq!(episodes[129], Episode::new(7, 4, 1995119, "Defending Your Life", Some(2011), Some(43)));
1222 assert_eq!(episodes[130], Episode::new(7, 5, 1995120, "Shut Up, Dr. Phil", Some(2011), Some(42)));
1223 assert_eq!(episodes[131], Episode::new(7, 6, 1995121, "Slash Fiction", Some(2011), Some(43)));
1224 assert_eq!(episodes[132], Episode::new(7, 7, 1995122, "The Mentalists", Some(2011), Some(42)));
1225 assert_eq!(episodes[133], Episode::new(7, 8, 1995123, "Season Seven, Time for a Wedding!", Some(2011), Some(40)));
1226 assert_eq!(episodes[134], Episode::new(7, 9, 1995124, "How to Win Friends and Influence Monsters", Some(2011), Some(41)));
1227 assert_eq!(episodes[135], Episode::new(7, 10, 1995103, "Death\'s Door", Some(2011), Some(42)));
1228 assert_eq!(episodes[136], Episode::new(7, 11, 1995104, "Adventures in Babysitting", Some(2012), Some(43)));
1229 assert_eq!(episodes[137], Episode::new(7, 12, 1995105, "Time After Time", Some(2012), Some(43)));
1230 assert_eq!(episodes[138], Episode::new(7, 13, 1995106, "The Slice Girls", Some(2012), Some(42)));
1231 assert_eq!(episodes[139], Episode::new(7, 14, 1995107, "Plucky Pennywhistle\'s Magical Menagerie", Some(2012), Some(42)));
1232 assert_eq!(episodes[140], Episode::new(7, 15, 1995108, "Repo Man", Some(2012), Some(43)));
1233 assert_eq!(episodes[141], Episode::new(7, 16, 1995109, "Out with the Old", Some(2012), Some(43)));
1234 assert_eq!(episodes[142], Episode::new(7, 17, 1995110, "The Born-Again Identity", Some(2012), Some(43)));
1235 assert_eq!(episodes[143], Episode::new(7, 18, 1995111, "Party On, Garth", Some(2012), Some(43)));
1236 assert_eq!(episodes[144], Episode::new(7, 19, 1995112, "Of Grave Importance", Some(2012), Some(42)));
1237 assert_eq!(episodes[145], Episode::new(7, 20, 1995114, "The Girl with the Dungeons and Dragons Tattoo", Some(2012), Some(43)));
1238 assert_eq!(episodes[146], Episode::new(7, 21, 1995115, "Reading is Fundamental", Some(2012), Some(42)));
1239 assert_eq!(episodes[147], Episode::new(7, 22, 1995116, "There Will Be Blood", Some(2012), Some(43)));
1240 assert_eq!(episodes[148], Episode::new(7, 23, 1995117, "Survival of the Fittest", Some(2012), Some(42)));
1241 assert_eq!(episodes[149], Episode::new(8, 1, 2373078, "We Need to Talk About Kevin", Some(2012), Some(42)));
1242 assert_eq!(episodes[150], Episode::new(8, 2, 2404088, "What\'s Up, Tiger Mommy?", Some(2012), Some(42)));
1243 assert_eq!(episodes[151], Episode::new(8, 3, 2293862, "Heartache", Some(2012), Some(40)));
1244 assert_eq!(episodes[152], Episode::new(8, 4, 2323362, "Bitten", Some(2012), Some(42)));
1245 assert_eq!(episodes[153], Episode::new(8, 5, 2388382, "Blood Brother", Some(2012), Some(43)));
1246 assert_eq!(episodes[154], Episode::new(8, 6, 2372414, "Southern Comfort", Some(2012), Some(43)));
1247 assert_eq!(episodes[155], Episode::new(8, 7, 2425360, "A Little Slice of Kevin", Some(2012), Some(43)));
1248 assert_eq!(episodes[156], Episode::new(8, 8, 2426140, "Hunteri Heroici", Some(2012), Some(43)));
1249 assert_eq!(episodes[157], Episode::new(8, 9, 2426138, "Citizen Fang", Some(2012), Some(43)));
1250 assert_eq!(episodes[158], Episode::new(8, 10, 2425378, "Torn and Frayed", Some(2013), Some(43)));
1251 assert_eq!(episodes[159], Episode::new(8, 11, 2498912, "LARP and the Real Girl", Some(2013), Some(43)));
1252 assert_eq!(episodes[160], Episode::new(8, 12, 2506990, "As Time Goes By", Some(2013), Some(43)));
1253 assert_eq!(episodes[161], Episode::new(8, 13, 2578700, "Everybody Hates Hitler", Some(2013), Some(43)));
1254 assert_eq!(episodes[162], Episode::new(8, 14, 2503932, "Trial and Error", Some(2013), Some(43)));
1255 assert_eq!(episodes[163], Episode::new(8, 15, 2578704, "Man\'s Best Friend with Benefits", Some(2013), Some(43)));
1256 assert_eq!(episodes[164], Episode::new(8, 16, 2578708, "Remember the Titans", Some(2013), Some(42)));
1257 assert_eq!(episodes[165], Episode::new(8, 17, 2692382, "Goodbye Stranger", Some(2013), Some(43)));
1258 assert_eq!(episodes[166], Episode::new(8, 18, 2621384, "Freaks and Geeks", Some(2013), Some(42)));
1259 assert_eq!(episodes[167], Episode::new(8, 19, 2699592, "Taxi Driver", Some(2013), Some(43)));
1260 assert_eq!(episodes[168], Episode::new(8, 20, 2699596, "Pac-Man Fever", Some(2013), Some(43)));
1261 assert_eq!(episodes[169], Episode::new(8, 21, 2734858, "The Great Escapist", Some(2013), Some(43)));
1262 assert_eq!(episodes[170], Episode::new(8, 22, 2805138, "Clip Show", Some(2013), Some(43)));
1263 assert_eq!(episodes[171], Episode::new(8, 23, 2805140, "Sacrifice", Some(2013), Some(42)));
1264 assert_eq!(episodes[172], Episode::new(9, 1, 2702688, "I Think I\'m Gonna Like It Here", Some(2013), Some(42)));
1265 assert_eq!(episodes[173], Episode::new(9, 2, 3025548, "Devil May Care", Some(2013), Some(41)));
1266 assert_eq!(episodes[174], Episode::new(9, 3, 3097142, "I\'m No Angel", Some(2013), Some(42)));
1267 assert_eq!(episodes[175], Episode::new(9, 4, 3098422, "Slumber Party", Some(2013), Some(42)));
1268 assert_eq!(episodes[176], Episode::new(9, 5, 3112660, "Dog Dean Afternoon", Some(2013), Some(41)));
1269 assert_eq!(episodes[177], Episode::new(9, 6, 3112656, "Heaven Can\'t Wait", Some(2013), Some(42)));
1270 assert_eq!(episodes[178], Episode::new(9, 7, 3141550, "Bad Boys", Some(2013), Some(42)));
1271 assert_eq!(episodes[179], Episode::new(9, 8, 3158272, "Rock and a Hard Place", Some(2013), Some(42)));
1272 assert_eq!(episodes[180], Episode::new(9, 9, 3158274, "Holy Terror", Some(2013), Some(42)));
1273 assert_eq!(episodes[181], Episode::new(9, 10, 3158276, "Road Trip", Some(2014), Some(43)));
1274 assert_eq!(episodes[182], Episode::new(9, 11, 3158278, "First Born", Some(2014), Some(42)));
1275 assert_eq!(episodes[183], Episode::new(9, 12, 3158284, "Sharp Teeth", Some(2014), Some(42)));
1276 assert_eq!(episodes[184], Episode::new(9, 13, 3158282, "The Purge", Some(2014), Some(42)));
1277 assert_eq!(episodes[185], Episode::new(9, 14, 3182872, "Captives", Some(2014), Some(42)));
1278 assert_eq!(episodes[186], Episode::new(9, 15, 3182874, "#thinman", Some(2014), Some(42)));
1279 assert_eq!(episodes[187], Episode::new(9, 16, 3182880, "Blade Runners", Some(2014), Some(42)));
1280 assert_eq!(episodes[188], Episode::new(9, 17, 3182878, "Mother\'s Little Helper", Some(2014), Some(42)));
1281 assert_eq!(episodes[189], Episode::new(9, 18, 3182886, "Meta Fiction", Some(2014), Some(42)));
1282 assert_eq!(episodes[190], Episode::new(9, 19, 3182884, "Alex Annie Alexis Ann", Some(2014), Some(42)));
1283 assert_eq!(episodes[191], Episode::new(9, 20, 3182892, "Bloodlines", Some(2014), Some(42)));
1284 assert_eq!(episodes[192], Episode::new(9, 21, 3182890, "King of the Damned", Some(2014), Some(42)));
1285 assert_eq!(episodes[193], Episode::new(9, 22, 3182896, "Stairway to Heaven", Some(2014), Some(42)));
1286 assert_eq!(episodes[194], Episode::new(9, 23, 3182894, "Do You Believe in Miracles", Some(2014), Some(42)));
1287 assert_eq!(episodes[195], Episode::new(10, 1, 3532628, "Black", Some(2014), Some(43)));
1288 assert_eq!(episodes[196], Episode::new(10, 2, 3831300, "Reichenbach", Some(2014), Some(43)));
1289 assert_eq!(episodes[197], Episode::new(10, 3, 3831310, "Soul Survivor", Some(2014), Some(43)));
1290 assert_eq!(episodes[198], Episode::new(10, 4, 3845906, "Paper Moon", Some(2014), Some(41)));
1291 assert_eq!(episodes[199], Episode::new(10, 5, 3845910, "Fan Fiction", Some(2014), Some(43)));
1292 assert_eq!(episodes[200], Episode::new(10, 6, 3860118, "Ask Jeeves", Some(2014), Some(43)));
1293 assert_eq!(episodes[201], Episode::new(10, 7, 3860122, "Girls, Girls, Girls", Some(2014), Some(42)));
1294 assert_eq!(episodes[202], Episode::new(10, 8, 3997488, "Hibbing 911", Some(2014), Some(42)));
1295 assert_eq!(episodes[203], Episode::new(10, 9, 3997492, "The Things We Left Behind", Some(2014), Some(42)));
1296 assert_eq!(episodes[204], Episode::new(10, 10, 3997490, "The Hunter Games", Some(2015), Some(43)));
1297 assert_eq!(episodes[205], Episode::new(10, 11, 4274892, "There\'s No Place Like Home", Some(2015), Some(43)));
1298 assert_eq!(episodes[206], Episode::new(10, 12, 4344320, "About a Boy", Some(2015), Some(41)));
1299 assert_eq!(episodes[207], Episode::new(10, 13, 4344332, "Halt & Catch Fire", Some(2015), Some(42)));
1300 assert_eq!(episodes[208], Episode::new(10, 14, 4292452, "The Executioner\'s Song", Some(2015), Some(42)));
1301 assert_eq!(episodes[209], Episode::new(10, 15, 4333228, "The Things They Carried", Some(2015), Some(42)));
1302 assert_eq!(episodes[210], Episode::new(10, 16, 4427940, "Paint It Black", Some(2015), Some(42)));
1303 assert_eq!(episodes[211], Episode::new(10, 17, 4443976, "Inside Man", Some(2015), Some(42)));
1304 assert_eq!(episodes[212], Episode::new(10, 18, 4489472, "Book of the Damned", Some(2015), Some(43)));
1305 assert_eq!(episodes[213], Episode::new(10, 19, 4489474, "The Werther Project", Some(2015), Some(43)));
1306 assert_eq!(episodes[214], Episode::new(10, 20, 4489476, "Angel Heart", Some(2015), Some(42)));
1307 assert_eq!(episodes[215], Episode::new(10, 21, 4489482, "Dark Dynasty", Some(2015), Some(42)));
1308 assert_eq!(episodes[216], Episode::new(10, 22, 4489484, "The Prisoner", Some(2015), Some(42)));
1309 assert_eq!(episodes[217], Episode::new(10, 23, 4489486, "Brother\'s Keeper", Some(2015), Some(42)));
1310 assert_eq!(episodes[218], Episode::new(11, 1, 4346788, "Out of the Darkness, Into the Fire", Some(2015), Some(43)));
1311 assert_eq!(episodes[219], Episode::new(11, 2, 4857906, "Form and Void", Some(2015), Some(43)));
1312 assert_eq!(episodes[220], Episode::new(11, 3, 4857918, "The Bad Seed", Some(2015), Some(42)));
1313 assert_eq!(episodes[221], Episode::new(11, 4, 4995876, "Baby", Some(2015), Some(41)));
1314 assert_eq!(episodes[222], Episode::new(11, 5, 5056820, "Thin Lizzie", Some(2015), Some(42)));
1315 assert_eq!(episodes[223], Episode::new(11, 6, 5056822, "Our Little World", Some(2015), Some(42)));
1316 assert_eq!(episodes[224], Episode::new(11, 7, 5056828, "Plush", Some(2015), Some(41)));
1317 assert_eq!(episodes[225], Episode::new(11, 8, 5056832, "Just My Imagination", Some(2015), Some(42)));
1318 assert_eq!(episodes[226], Episode::new(11, 9, 5056836, "O Brother, Where Art Thou?", Some(2015), Some(42)));
1319 assert_eq!(episodes[227], Episode::new(11, 10, 5087242, "The Devil in the Details", Some(2016), Some(42)));
1320 assert_eq!(episodes[228], Episode::new(11, 11, 5239780, "Into the Mystic", Some(2016), Some(42)));
1321 assert_eq!(episodes[229], Episode::new(11, 12, 5265450, "Don\'t You Forget About Me", Some(2016), Some(42)));
1322 assert_eq!(episodes[230], Episode::new(11, 13, 5352054, "Love Hurts", Some(2016), Some(41)));
1323 assert_eq!(episodes[231], Episode::new(11, 14, 5390282, "The Vessel", Some(2016), Some(42)));
1324 assert_eq!(episodes[232], Episode::new(11, 15, 5432122, "Beyond the Mat", Some(2016), Some(42)));
1325 assert_eq!(episodes[233], Episode::new(11, 16, 5432150, "Safe House", Some(2016), Some(42)));
1326 assert_eq!(episodes[234], Episode::new(11, 17, 5432156, "Red Meat", Some(2016), Some(41)));
1327 assert_eq!(episodes[235], Episode::new(11, 18, 5539106, "Hell\'s Angel", Some(2016), Some(42)));
1328 assert_eq!(episodes[236], Episode::new(11, 19, 5538526, "The Chitters", Some(2016), Some(41)));
1329 assert_eq!(episodes[237], Episode::new(11, 20, 5547512, "Don\'t Call Me Shurley", Some(2016), Some(42)));
1330 assert_eq!(episodes[238], Episode::new(11, 21, 5547522, "All in the Family", Some(2016), Some(41)));
1331 assert_eq!(episodes[239], Episode::new(11, 22, 5547530, "We Happy Few", Some(2016), Some(41)));
1332 assert_eq!(episodes[240], Episode::new(11, 23, 5547538, "Alpha and Omega", Some(2016), Some(42)));
1333 assert_eq!(episodes[241], Episode::new(12, 1, 5540416, "Keep Calm and Carry On", Some(2016), Some(41)));
1334 assert_eq!(episodes[242], Episode::new(12, 2, 5669110, "Mamma Mia", Some(2016), Some(42)));
1335 assert_eq!(episodes[243], Episode::new(12, 3, 5669112, "The Foundry", Some(2016), Some(42)));
1336 assert_eq!(episodes[244], Episode::new(12, 4, 5669114, "American Nightmare", Some(2016), Some(42)));
1337 assert_eq!(episodes[245], Episode::new(12, 5, 5669118, "The One You\'ve Been Waiting For", Some(2016), Some(41)));
1338 assert_eq!(episodes[246], Episode::new(12, 6, 5669116, "Celebrating the Life of Asa Fox", Some(2016), Some(42)));
1339 assert_eq!(episodes[247], Episode::new(12, 7, 5669120, "Rock Never Dies", Some(2016), Some(42)));
1340 assert_eq!(episodes[248], Episode::new(12, 8, 5669122, "LOTUS", Some(2016), Some(41)));
1341 assert_eq!(episodes[249], Episode::new(12, 9, 5669126, "First Blood", Some(2017), Some(41)));
1342 assert_eq!(episodes[250], Episode::new(12, 10, 5669124, "Lily Sunder Has Some Regrets", Some(2017), Some(42)));
1343 assert_eq!(episodes[251], Episode::new(12, 11, 5669128, "Regarding Dean", Some(2017), Some(42)));
1344 assert_eq!(episodes[252], Episode::new(12, 12, 5669130, "Stuck in the Middle (With You)", Some(2017), Some(42)));
1345 assert_eq!(episodes[253], Episode::new(12, 13, 5669132, "Family Feud", Some(2017), Some(42)));
1346 assert_eq!(episodes[254], Episode::new(12, 14, 5669134, "The Raid", Some(2017), Some(41)));
1347 assert_eq!(episodes[255], Episode::new(12, 15, 5669138, "Somewhere Between Heaven and Hell", Some(2017), Some(41)));
1348 assert_eq!(episodes[256], Episode::new(12, 16, 5669136, "Ladies Drink Free", Some(2017), Some(42)));
1349 assert_eq!(episodes[257], Episode::new(12, 17, 5669140, "The British Invasion", Some(2017), Some(42)));
1350 assert_eq!(episodes[258], Episode::new(12, 18, 5669142, "The Memory Remains", Some(2017), Some(42)));
1351 assert_eq!(episodes[259], Episode::new(12, 19, 5669144, "The Future", Some(2017), Some(42)));
1352 assert_eq!(episodes[260], Episode::new(12, 20, 5669146, "Twigs & Twine & Tasha Banes", Some(2017), Some(42)));
1353 assert_eq!(episodes[261], Episode::new(12, 21, 5669148, "There\'s Something About Mary", Some(2017), Some(42)));
1354 assert_eq!(episodes[262], Episode::new(12, 22, 5669150, "Who We Are", Some(2017), Some(42)));
1355 assert_eq!(episodes[263], Episode::new(12, 23, 5669152, "All Along the Watchtower", Some(2017), Some(42)));
1356 assert_eq!(episodes[264], Episode::new(13, 1, 6403432, "Lost and Found", Some(2017), Some(41)));
1357 assert_eq!(episodes[265], Episode::new(13, 2, 6746126, "The Rising Son", Some(2017), Some(42)));
1358 assert_eq!(episodes[266], Episode::new(13, 3, 6746128, "Patience", Some(2017), Some(42)));
1359 assert_eq!(episodes[267], Episode::new(13, 4, 6746132, "The Big Empty", Some(2017), Some(42)));
1360 assert_eq!(episodes[268], Episode::new(13, 5, 6746134, "Advanced Thanatology", Some(2017), Some(41)));
1361 assert_eq!(episodes[269], Episode::new(13, 6, 6746140, "Tombstone", Some(2017), Some(41)));
1362 assert_eq!(episodes[270], Episode::new(13, 7, 6746146, "War of the Worlds", Some(2017), Some(42)));
1363 assert_eq!(episodes[271], Episode::new(13, 8, 6746148, "The Scorpion and the Frog", Some(2017), Some(41)));
1364 assert_eq!(episodes[272], Episode::new(13, 9, 6746160, "The Bad Place", Some(2017), Some(41)));
1365 assert_eq!(episodes[273], Episode::new(13, 10, 6746156, "Wayward Sisters", Some(2018), Some(42)));
1366 assert_eq!(episodes[274], Episode::new(13, 11, 6746164, "Breakdown", Some(2018), Some(41)));
1367 assert_eq!(episodes[275], Episode::new(13, 12, 6746170, "Various & Sundry Villains", Some(2018), Some(42)));
1368 assert_eq!(episodes[276], Episode::new(13, 13, 6746168, "Devil\'s Bargain", Some(2018), Some(41)));
1369 assert_eq!(episodes[277], Episode::new(13, 14, 6746174, "Good Intentions", Some(2018), Some(42)));
1370 assert_eq!(episodes[278], Episode::new(13, 15, 6746182, "A Most Holy Man", Some(2018), Some(42)));
1371 assert_eq!(episodes[279], Episode::new(13, 16, 6746190, "ScoobyNatural", Some(2018), Some(42)));
1372 assert_eq!(episodes[280], Episode::new(13, 17, 6746194, "The Thing", Some(2018), Some(42)));
1373 assert_eq!(episodes[281], Episode::new(13, 18, 6746200, "Bring \'em Back Alive", Some(2018), Some(42)));
1374 assert_eq!(episodes[282], Episode::new(13, 19, 6746208, "Funeralia", Some(2018), Some(42)));
1375 assert_eq!(episodes[283], Episode::new(13, 20, 6746210, "Unfinished Business", Some(2018), Some(42)));
1376 assert_eq!(episodes[284], Episode::new(13, 21, 6746216, "Beat the Devil", Some(2018), Some(42)));
1377 assert_eq!(episodes[285], Episode::new(13, 22, 6746226, "Exodus", Some(2018), Some(41)));
1378 assert_eq!(episodes[286], Episode::new(13, 23, 6746224, "Let the Good Times Roll", Some(2018), Some(42)));
1379 assert_eq!(episodes[287], Episode::new(14, 1, 8226756, "Stranger in a Strange Land", Some(2018), Some(41)));
1380 assert_eq!(episodes[288], Episode::new(14, 2, 8408494, "Gods and Monsters", Some(2018), Some(41)));
1381 assert_eq!(episodes[289], Episode::new(14, 3, 8408498, "The Scar", Some(2018), Some(42)));
1382 assert_eq!(episodes[290], Episode::new(14, 4, 8408504, "Mint Condition", Some(2018), Some(41)));
1383 assert_eq!(episodes[291], Episode::new(14, 5, 8408508, "Nightmare Logic", Some(2018), Some(42)));
1384 assert_eq!(episodes[292], Episode::new(14, 6, 8408506, "Optimism", Some(2018), Some(41)));
1385 assert_eq!(episodes[293], Episode::new(14, 7, 8408502, "Unhuman Nature", Some(2018), Some(41)));
1386 assert_eq!(episodes[294], Episode::new(14, 8, 8408500, "Byzantium", Some(2018), Some(42)));
1387 assert_eq!(episodes[295], Episode::new(14, 9, 8408512, "The Spear", Some(2018), Some(41)));
1388 assert_eq!(episodes[296], Episode::new(14, 10, 8408510, "Nihilism", Some(2019), Some(42)));
1389 assert_eq!(episodes[297], Episode::new(14, 11, 8962434, "Damaged Goods", Some(2019), Some(42)));
1390 assert_eq!(episodes[298], Episode::new(14, 12, 8962440, "Prophet and Loss", Some(2019), Some(42)));
1391 assert_eq!(episodes[299], Episode::new(14, 13, 8962446, "Lebanon", Some(2019), Some(42)));
1392 assert_eq!(episodes[300], Episode::new(14, 14, 9271138, "Ouroboros", Some(2019), Some(42)));
1393 assert_eq!(episodes[301], Episode::new(14, 15, 9271140, "Peace of Mind", Some(2019), Some(42)));
1394 assert_eq!(episodes[302], Episode::new(14, 16, 9271142, "Don\'t Go in the Woods", Some(2019), Some(41)));
1395 assert_eq!(episodes[303], Episode::new(14, 17, 9271146, "Game Night", Some(2019), Some(42)));
1396 assert_eq!(episodes[304], Episode::new(14, 18, 9271148, "Absence", Some(2019), Some(42)));
1397 assert_eq!(episodes[305], Episode::new(14, 19, 9271150, "Jack in the Box", Some(2019), Some(42)));
1398 assert_eq!(episodes[306], Episode::new(14, 20, 9271152, "Moriah", Some(2019), Some(41)));
1399 assert_eq!(episodes[307], Episode::new(15, 1, 9695548, "Back and to the Future", Some(2019), Some(41)));
1400 assert_eq!(episodes[308], Episode::new(15, 2, 10067710, "Raising Hell", Some(2019), Some(42)));
1401 assert_eq!(episodes[309], Episode::new(15, 3, 10250608, "The Rupture", Some(2019), Some(41)));
1402 assert_eq!(episodes[310], Episode::new(15, 4, 10067734, "Atomic Monsters", Some(2019), Some(42)));
1403 assert_eq!(episodes[311], Episode::new(15, 5, 10067742, "Proverbs 17:3", Some(2019), Some(42)));
1404 assert_eq!(episodes[312], Episode::new(15, 6, 10067744, "Golden Time", Some(2019), Some(42)));
1405 assert_eq!(episodes[313], Episode::new(15, 7, 10085356, "Last Call", Some(2019), Some(41)));
1406 assert_eq!(episodes[314], Episode::new(15, 8, 10717880, "Our Father, Who Aren\'t in Heaven", Some(2019), Some(42)));
1407 assert_eq!(episodes[315], Episode::new(15, 9, 10717886, "The Trap", Some(2020), Some(42)));
1408 assert_eq!(episodes[316], Episode::new(15, 10, 10717892, "The Heroes\' Journey", Some(2020), Some(42)));
1409 assert_eq!(episodes[317], Episode::new(15, 11, 10717964, "The Gamblers", Some(2020), Some(42)));
1410 assert_eq!(episodes[318], Episode::new(15, 12, 10717906, "Galaxy Brain", Some(2020), Some(42)));
1411 assert_eq!(episodes[319], Episode::new(15, 13, 10717912, "Destiny\'s Child", Some(2020), Some(42)));
1412 assert_eq!(episodes[320], Episode::new(15, 14, 10717914, "Last Holiday", Some(2020), Some(40)));
1413 assert_eq!(episodes[321], Episode::new(15, 15, 10717918, "Gimme Shelter", Some(2020), Some(41)));
1414 assert_eq!(episodes[322], Episode::new(15, 16, 10717922, "Drag Me Away (From You)", Some(2020), Some(42)));
1415 assert_eq!(episodes[323], Episode::new(15, 17, 10717928, "Unity", Some(2020), Some(42)));
1416 assert_eq!(episodes[324], Episode::new(15, 18, 10717930, "Despair", Some(2020), Some(41)));
1417 assert_eq!(episodes[325], Episode::new(15, 19, 10717932, "Inherit the Earth", Some(2020), Some(42)));
1418 assert_eq!(episodes[326], Episode::new(15, 20, 10073984, "Carry On", Some(2020), Some(42)));
1419 }
1421 } #[tokio::test]
1424 async fn shows_single() {
1425 let (_dir, mut client) = client().await;
1426
1427 for i in 0..2 {
1428 println!(">>> {}", i);
1429 let mut show = client.get_show(903747).await.unwrap();
1430 show.episodes.sort_unstable();
1431 assert_eq!(show.imdb_id, 903747);
1432 assert_eq!(show.title, "Breaking Bad");
1433 assert!(!show.is_adult);
1434 assert_eq!(show.start_year, 2008);
1435 assert_eq!(show.end_year, Some(2013));
1436 assert_eq!(show.runtime_minutes, Some(45));
1437 assert_eq!(show.genres, *[Crime, Drama, Thriller].as_ref());
1438 assert_eq!(show.episodes.len(), 62); assert_eq!(show.episodes[0], Episode::new(1, 1, 959621, "Pilot", Some(2008), Some(58)));
1440 assert_eq!(show.episodes[1], Episode::new(1, 2, 1054724, "Cat\'s in the Bag...", Some(2008), Some(48)));
1441 assert_eq!(show.episodes[2], Episode::new(1, 3, 1054725, "...And the Bag\'s in the River", Some(2008), Some(48)));
1442 assert_eq!(show.episodes[3], Episode::new(1, 4, 1054726, "Cancer Man", Some(2008), Some(48)));
1443 assert_eq!(show.episodes[4], Episode::new(1, 5, 1054727, "Gray Matter", Some(2008), Some(48)));
1444 assert_eq!(show.episodes[5], Episode::new(1, 6, 1054728, "Crazy Handful of Nothin\'", Some(2008), Some(48)));
1445 assert_eq!(show.episodes[6], Episode::new(1, 7, 1054729, "A No-Rough-Stuff-Type Deal", Some(2008), Some(48)));
1446 assert_eq!(show.episodes[7], Episode::new(2, 1, 1232244, "Seven Thirty-Seven", Some(2009), Some(47)));
1447 assert_eq!(show.episodes[8], Episode::new(2, 2, 1232249, "Grilled", Some(2009), Some(48)));
1448 assert_eq!(show.episodes[9], Episode::new(2, 3, 1232250, "Bit by a Dead Bee", Some(2009), Some(47)));
1449 assert_eq!(show.episodes[10], Episode::new(2, 4, 1232251, "Down", Some(2009), Some(47)));
1450 assert_eq!(show.episodes[11], Episode::new(2, 5, 1232252, "Breakage", Some(2009), Some(47)));
1451 assert_eq!(show.episodes[12], Episode::new(2, 6, 1232253, "Peekaboo", Some(2009), Some(47)));
1452 assert_eq!(show.episodes[13], Episode::new(2, 7, 1232254, "Negro y Azul", Some(2009), Some(47)));
1453 assert_eq!(show.episodes[14], Episode::new(2, 8, 1232255, "Better Call Saul", Some(2009), Some(47)));
1454 assert_eq!(show.episodes[15], Episode::new(2, 9, 1232256, "4 Days Out", Some(2009), Some(47)));
1455 assert_eq!(show.episodes[16], Episode::new(2, 10, 1232245, "Over", Some(2009), Some(47)));
1456 assert_eq!(show.episodes[17], Episode::new(2, 11, 1232246, "Mandala", Some(2009), Some(47)));
1457 assert_eq!(show.episodes[18], Episode::new(2, 12, 1232247, "Phoenix", Some(2009), Some(47)));
1458 assert_eq!(show.episodes[19], Episode::new(2, 13, 1232248, "ABQ", Some(2009), Some(48)));
1459 assert_eq!(show.episodes[20], Episode::new(3, 1, 1528116, "No Más", Some(2010), Some(47)));
1460 assert_eq!(show.episodes[21], Episode::new(3, 2, 1615186, "Caballo sin Nombre", Some(2010), Some(47)));
1461 assert_eq!(show.episodes[22], Episode::new(3, 3, 1615187, "I.F.T.", Some(2010), Some(47)));
1462 assert_eq!(show.episodes[23], Episode::new(3, 4, 1615554, "Green Light", Some(2010), Some(47)));
1463 assert_eq!(show.episodes[24], Episode::new(3, 5, 1615555, "Más", Some(2010), Some(47)));
1464 assert_eq!(show.episodes[25], Episode::new(3, 6, 1615556, "Sunset", Some(2010), Some(47)));
1465 assert_eq!(show.episodes[26], Episode::new(3, 7, 1615944, "One Minute", Some(2010), Some(47)));
1466 assert_eq!(show.episodes[27], Episode::new(3, 8, 1615557, "I See You", Some(2010), Some(47)));
1467 assert_eq!(show.episodes[28], Episode::new(3, 9, 1615558, "Kafkaesque", Some(2010), Some(47)));
1468 assert_eq!(show.episodes[29], Episode::new(3, 10, 1615550, "Fly", Some(2010), Some(47)));
1469 assert_eq!(show.episodes[30], Episode::new(3, 11, 1615551, "Abiquiu", Some(2010), Some(47)));
1470 assert_eq!(show.episodes[31], Episode::new(3, 12, 1615552, "Half Measures", Some(2010), Some(47)));
1471 assert_eq!(show.episodes[32], Episode::new(3, 13, 1615553, "Full Measure", Some(2010), Some(47)));
1472 assert_eq!(show.episodes[33], Episode::new(4, 1, 1683084, "Box Cutter", Some(2011), Some(47)));
1473 assert_eq!(show.episodes[34], Episode::new(4, 2, 1683089, "Thirty-Eight Snub", Some(2011), Some(46)));
1474 assert_eq!(show.episodes[35], Episode::new(4, 3, 1683090, "Open House", Some(2011), Some(46)));
1475 assert_eq!(show.episodes[36], Episode::new(4, 4, 1683091, "Bullet Points", Some(2011), Some(45)));
1476 assert_eq!(show.episodes[37], Episode::new(4, 5, 1683092, "Shotgun", Some(2011), Some(47)));
1477 assert_eq!(show.episodes[38], Episode::new(4, 6, 1683093, "Cornered", Some(2011), Some(47)));
1478 assert_eq!(show.episodes[39], Episode::new(4, 7, 1683094, "Problem Dog", Some(2011), Some(47)));
1479 assert_eq!(show.episodes[40], Episode::new(4, 8, 1683095, "Hermanos", Some(2011), Some(47)));
1480 assert_eq!(show.episodes[41], Episode::new(4, 9, 1683096, "Bug", Some(2011), Some(47)));
1481 assert_eq!(show.episodes[42], Episode::new(4, 10, 1683085, "Salud", Some(2011), Some(47)));
1482 assert_eq!(show.episodes[43], Episode::new(4, 11, 1683086, "Crawl Space", Some(2011), Some(47)));
1483 assert_eq!(show.episodes[44], Episode::new(4, 12, 1683087, "End Times", Some(2011), Some(46)));
1484 assert_eq!(show.episodes[45], Episode::new(4, 13, 1683088, "Face Off", Some(2011), Some(50)));
1485 assert_eq!(show.episodes[46], Episode::new(5, 1, 2081647, "Live Free or Die", Some(2012), Some(43)));
1486 assert_eq!(show.episodes[47], Episode::new(5, 2, 2301457, "Madrigal", Some(2012), Some(47)));
1487 assert_eq!(show.episodes[48], Episode::new(5, 3, 2301459, "Hazard Pay", Some(2012), Some(47)));
1488 assert_eq!(show.episodes[49], Episode::new(5, 4, 2301461, "Fifty-One", Some(2012), Some(47)));
1489 assert_eq!(show.episodes[50], Episode::new(5, 5, 2301463, "Dead Freight", Some(2012), Some(48)));
1490 assert_eq!(show.episodes[51], Episode::new(5, 6, 2301465, "Buyout", Some(2012), Some(47)));
1491 assert_eq!(show.episodes[52], Episode::new(5, 7, 2301467, "Say My Name", Some(2012), Some(47)));
1492 assert_eq!(show.episodes[53], Episode::new(5, 8, 2301469, "Gliding Over All", Some(2012), Some(47)));
1493 assert_eq!(show.episodes[54], Episode::new(5, 9, 2301471, "Blood Money", Some(2013), Some(47)));
1494 assert_eq!(show.episodes[55], Episode::new(5, 10, 2301443, "Buried", Some(2013), Some(47)));
1495 assert_eq!(show.episodes[56], Episode::new(5, 11, 2301445, "Confessions", Some(2013), Some(47)));
1496 assert_eq!(show.episodes[57], Episode::new(5, 12, 2301447, "Rabid Dog", Some(2013), Some(47)));
1497 assert_eq!(show.episodes[58], Episode::new(5, 13, 2301449, "To\'hajiilee", Some(2013), Some(46)));
1498 assert_eq!(show.episodes[59], Episode::new(5, 14, 2301451, "Ozymandias", Some(2013), Some(47)));
1499 assert_eq!(show.episodes[60], Episode::new(5, 15, 2301453, "Granite State", Some(2013), Some(53)));
1500 assert_eq!(show.episodes[61], Episode::new(5, 16, 2301455, "Felina", Some(2013), Some(55)));
1501 let mut show = client.get_show(417373).await.unwrap();
1504 show.episodes.sort_unstable();
1505 assert_eq!(show.imdb_id, 417373);
1506 assert_eq!(show.title, "The Venture Bros.");
1507 assert!(!show.is_adult);
1508 assert_eq!(show.start_year, 2003);
1509 assert_eq!(show.end_year, Some(2018));
1510 assert_eq!(show.runtime_minutes, Some(22));
1511 assert_eq!(show.genres, *[Action, Adventure, Animation].as_ref());
1512 assert_eq!(show.episodes.len(), 86); assert_eq!(show.episodes[0], Episode::new(1, 0, 739360, "The Terrible Secret of Turtle Bay", Some(2003), Some(22)));
1514 assert_eq!(show.episodes[1], Episode::new(1, 1, 739350, "Dia de los Dangerous", Some(2004), Some(22)));
1515 assert_eq!(show.episodes[2], Episode::new(1, 2, 739349, "Careers in Science", Some(2004), Some(22)));
1516 assert_eq!(show.episodes[3], Episode::new(1, 3, 739353, "Home Insecurity", Some(2004), Some(22)));
1517 assert_eq!(show.episodes[4], Episode::new(1, 4, 739359, "The Incredible Mr. Brisby", Some(2004), Some(22)));
1518 assert_eq!(show.episodes[5], Episode::new(1, 5, 739351, "Eeney, Meeney, Miney... Magic!", Some(2004), Some(22)));
1519 assert_eq!(show.episodes[6], Episode::new(1, 6, 739352, "Ghosts of the Sargasso", Some(2004), Some(22)));
1520 assert_eq!(show.episodes[7], Episode::new(1, 7, 739354, "Ice Station Impossible", Some(2004), Some(22)));
1521 assert_eq!(show.episodes[8], Episode::new(1, 8, 739355, "Mid-Life Chrysalis", Some(2004), Some(22)));
1522 assert_eq!(show.episodes[9], Episode::new(1, 9, 739348, "Are You There God, It\'s Me, Dean", Some(2004), Some(22)));
1523 assert_eq!(show.episodes[10], Episode::new(1, 10, 739358, "Tag-Sale: You\'re It!", Some(2004), Some(22)));
1524 assert_eq!(show.episodes[11], Episode::new(1, 11, 739356, "Past Tense", Some(2004), Some(22)));
1525 assert_eq!(show.episodes[12], Episode::new(1, 12, 739361, "The Trial of the Monarch", Some(2004), Some(22)));
1526 assert_eq!(show.episodes[13], Episode::new(1, 13, 739357, "Return to Spider-Skull Island", Some(2004), Some(22)));
1527 assert_eq!(show.episodes[14], Episode::new(1, 14, 739347, "A Very Venture Christmas", Some(2004), Some(11)));
1528 assert_eq!(show.episodes[15], Episode::new(2, 1, 822288, "Powerless in the Face of Death", Some(2006), Some(22)));
1529 assert_eq!(show.episodes[16], Episode::new(2, 2, 822287, "Hate Floats", Some(2006), Some(22)));
1530 assert_eq!(show.episodes[17], Episode::new(2, 3, 822286, "Assassinanny 911", Some(2006), Some(22)));
1531 assert_eq!(show.episodes[18], Episode::new(2, 4, 825198, "Escape to the House of Mummies Part II", Some(2006), Some(22)));
1532 assert_eq!(show.episodes[19], Episode::new(2, 5, 833403, "Twenty Years to Midnight", Some(2006), Some(22)));
1533 assert_eq!(show.episodes[20], Episode::new(2, 6, 843050, "Victor. Echo. November.", Some(2006), Some(22)));
1534 assert_eq!(show.episodes[21], Episode::new(2, 7, 839676, "Love-Bheits", Some(2006), Some(22)));
1535 assert_eq!(show.episodes[22], Episode::new(2, 8, 845936, "Fallen Arches", Some(2006), Some(22)));
1536 assert_eq!(show.episodes[23], Episode::new(2, 9, 847451, "Guess Who\'s Coming to State Dinner?", Some(2006), Some(22)));
1537 assert_eq!(show.episodes[24], Episode::new(2, 10, 847452, "I Know Why the Caged Bird Kills", Some(2006), Some(22)));
1538 assert_eq!(show.episodes[25], Episode::new(2, 11, 847454, "¡Viva los muertos!", Some(2006), Some(22)));
1539 assert_eq!(show.episodes[26], Episode::new(2, 12, 847453, "Showdown at Cremation Creek: Part 1", Some(2006), Some(22)));
1540 assert_eq!(show.episodes[27], Episode::new(2, 13, 878792, "Showdown at Cremation Creek: Part 2", Some(2006), Some(22)));
1541 assert_eq!(show.episodes[28], Episode::new(3, 1, 1238620, "Shadowman 9: In the Cradle of Destiny", Some(2008), Some(24)));
1542 assert_eq!(show.episodes[29], Episode::new(3, 2, 1238621, "The Doctor Is Sin", Some(2008), Some(23)));
1543 assert_eq!(show.episodes[30], Episode::new(3, 3, 1238613, "The Invisible Hand of Fate", Some(2008), Some(23)));
1544 assert_eq!(show.episodes[31], Episode::new(3, 4, 1238614, "Home Is Where the Hate Is", Some(2008), Some(23)));
1545 assert_eq!(show.episodes[32], Episode::new(3, 5, 1238615, "The Buddy System", Some(2008), Some(23)));
1546 assert_eq!(show.episodes[33], Episode::new(3, 6, 1238616, "Dr. Quymn, Medicine Woman", Some(2008), Some(23)));
1547 assert_eq!(show.episodes[34], Episode::new(3, 7, 1238617, "What Goes Down Must Come Up", Some(2008), Some(23)));
1548 assert_eq!(show.episodes[35], Episode::new(3, 8, 1238618, "Tears of a Sea Cow", Some(2008), Some(23)));
1549 assert_eq!(show.episodes[36], Episode::new(3, 9, 1238619, "Now Museum - Now You Don\'t!", Some(2008), Some(23)));
1550 assert_eq!(show.episodes[37], Episode::new(3, 10, 1238609, "The Lepidopterists", Some(2008), Some(21)));
1551 assert_eq!(show.episodes[38], Episode::new(3, 11, 1238610, "ORB", Some(2008), Some(23)));
1552 assert_eq!(show.episodes[39], Episode::new(3, 12, 1238611, "The Family That Slays Together, Stays Together: Part 1", Some(2008), Some(24)));
1553 assert_eq!(show.episodes[40], Episode::new(3, 13, 1238612, "The Family That Slays Together, Stays Together: Part 2", Some(2008), Some(24)));
1554 assert_eq!(show.episodes[41], Episode::new(4, 1, 1531880, "Blood of the Father, Heart of Steel", Some(2009), Some(24)));
1555 assert_eq!(show.episodes[42], Episode::new(4, 2, 1539264, "Handsome Ransom", Some(2009), Some(23)));
1556 assert_eq!(show.episodes[43], Episode::new(4, 3, 1541106, "Perchance to Dean", Some(2009), Some(23)));
1557 assert_eq!(show.episodes[44], Episode::new(4, 4, 1560460, "Return to Malice", Some(2009), Some(23)));
1558 assert_eq!(show.episodes[45], Episode::new(4, 5, 1550277, "The Revenge Society", Some(2009), Some(23)));
1559 assert_eq!(show.episodes[46], Episode::new(4, 6, 1554061, "Self-Medication", Some(2009), Some(23)));
1560 assert_eq!(show.episodes[47], Episode::new(4, 7, 1568069, "The Better Man", Some(2009), Some(23)));
1561 assert_eq!(show.episodes[48], Episode::new(4, 8, 1573782, "Pinstripes and Poltergeists", Some(2009), Some(23)));
1562 assert_eq!(show.episodes[49], Episode::new(4, 9, 1589919, "The Diving Bell vs. the Butterglider", Some(2010), Some(23)));
1563 assert_eq!(show.episodes[50], Episode::new(4, 10, 1730658, "Pomp and Circuitry", Some(2010), Some(23)));
1564 assert_eq!(show.episodes[51], Episode::new(4, 11, 1738335, "Every Which Way But Zeus", Some(2010), Some(23)));
1565 assert_eq!(show.episodes[52], Episode::new(4, 12, 1738336, "Everybody Comes to Hank\'s", Some(2010), Some(22)));
1566 assert_eq!(show.episodes[53], Episode::new(4, 13, 1742609, "Bright Lights, Dean City", Some(2010), Some(23)));
1567 assert_eq!(show.episodes[54], Episode::new(4, 14, 1747772, "Assisted Suicide", Some(2010), Some(23)));
1568 assert_eq!(show.episodes[55], Episode::new(4, 15, 1752777, "The Silent Partners", Some(2010), Some(23)));
1569 assert_eq!(show.episodes[56], Episode::new(4, 16, 1772101, "Operation P.R.O.M.", Some(2010), Some(46)));
1570 assert_eq!(show.episodes[57], Episode::new(4, 17, 2035364, "From the Ladle to the Grave: The Shallow Gravy Story", Some(2011), Some(12)));
1571 assert_eq!(show.episodes[58], Episode::new(5, 0, 2423804, "A Very Venture Halloween", Some(2012), Some(60)));
1572 assert_eq!(show.episodes[59], Episode::new(5, 1, 2951250, "What Color Is Your Cleansuit?", Some(2013), Some(46)));
1573 assert_eq!(show.episodes[60], Episode::new(5, 2, 2951252, "Venture Libre", Some(2013), Some(23)));
1574 assert_eq!(show.episodes[61], Episode::new(5, 3, 2959752, "Sphinx Rising", Some(2013), Some(23)));
1575 assert_eq!(show.episodes[62], Episode::new(5, 4, 2973986, "Spanakopita", Some(2013), Some(23)));
1576 assert_eq!(show.episodes[63], Episode::new(5, 5, 2991116, "O.S.I. Love You", Some(2013), Some(23)));
1577 assert_eq!(show.episodes[64], Episode::new(5, 6, 3016486, "Momma\'s Boys", Some(2013), Some(23)));
1578 assert_eq!(show.episodes[65], Episode::new(5, 7, 3024226, "Bot Seeks Bot", Some(2013), Some(23)));
1579 assert_eq!(show.episodes[66], Episode::new(5, 8, 3040042, "The Devil\'s Grip", Some(2013), Some(23)));
1580 assert_eq!(show.episodes[67], Episode::new(6, 0, 4334430, "All This and Gargantua-2", Some(2015), Some(48)));
1581 assert_eq!(show.episodes[68], Episode::new(6, 1, 5024698, "Hostile Makeover", Some(2016), Some(23)));
1582 assert_eq!(show.episodes[69], Episode::new(6, 2, 5218230, "Maybe No Go", Some(2016), Some(22)));
1583 assert_eq!(show.episodes[70], Episode::new(6, 3, 5218240, "Faking Miracles", Some(2016), Some(22)));
1584 assert_eq!(show.episodes[71], Episode::new(6, 4, 5218252, "Rapacity in Blue", Some(2016), Some(22)));
1585 assert_eq!(show.episodes[72], Episode::new(6, 5, 5218278, "Tanks for Nuthin\'", Some(2016), Some(22)));
1586 assert_eq!(show.episodes[73], Episode::new(6, 6, 5218290, "It Happening One Night", Some(2016), Some(22)));
1587 assert_eq!(show.episodes[74], Episode::new(6, 7, 5321340, "A Party for Tarzan", Some(2016), Some(22)));
1588 assert_eq!(show.episodes[75], Episode::new(6, 8, 5321386, "Red Means Stop", Some(2016), Some(22)));
1589 assert_eq!(show.episodes[76], Episode::new(7, 1, 7525428, "The Venture Bros. and the Curse of the Haunted Problem", Some(2018), Some(22)));
1590 assert_eq!(show.episodes[77], Episode::new(7, 2, 8781016, "The Rorqual Affair", Some(2018), Some(22)));
1591 assert_eq!(show.episodes[78], Episode::new(7, 3, 8842110, "Arrears in Science", Some(2018), Some(23)));
1592 assert_eq!(show.episodes[79], Episode::new(7, 4, 8842114, "The High Cost of Loathing", Some(2018), Some(22)));
1593 assert_eq!(show.episodes[80], Episode::new(7, 5, 8842118, "The Inamorata Consequence", Some(2018), Some(22)));
1594 assert_eq!(show.episodes[81], Episode::new(7, 6, 8972942, "The Bellicose Proxy", Some(2018), Some(22)));
1595 assert_eq!(show.episodes[82], Episode::new(7, 7, 8980674, "The Unicorn in Captivity", Some(2018), Some(22)));
1596 assert_eq!(show.episodes[83], Episode::new(7, 8, 8980676, "The Terminus Mandate", Some(2018), Some(22)));
1597 assert_eq!(show.episodes[84], Episode::new(7, 9, 9035294, "The Forecast Manufacturer", Some(2018), Some(22)));
1598 assert_eq!(show.episodes[85], Episode::new(7, 10, 9035298, "The Saphrax Protocol", Some(2018), Some(22)));
1599 let mut show = client.get_show(460681).await.unwrap();
1602 show.episodes.sort_unstable();
1603 assert_eq!(show.imdb_id, 460681);
1604 assert_eq!(show.title, "Supernatural");
1605 assert!(!show.is_adult);
1606 assert_eq!(show.start_year, 2005);
1607 assert_eq!(show.end_year, Some(2020));
1608 assert_eq!(show.runtime_minutes, Some(44));
1609 assert_eq!(show.genres, *[Drama, Fantasy, Horror].as_ref());
1610 assert_eq!(show.episodes.len(), 327); assert_eq!(show.episodes[0], Episode::new(1, 1, 713618, "Pilot", Some(2005), Some(44)));
1612 assert_eq!(show.episodes[1], Episode::new(1, 2, 713624, "Wendigo", Some(2005), Some(44)));
1613 assert_eq!(show.episodes[2], Episode::new(1, 3, 713613, "Dead in the Water", Some(2005), Some(44)));
1614 assert_eq!(show.episodes[3], Episode::new(1, 4, 713617, "Phantom Traveler", Some(2005), Some(43)));
1615 assert_eq!(show.episodes[4], Episode::new(1, 5, 713611, "Bloody Mary", Some(2005), Some(44)));
1616 assert_eq!(show.episodes[5], Episode::new(1, 6, 713622, "Skin", Some(2005), Some(42)));
1617 assert_eq!(show.episodes[6], Episode::new(1, 7, 713615, "Hook Man", Some(2005), Some(41)));
1618 assert_eq!(show.episodes[7], Episode::new(1, 8, 713612, "Bugs", Some(2005), Some(44)));
1619 assert_eq!(show.episodes[8], Episode::new(1, 9, 713623, "Home", Some(2005), Some(43)));
1620 assert_eq!(show.episodes[9], Episode::new(1, 10, 713610, "Asylum", Some(2005), Some(44)));
1621 assert_eq!(show.episodes[10], Episode::new(1, 11, 713620, "Scarecrow", Some(2006), Some(43)));
1622 assert_eq!(show.episodes[11], Episode::new(1, 12, 713614, "Faith", Some(2006), Some(44)));
1623 assert_eq!(show.episodes[12], Episode::new(1, 13, 713619, "Route 666", Some(2006), Some(50)));
1624 assert_eq!(show.episodes[13], Episode::new(1, 14, 713616, "Nightmare", Some(2006), Some(55)));
1625 assert_eq!(show.episodes[14], Episode::new(1, 15, 757750, "The Benders", Some(2006), Some(55)));
1626 assert_eq!(show.episodes[15], Episode::new(1, 16, 713621, "Shadow", Some(2006), Some(55)));
1627 assert_eq!(show.episodes[16], Episode::new(1, 17, 763064, "Hell House", Some(2006), Some(55)));
1628 assert_eq!(show.episodes[17], Episode::new(1, 18, 763065, "Something Wicked", Some(2006), Some(55)));
1629 assert_eq!(show.episodes[18], Episode::new(1, 19, 761316, "Provenance", Some(2006), Some(44)));
1630 assert_eq!(show.episodes[19], Episode::new(1, 20, 767486, "Dead Man\'s Blood", Some(2006), Some(55)));
1631 assert_eq!(show.episodes[20], Episode::new(1, 21, 772002, "Salvation", Some(2006), Some(60)));
1632 assert_eq!(show.episodes[21], Episode::new(1, 22, 775325, "Devil\'s Trap", Some(2006), Some(55)));
1633 assert_eq!(show.episodes[22], Episode::new(2, 1, 829063, "In My Time of Dying", Some(2006), Some(50)));
1634 assert_eq!(show.episodes[23], Episode::new(2, 2, 829062, "Everybody Loves a Clown", Some(2006), Some(55)));
1635 assert_eq!(show.episodes[24], Episode::new(2, 3, 835248, "Bloodlust", Some(2006), Some(50)));
1636 assert_eq!(show.episodes[25], Episode::new(2, 4, 837741, "Children Shouldn\'t Play with Dead Things", Some(2006), Some(42)));
1637 assert_eq!(show.episodes[26], Episode::new(2, 5, 851031, "Simon Said", Some(2006), Some(48)));
1638 assert_eq!(show.episodes[27], Episode::new(2, 6, 855641, "No Exit", Some(2006), Some(47)));
1639 assert_eq!(show.episodes[28], Episode::new(2, 7, 859555, "The Usual Suspects", Some(2006), Some(50)));
1640 assert_eq!(show.episodes[29], Episode::new(2, 8, 868625, "Crossroad Blues", Some(2006), Some(42)));
1641 assert_eq!(show.episodes[30], Episode::new(2, 9, 878590, "Croatoan", Some(2006), Some(47)));
1642 assert_eq!(show.episodes[31], Episode::new(2, 10, 883872, "Hunted", Some(2007), Some(49)));
1643 assert_eq!(show.episodes[32], Episode::new(2, 11, 890836, "Playthings", Some(2007), Some(49)));
1644 assert_eq!(show.episodes[33], Episode::new(2, 12, 942145, "Nightshifter", Some(2007), Some(47)));
1645 assert_eq!(show.episodes[34], Episode::new(2, 13, 921622, "Houses of the Holy", Some(2007), Some(50)));
1646 assert_eq!(show.episodes[35], Episode::new(2, 14, 940441, "Born Under a Bad Sign", Some(2007), Some(50)));
1647 assert_eq!(show.episodes[36], Episode::new(2, 15, 939444, "Tall Tales", Some(2007), Some(48)));
1648 assert_eq!(show.episodes[37], Episode::new(2, 16, 942786, "Roadkill", Some(2007), Some(40)));
1649 assert_eq!(show.episodes[38], Episode::new(2, 17, 959976, "Heart", Some(2007), Some(47)));
1650 assert_eq!(show.episodes[39], Episode::new(2, 18, 964436, "Hollywood Babylon", Some(2007), Some(50)));
1651 assert_eq!(show.episodes[40], Episode::new(2, 19, 1000536, "Folsom Prison Blues", Some(2007), Some(41)));
1652 assert_eq!(show.episodes[41], Episode::new(2, 20, 987715, "What Is and What Should Never Be", Some(2007), Some(50)));
1653 assert_eq!(show.episodes[42], Episode::new(2, 21, 987713, "All Hell Breaks Loose: Part 1", Some(2007), Some(50)));
1654 assert_eq!(show.episodes[43], Episode::new(2, 22, 987714, "All Hell Breaks Loose: Part 2", Some(2007), Some(55)));
1655 assert_eq!(show.episodes[44], Episode::new(3, 1, 1032129, "The Magnificent Seven", Some(2007), Some(49)));
1656 assert_eq!(show.episodes[45], Episode::new(3, 2, 1032134, "The Kids Are Alright", Some(2007), Some(43)));
1657 assert_eq!(show.episodes[46], Episode::new(3, 3, 1107710, "Bad Day at Black Rock", Some(2007), Some(50)));
1658 assert_eq!(show.episodes[47], Episode::new(3, 4, 1032135, "Sin City", Some(2007), Some(50)));
1659 assert_eq!(show.episodes[48], Episode::new(3, 5, 1032137, "Bedtime Stories", Some(2007), Some(50)));
1660 assert_eq!(show.episodes[49], Episode::new(3, 6, 1032138, "Red Sky at Morning", Some(2007), Some(50)));
1661 assert_eq!(show.episodes[50], Episode::new(3, 7, 1032139, "Fresh Blood", Some(2007), Some(50)));
1662 assert_eq!(show.episodes[51], Episode::new(3, 8, 1032140, "A Very Supernatural Christmas", Some(2007), Some(42)));
1663 assert_eq!(show.episodes[52], Episode::new(3, 9, 1032141, "Malleus Maleficarum", Some(2008), Some(40)));
1664 assert_eq!(show.episodes[53], Episode::new(3, 10, 1032130, "Dream a Little Dream of Me", Some(2008), Some(55)));
1665 assert_eq!(show.episodes[54], Episode::new(3, 11, 1032132, "Mystery Spot", Some(2008), Some(55)));
1666 assert_eq!(show.episodes[55], Episode::new(3, 12, 1032131, "Jus in Bello", Some(2008), Some(55)));
1667 assert_eq!(show.episodes[56], Episode::new(3, 13, 1032133, "Ghostfacers", Some(2008), Some(42)));
1668 assert_eq!(show.episodes[57], Episode::new(3, 14, 1206073, "Long Distance Call", Some(2008), Some(41)));
1669 assert_eq!(show.episodes[58], Episode::new(3, 15, 1222593, "Time Is on My Side", Some(2008), Some(50)));
1670 assert_eq!(show.episodes[59], Episode::new(3, 16, 1222594, "No Rest for the Wicked", Some(2008), Some(50)));
1671 assert_eq!(show.episodes[60], Episode::new(4, 1, 1222595, "Lazarus Rising", Some(2008), Some(55)));
1672 assert_eq!(show.episodes[61], Episode::new(4, 2, 1222606, "Are You There, God? It\'s Me, Dean Winchester", Some(2008), Some(50)));
1673 assert_eq!(show.episodes[62], Episode::new(4, 3, 1222611, "In the Beginning", Some(2008), Some(50)));
1674 assert_eq!(show.episodes[63], Episode::new(4, 4, 1222612, "Metamorphosis", Some(2008), Some(60)));
1675 assert_eq!(show.episodes[64], Episode::new(4, 5, 1222610, "Monster Movie", Some(2008), Some(55)));
1676 assert_eq!(show.episodes[65], Episode::new(4, 6, 1222613, "Yellow Fever", Some(2008), Some(43)));
1677 assert_eq!(show.episodes[66], Episode::new(4, 7, 1222614, "It\'s the Great Pumpkin, Sam Winchester", Some(2008), Some(42)));
1678 assert_eq!(show.episodes[67], Episode::new(4, 8, 1222615, "Wishful Thinking", Some(2008), Some(41)));
1679 assert_eq!(show.episodes[68], Episode::new(4, 9, 1222616, "I Know What You Did Last Summer", Some(2008), Some(43)));
1680 assert_eq!(show.episodes[69], Episode::new(4, 10, 1222596, "Heaven and Hell", Some(2008), Some(43)));
1681 assert_eq!(show.episodes[70], Episode::new(4, 11, 1222597, "Family Remains", Some(2009), Some(43)));
1682 assert_eq!(show.episodes[71], Episode::new(4, 12, 1222598, "Criss Angel Is a Douche Bag", Some(2009), Some(43)));
1683 assert_eq!(show.episodes[72], Episode::new(4, 13, 1222599, "After School Special", Some(2009), Some(55)));
1684 assert_eq!(show.episodes[73], Episode::new(4, 14, 1222600, "Sex and Violence", Some(2009), Some(43)));
1685 assert_eq!(show.episodes[74], Episode::new(4, 15, 1222601, "Death Takes a Holiday", Some(2009), Some(43)));
1686 assert_eq!(show.episodes[75], Episode::new(4, 16, 1222602, "On the Head of a Pin", Some(2009), Some(43)));
1687 assert_eq!(show.episodes[76], Episode::new(4, 17, 1222603, "It\'s a Terrible Life", Some(2009), Some(43)));
1688 assert_eq!(show.episodes[77], Episode::new(4, 18, 1222604, "The Monster at the End of This Book", Some(2009), Some(43)));
1689 assert_eq!(show.episodes[78], Episode::new(4, 19, 1222605, "Jump the Shark", Some(2009), Some(43)));
1690 assert_eq!(show.episodes[79], Episode::new(4, 20, 1222607, "The Rapture", Some(2009), Some(40)));
1691 assert_eq!(show.episodes[80], Episode::new(4, 21, 1222608, "When the Levee Breaks", Some(2009), Some(43)));
1692 assert_eq!(show.episodes[81], Episode::new(4, 22, 1222609, "Lucifer Rising", Some(2009), Some(43)));
1693 assert_eq!(show.episodes[82], Episode::new(5, 1, 1461906, "Sympathy for the Devil", Some(2009), Some(60)));
1694 assert_eq!(show.episodes[83], Episode::new(5, 2, 1464088, "Good God, Y\'All", Some(2009), Some(60)));
1695 assert_eq!(show.episodes[84], Episode::new(5, 3, 1464089, "Free to Be You and Me", Some(2009), Some(60)));
1696 assert_eq!(show.episodes[85], Episode::new(5, 4, 1488984, "The End", Some(2009), Some(60)));
1697 assert_eq!(show.episodes[86], Episode::new(5, 5, 1488983, "Fallen Idols", Some(2009), Some(60)));
1698 assert_eq!(show.episodes[87], Episode::new(5, 6, 1506849, "I Believe the Children Are Our Future", Some(2009), Some(42)));
1699 assert_eq!(show.episodes[88], Episode::new(5, 7, 1507550, "The Curious Case of Dean Winchester", Some(2009), Some(42)));
1700 assert_eq!(show.episodes[89], Episode::new(5, 8, 1511910, "Changing Channels", Some(2009), Some(60)));
1701 assert_eq!(show.episodes[90], Episode::new(5, 9, 1533530, "The Real Ghostbusters", Some(2009), Some(60)));
1702 assert_eq!(show.episodes[91], Episode::new(5, 10, 1532469, "Abandon All Hope", Some(2009), Some(60)));
1703 assert_eq!(show.episodes[92], Episode::new(5, 11, 1543420, "Sam, Interrupted", Some(2010), Some(60)));
1704 assert_eq!(show.episodes[93], Episode::new(5, 12, 1552579, "Swap Meat", Some(2010), Some(60)));
1705 assert_eq!(show.episodes[94], Episode::new(5, 13, 1541419, "The Song Remains the Same", Some(2010), Some(60)));
1706 assert_eq!(show.episodes[95], Episode::new(5, 14, 1588681, "My Bloody Valentine", Some(2010), Some(60)));
1707 assert_eq!(show.episodes[96], Episode::new(5, 15, 1588682, "Dead Men Don\'t Wear Plaid", Some(2010), Some(60)));
1708 assert_eq!(show.episodes[97], Episode::new(5, 16, 1588256, "Dark Side of the Moon", Some(2010), Some(60)));
1709 assert_eq!(show.episodes[98], Episode::new(5, 17, 1588255, "99 Problems", Some(2010), Some(60)));
1710 assert_eq!(show.episodes[99], Episode::new(5, 18, 1594854, "Point of No Return", Some(2010), Some(60)));
1711 assert_eq!(show.episodes[100], Episode::new(5, 19, 1598673, "Hammer of the Gods", Some(2010), Some(60)));
1712 assert_eq!(show.episodes[101], Episode::new(5, 20, 1599805, "The Devil You Know", Some(2010), Some(60)));
1713 assert_eq!(show.episodes[102], Episode::new(5, 21, 1626754, "Two Minutes to Midnight", Some(2010), Some(60)));
1714 assert_eq!(show.episodes[103], Episode::new(5, 22, 1626753, "Swan Song", Some(2010), Some(42)));
1715 assert_eq!(show.episodes[104], Episode::new(6, 1, 1627706, "Exile on Main St.", Some(2010), Some(42)));
1716 assert_eq!(show.episodes[105], Episode::new(6, 2, 1627717, "Two and a Half Men", Some(2010), Some(41)));
1717 assert_eq!(show.episodes[106], Episode::new(6, 3, 1627721, "The Third Man", Some(2010), Some(41)));
1718 assert_eq!(show.episodes[107], Episode::new(6, 4, 1627722, "Weekend at Bobby\'s", Some(2010), Some(40)));
1719 assert_eq!(show.episodes[108], Episode::new(6, 5, 1627724, "Live Free or Twi-hard", Some(2010), Some(42)));
1720 assert_eq!(show.episodes[109], Episode::new(6, 6, 1627723, "You Can\'t Handle the Truth", Some(2010), Some(60)));
1721 assert_eq!(show.episodes[110], Episode::new(6, 7, 1627725, "Family Matters", Some(2010), Some(41)));
1722 assert_eq!(show.episodes[111], Episode::new(6, 8, 1627726, "All Dogs Go to Heaven", Some(2010), Some(42)));
1723 assert_eq!(show.episodes[112], Episode::new(6, 9, 1627727, "Clap Your Hands If You Believe", Some(2010), Some(43)));
1724 assert_eq!(show.episodes[113], Episode::new(6, 10, 1627707, "Caged Heat", Some(2010), Some(60)));
1725 assert_eq!(show.episodes[114], Episode::new(6, 11, 1627708, "Appointment in Samarra", Some(2010), Some(42)));
1726 assert_eq!(show.episodes[115], Episode::new(6, 12, 1627709, "Like a Virgin", Some(2011), Some(60)));
1727 assert_eq!(show.episodes[116], Episode::new(6, 13, 1627710, "Unforgiven", Some(2011), Some(60)));
1728 assert_eq!(show.episodes[117], Episode::new(6, 14, 1627711, "Mannequin 3: The Reckoning", Some(2011), Some(60)));
1729 assert_eq!(show.episodes[118], Episode::new(6, 15, 1627712, "The French Mistake", Some(2011), Some(42)));
1730 assert_eq!(show.episodes[119], Episode::new(6, 16, 1627713, "And Then There Were None", Some(2011), Some(60)));
1731 assert_eq!(show.episodes[120], Episode::new(6, 17, 1627715, "My Heart Will Go On", Some(2011), Some(60)));
1732 assert_eq!(show.episodes[121], Episode::new(6, 18, 1627714, "Frontierland", Some(2011), Some(60)));
1733 assert_eq!(show.episodes[122], Episode::new(6, 19, 1627716, "Mommy Dearest", Some(2011), Some(60)));
1734 assert_eq!(show.episodes[123], Episode::new(6, 20, 1627718, "The Man Who Would Be King", Some(2011), Some(60)));
1735 assert_eq!(show.episodes[124], Episode::new(6, 21, 1627719, "Let It Bleed", Some(2011), Some(60)));
1736 assert_eq!(show.episodes[125], Episode::new(6, 22, 1864037, "The Man Who Knew Too Much", Some(2011), Some(43)));
1737 assert_eq!(show.episodes[126], Episode::new(7, 1, 1995102, "Meet the New Boss", Some(2011), Some(43)));
1738 assert_eq!(show.episodes[127], Episode::new(7, 2, 1995113, "Hello, Cruel World", Some(2011), Some(43)));
1739 assert_eq!(show.episodes[128], Episode::new(7, 3, 1995118, "The Girl Next Door", Some(2011), Some(42)));
1740 assert_eq!(show.episodes[129], Episode::new(7, 4, 1995119, "Defending Your Life", Some(2011), Some(43)));
1741 assert_eq!(show.episodes[130], Episode::new(7, 5, 1995120, "Shut Up, Dr. Phil", Some(2011), Some(42)));
1742 assert_eq!(show.episodes[131], Episode::new(7, 6, 1995121, "Slash Fiction", Some(2011), Some(43)));
1743 assert_eq!(show.episodes[132], Episode::new(7, 7, 1995122, "The Mentalists", Some(2011), Some(42)));
1744 assert_eq!(show.episodes[133], Episode::new(7, 8, 1995123, "Season Seven, Time for a Wedding!", Some(2011), Some(40)));
1745 assert_eq!(show.episodes[134], Episode::new(7, 9, 1995124, "How to Win Friends and Influence Monsters", Some(2011), Some(41)));
1746 assert_eq!(show.episodes[135], Episode::new(7, 10, 1995103, "Death\'s Door", Some(2011), Some(42)));
1747 assert_eq!(show.episodes[136], Episode::new(7, 11, 1995104, "Adventures in Babysitting", Some(2012), Some(43)));
1748 assert_eq!(show.episodes[137], Episode::new(7, 12, 1995105, "Time After Time", Some(2012), Some(43)));
1749 assert_eq!(show.episodes[138], Episode::new(7, 13, 1995106, "The Slice Girls", Some(2012), Some(42)));
1750 assert_eq!(show.episodes[139], Episode::new(7, 14, 1995107, "Plucky Pennywhistle\'s Magical Menagerie", Some(2012), Some(42)));
1751 assert_eq!(show.episodes[140], Episode::new(7, 15, 1995108, "Repo Man", Some(2012), Some(43)));
1752 assert_eq!(show.episodes[141], Episode::new(7, 16, 1995109, "Out with the Old", Some(2012), Some(43)));
1753 assert_eq!(show.episodes[142], Episode::new(7, 17, 1995110, "The Born-Again Identity", Some(2012), Some(43)));
1754 assert_eq!(show.episodes[143], Episode::new(7, 18, 1995111, "Party On, Garth", Some(2012), Some(43)));
1755 assert_eq!(show.episodes[144], Episode::new(7, 19, 1995112, "Of Grave Importance", Some(2012), Some(42)));
1756 assert_eq!(show.episodes[145], Episode::new(7, 20, 1995114, "The Girl with the Dungeons and Dragons Tattoo", Some(2012), Some(43)));
1757 assert_eq!(show.episodes[146], Episode::new(7, 21, 1995115, "Reading is Fundamental", Some(2012), Some(42)));
1758 assert_eq!(show.episodes[147], Episode::new(7, 22, 1995116, "There Will Be Blood", Some(2012), Some(43)));
1759 assert_eq!(show.episodes[148], Episode::new(7, 23, 1995117, "Survival of the Fittest", Some(2012), Some(42)));
1760 assert_eq!(show.episodes[149], Episode::new(8, 1, 2373078, "We Need to Talk About Kevin", Some(2012), Some(42)));
1761 assert_eq!(show.episodes[150], Episode::new(8, 2, 2404088, "What\'s Up, Tiger Mommy?", Some(2012), Some(42)));
1762 assert_eq!(show.episodes[151], Episode::new(8, 3, 2293862, "Heartache", Some(2012), Some(40)));
1763 assert_eq!(show.episodes[152], Episode::new(8, 4, 2323362, "Bitten", Some(2012), Some(42)));
1764 assert_eq!(show.episodes[153], Episode::new(8, 5, 2388382, "Blood Brother", Some(2012), Some(43)));
1765 assert_eq!(show.episodes[154], Episode::new(8, 6, 2372414, "Southern Comfort", Some(2012), Some(43)));
1766 assert_eq!(show.episodes[155], Episode::new(8, 7, 2425360, "A Little Slice of Kevin", Some(2012), Some(43)));
1767 assert_eq!(show.episodes[156], Episode::new(8, 8, 2426140, "Hunteri Heroici", Some(2012), Some(43)));
1768 assert_eq!(show.episodes[157], Episode::new(8, 9, 2426138, "Citizen Fang", Some(2012), Some(43)));
1769 assert_eq!(show.episodes[158], Episode::new(8, 10, 2425378, "Torn and Frayed", Some(2013), Some(43)));
1770 assert_eq!(show.episodes[159], Episode::new(8, 11, 2498912, "LARP and the Real Girl", Some(2013), Some(43)));
1771 assert_eq!(show.episodes[160], Episode::new(8, 12, 2506990, "As Time Goes By", Some(2013), Some(43)));
1772 assert_eq!(show.episodes[161], Episode::new(8, 13, 2578700, "Everybody Hates Hitler", Some(2013), Some(43)));
1773 assert_eq!(show.episodes[162], Episode::new(8, 14, 2503932, "Trial and Error", Some(2013), Some(43)));
1774 assert_eq!(show.episodes[163], Episode::new(8, 15, 2578704, "Man\'s Best Friend with Benefits", Some(2013), Some(43)));
1775 assert_eq!(show.episodes[164], Episode::new(8, 16, 2578708, "Remember the Titans", Some(2013), Some(42)));
1776 assert_eq!(show.episodes[165], Episode::new(8, 17, 2692382, "Goodbye Stranger", Some(2013), Some(43)));
1777 assert_eq!(show.episodes[166], Episode::new(8, 18, 2621384, "Freaks and Geeks", Some(2013), Some(42)));
1778 assert_eq!(show.episodes[167], Episode::new(8, 19, 2699592, "Taxi Driver", Some(2013), Some(43)));
1779 assert_eq!(show.episodes[168], Episode::new(8, 20, 2699596, "Pac-Man Fever", Some(2013), Some(43)));
1780 assert_eq!(show.episodes[169], Episode::new(8, 21, 2734858, "The Great Escapist", Some(2013), Some(43)));
1781 assert_eq!(show.episodes[170], Episode::new(8, 22, 2805138, "Clip Show", Some(2013), Some(43)));
1782 assert_eq!(show.episodes[171], Episode::new(8, 23, 2805140, "Sacrifice", Some(2013), Some(42)));
1783 assert_eq!(show.episodes[172], Episode::new(9, 1, 2702688, "I Think I\'m Gonna Like It Here", Some(2013), Some(42)));
1784 assert_eq!(show.episodes[173], Episode::new(9, 2, 3025548, "Devil May Care", Some(2013), Some(41)));
1785 assert_eq!(show.episodes[174], Episode::new(9, 3, 3097142, "I\'m No Angel", Some(2013), Some(42)));
1786 assert_eq!(show.episodes[175], Episode::new(9, 4, 3098422, "Slumber Party", Some(2013), Some(42)));
1787 assert_eq!(show.episodes[176], Episode::new(9, 5, 3112660, "Dog Dean Afternoon", Some(2013), Some(41)));
1788 assert_eq!(show.episodes[177], Episode::new(9, 6, 3112656, "Heaven Can\'t Wait", Some(2013), Some(42)));
1789 assert_eq!(show.episodes[178], Episode::new(9, 7, 3141550, "Bad Boys", Some(2013), Some(42)));
1790 assert_eq!(show.episodes[179], Episode::new(9, 8, 3158272, "Rock and a Hard Place", Some(2013), Some(42)));
1791 assert_eq!(show.episodes[180], Episode::new(9, 9, 3158274, "Holy Terror", Some(2013), Some(42)));
1792 assert_eq!(show.episodes[181], Episode::new(9, 10, 3158276, "Road Trip", Some(2014), Some(43)));
1793 assert_eq!(show.episodes[182], Episode::new(9, 11, 3158278, "First Born", Some(2014), Some(42)));
1794 assert_eq!(show.episodes[183], Episode::new(9, 12, 3158284, "Sharp Teeth", Some(2014), Some(42)));
1795 assert_eq!(show.episodes[184], Episode::new(9, 13, 3158282, "The Purge", Some(2014), Some(42)));
1796 assert_eq!(show.episodes[185], Episode::new(9, 14, 3182872, "Captives", Some(2014), Some(42)));
1797 assert_eq!(show.episodes[186], Episode::new(9, 15, 3182874, "#thinman", Some(2014), Some(42)));
1798 assert_eq!(show.episodes[187], Episode::new(9, 16, 3182880, "Blade Runners", Some(2014), Some(42)));
1799 assert_eq!(show.episodes[188], Episode::new(9, 17, 3182878, "Mother\'s Little Helper", Some(2014), Some(42)));
1800 assert_eq!(show.episodes[189], Episode::new(9, 18, 3182886, "Meta Fiction", Some(2014), Some(42)));
1801 assert_eq!(show.episodes[190], Episode::new(9, 19, 3182884, "Alex Annie Alexis Ann", Some(2014), Some(42)));
1802 assert_eq!(show.episodes[191], Episode::new(9, 20, 3182892, "Bloodlines", Some(2014), Some(42)));
1803 assert_eq!(show.episodes[192], Episode::new(9, 21, 3182890, "King of the Damned", Some(2014), Some(42)));
1804 assert_eq!(show.episodes[193], Episode::new(9, 22, 3182896, "Stairway to Heaven", Some(2014), Some(42)));
1805 assert_eq!(show.episodes[194], Episode::new(9, 23, 3182894, "Do You Believe in Miracles", Some(2014), Some(42)));
1806 assert_eq!(show.episodes[195], Episode::new(10, 1, 3532628, "Black", Some(2014), Some(43)));
1807 assert_eq!(show.episodes[196], Episode::new(10, 2, 3831300, "Reichenbach", Some(2014), Some(43)));
1808 assert_eq!(show.episodes[197], Episode::new(10, 3, 3831310, "Soul Survivor", Some(2014), Some(43)));
1809 assert_eq!(show.episodes[198], Episode::new(10, 4, 3845906, "Paper Moon", Some(2014), Some(41)));
1810 assert_eq!(show.episodes[199], Episode::new(10, 5, 3845910, "Fan Fiction", Some(2014), Some(43)));
1811 assert_eq!(show.episodes[200], Episode::new(10, 6, 3860118, "Ask Jeeves", Some(2014), Some(43)));
1812 assert_eq!(show.episodes[201], Episode::new(10, 7, 3860122, "Girls, Girls, Girls", Some(2014), Some(42)));
1813 assert_eq!(show.episodes[202], Episode::new(10, 8, 3997488, "Hibbing 911", Some(2014), Some(42)));
1814 assert_eq!(show.episodes[203], Episode::new(10, 9, 3997492, "The Things We Left Behind", Some(2014), Some(42)));
1815 assert_eq!(show.episodes[204], Episode::new(10, 10, 3997490, "The Hunter Games", Some(2015), Some(43)));
1816 assert_eq!(show.episodes[205], Episode::new(10, 11, 4274892, "There\'s No Place Like Home", Some(2015), Some(43)));
1817 assert_eq!(show.episodes[206], Episode::new(10, 12, 4344320, "About a Boy", Some(2015), Some(41)));
1818 assert_eq!(show.episodes[207], Episode::new(10, 13, 4344332, "Halt & Catch Fire", Some(2015), Some(42)));
1819 assert_eq!(show.episodes[208], Episode::new(10, 14, 4292452, "The Executioner\'s Song", Some(2015), Some(42)));
1820 assert_eq!(show.episodes[209], Episode::new(10, 15, 4333228, "The Things They Carried", Some(2015), Some(42)));
1821 assert_eq!(show.episodes[210], Episode::new(10, 16, 4427940, "Paint It Black", Some(2015), Some(42)));
1822 assert_eq!(show.episodes[211], Episode::new(10, 17, 4443976, "Inside Man", Some(2015), Some(42)));
1823 assert_eq!(show.episodes[212], Episode::new(10, 18, 4489472, "Book of the Damned", Some(2015), Some(43)));
1824 assert_eq!(show.episodes[213], Episode::new(10, 19, 4489474, "The Werther Project", Some(2015), Some(43)));
1825 assert_eq!(show.episodes[214], Episode::new(10, 20, 4489476, "Angel Heart", Some(2015), Some(42)));
1826 assert_eq!(show.episodes[215], Episode::new(10, 21, 4489482, "Dark Dynasty", Some(2015), Some(42)));
1827 assert_eq!(show.episodes[216], Episode::new(10, 22, 4489484, "The Prisoner", Some(2015), Some(42)));
1828 assert_eq!(show.episodes[217], Episode::new(10, 23, 4489486, "Brother\'s Keeper", Some(2015), Some(42)));
1829 assert_eq!(show.episodes[218], Episode::new(11, 1, 4346788, "Out of the Darkness, Into the Fire", Some(2015), Some(43)));
1830 assert_eq!(show.episodes[219], Episode::new(11, 2, 4857906, "Form and Void", Some(2015), Some(43)));
1831 assert_eq!(show.episodes[220], Episode::new(11, 3, 4857918, "The Bad Seed", Some(2015), Some(42)));
1832 assert_eq!(show.episodes[221], Episode::new(11, 4, 4995876, "Baby", Some(2015), Some(41)));
1833 assert_eq!(show.episodes[222], Episode::new(11, 5, 5056820, "Thin Lizzie", Some(2015), Some(42)));
1834 assert_eq!(show.episodes[223], Episode::new(11, 6, 5056822, "Our Little World", Some(2015), Some(42)));
1835 assert_eq!(show.episodes[224], Episode::new(11, 7, 5056828, "Plush", Some(2015), Some(41)));
1836 assert_eq!(show.episodes[225], Episode::new(11, 8, 5056832, "Just My Imagination", Some(2015), Some(42)));
1837 assert_eq!(show.episodes[226], Episode::new(11, 9, 5056836, "O Brother, Where Art Thou?", Some(2015), Some(42)));
1838 assert_eq!(show.episodes[227], Episode::new(11, 10, 5087242, "The Devil in the Details", Some(2016), Some(42)));
1839 assert_eq!(show.episodes[228], Episode::new(11, 11, 5239780, "Into the Mystic", Some(2016), Some(42)));
1840 assert_eq!(show.episodes[229], Episode::new(11, 12, 5265450, "Don\'t You Forget About Me", Some(2016), Some(42)));
1841 assert_eq!(show.episodes[230], Episode::new(11, 13, 5352054, "Love Hurts", Some(2016), Some(41)));
1842 assert_eq!(show.episodes[231], Episode::new(11, 14, 5390282, "The Vessel", Some(2016), Some(42)));
1843 assert_eq!(show.episodes[232], Episode::new(11, 15, 5432122, "Beyond the Mat", Some(2016), Some(42)));
1844 assert_eq!(show.episodes[233], Episode::new(11, 16, 5432150, "Safe House", Some(2016), Some(42)));
1845 assert_eq!(show.episodes[234], Episode::new(11, 17, 5432156, "Red Meat", Some(2016), Some(41)));
1846 assert_eq!(show.episodes[235], Episode::new(11, 18, 5539106, "Hell\'s Angel", Some(2016), Some(42)));
1847 assert_eq!(show.episodes[236], Episode::new(11, 19, 5538526, "The Chitters", Some(2016), Some(41)));
1848 assert_eq!(show.episodes[237], Episode::new(11, 20, 5547512, "Don\'t Call Me Shurley", Some(2016), Some(42)));
1849 assert_eq!(show.episodes[238], Episode::new(11, 21, 5547522, "All in the Family", Some(2016), Some(41)));
1850 assert_eq!(show.episodes[239], Episode::new(11, 22, 5547530, "We Happy Few", Some(2016), Some(41)));
1851 assert_eq!(show.episodes[240], Episode::new(11, 23, 5547538, "Alpha and Omega", Some(2016), Some(42)));
1852 assert_eq!(show.episodes[241], Episode::new(12, 1, 5540416, "Keep Calm and Carry On", Some(2016), Some(41)));
1853 assert_eq!(show.episodes[242], Episode::new(12, 2, 5669110, "Mamma Mia", Some(2016), Some(42)));
1854 assert_eq!(show.episodes[243], Episode::new(12, 3, 5669112, "The Foundry", Some(2016), Some(42)));
1855 assert_eq!(show.episodes[244], Episode::new(12, 4, 5669114, "American Nightmare", Some(2016), Some(42)));
1856 assert_eq!(show.episodes[245], Episode::new(12, 5, 5669118, "The One You\'ve Been Waiting For", Some(2016), Some(41)));
1857 assert_eq!(show.episodes[246], Episode::new(12, 6, 5669116, "Celebrating the Life of Asa Fox", Some(2016), Some(42)));
1858 assert_eq!(show.episodes[247], Episode::new(12, 7, 5669120, "Rock Never Dies", Some(2016), Some(42)));
1859 assert_eq!(show.episodes[248], Episode::new(12, 8, 5669122, "LOTUS", Some(2016), Some(41)));
1860 assert_eq!(show.episodes[249], Episode::new(12, 9, 5669126, "First Blood", Some(2017), Some(41)));
1861 assert_eq!(show.episodes[250], Episode::new(12, 10, 5669124, "Lily Sunder Has Some Regrets", Some(2017), Some(42)));
1862 assert_eq!(show.episodes[251], Episode::new(12, 11, 5669128, "Regarding Dean", Some(2017), Some(42)));
1863 assert_eq!(show.episodes[252], Episode::new(12, 12, 5669130, "Stuck in the Middle (With You)", Some(2017), Some(42)));
1864 assert_eq!(show.episodes[253], Episode::new(12, 13, 5669132, "Family Feud", Some(2017), Some(42)));
1865 assert_eq!(show.episodes[254], Episode::new(12, 14, 5669134, "The Raid", Some(2017), Some(41)));
1866 assert_eq!(show.episodes[255], Episode::new(12, 15, 5669138, "Somewhere Between Heaven and Hell", Some(2017), Some(41)));
1867 assert_eq!(show.episodes[256], Episode::new(12, 16, 5669136, "Ladies Drink Free", Some(2017), Some(42)));
1868 assert_eq!(show.episodes[257], Episode::new(12, 17, 5669140, "The British Invasion", Some(2017), Some(42)));
1869 assert_eq!(show.episodes[258], Episode::new(12, 18, 5669142, "The Memory Remains", Some(2017), Some(42)));
1870 assert_eq!(show.episodes[259], Episode::new(12, 19, 5669144, "The Future", Some(2017), Some(42)));
1871 assert_eq!(show.episodes[260], Episode::new(12, 20, 5669146, "Twigs & Twine & Tasha Banes", Some(2017), Some(42)));
1872 assert_eq!(show.episodes[261], Episode::new(12, 21, 5669148, "There\'s Something About Mary", Some(2017), Some(42)));
1873 assert_eq!(show.episodes[262], Episode::new(12, 22, 5669150, "Who We Are", Some(2017), Some(42)));
1874 assert_eq!(show.episodes[263], Episode::new(12, 23, 5669152, "All Along the Watchtower", Some(2017), Some(42)));
1875 assert_eq!(show.episodes[264], Episode::new(13, 1, 6403432, "Lost and Found", Some(2017), Some(41)));
1876 assert_eq!(show.episodes[265], Episode::new(13, 2, 6746126, "The Rising Son", Some(2017), Some(42)));
1877 assert_eq!(show.episodes[266], Episode::new(13, 3, 6746128, "Patience", Some(2017), Some(42)));
1878 assert_eq!(show.episodes[267], Episode::new(13, 4, 6746132, "The Big Empty", Some(2017), Some(42)));
1879 assert_eq!(show.episodes[268], Episode::new(13, 5, 6746134, "Advanced Thanatology", Some(2017), Some(41)));
1880 assert_eq!(show.episodes[269], Episode::new(13, 6, 6746140, "Tombstone", Some(2017), Some(41)));
1881 assert_eq!(show.episodes[270], Episode::new(13, 7, 6746146, "War of the Worlds", Some(2017), Some(42)));
1882 assert_eq!(show.episodes[271], Episode::new(13, 8, 6746148, "The Scorpion and the Frog", Some(2017), Some(41)));
1883 assert_eq!(show.episodes[272], Episode::new(13, 9, 6746160, "The Bad Place", Some(2017), Some(41)));
1884 assert_eq!(show.episodes[273], Episode::new(13, 10, 6746156, "Wayward Sisters", Some(2018), Some(42)));
1885 assert_eq!(show.episodes[274], Episode::new(13, 11, 6746164, "Breakdown", Some(2018), Some(41)));
1886 assert_eq!(show.episodes[275], Episode::new(13, 12, 6746170, "Various & Sundry Villains", Some(2018), Some(42)));
1887 assert_eq!(show.episodes[276], Episode::new(13, 13, 6746168, "Devil\'s Bargain", Some(2018), Some(41)));
1888 assert_eq!(show.episodes[277], Episode::new(13, 14, 6746174, "Good Intentions", Some(2018), Some(42)));
1889 assert_eq!(show.episodes[278], Episode::new(13, 15, 6746182, "A Most Holy Man", Some(2018), Some(42)));
1890 assert_eq!(show.episodes[279], Episode::new(13, 16, 6746190, "ScoobyNatural", Some(2018), Some(42)));
1891 assert_eq!(show.episodes[280], Episode::new(13, 17, 6746194, "The Thing", Some(2018), Some(42)));
1892 assert_eq!(show.episodes[281], Episode::new(13, 18, 6746200, "Bring \'em Back Alive", Some(2018), Some(42)));
1893 assert_eq!(show.episodes[282], Episode::new(13, 19, 6746208, "Funeralia", Some(2018), Some(42)));
1894 assert_eq!(show.episodes[283], Episode::new(13, 20, 6746210, "Unfinished Business", Some(2018), Some(42)));
1895 assert_eq!(show.episodes[284], Episode::new(13, 21, 6746216, "Beat the Devil", Some(2018), Some(42)));
1896 assert_eq!(show.episodes[285], Episode::new(13, 22, 6746226, "Exodus", Some(2018), Some(41)));
1897 assert_eq!(show.episodes[286], Episode::new(13, 23, 6746224, "Let the Good Times Roll", Some(2018), Some(42)));
1898 assert_eq!(show.episodes[287], Episode::new(14, 1, 8226756, "Stranger in a Strange Land", Some(2018), Some(41)));
1899 assert_eq!(show.episodes[288], Episode::new(14, 2, 8408494, "Gods and Monsters", Some(2018), Some(41)));
1900 assert_eq!(show.episodes[289], Episode::new(14, 3, 8408498, "The Scar", Some(2018), Some(42)));
1901 assert_eq!(show.episodes[290], Episode::new(14, 4, 8408504, "Mint Condition", Some(2018), Some(41)));
1902 assert_eq!(show.episodes[291], Episode::new(14, 5, 8408508, "Nightmare Logic", Some(2018), Some(42)));
1903 assert_eq!(show.episodes[292], Episode::new(14, 6, 8408506, "Optimism", Some(2018), Some(41)));
1904 assert_eq!(show.episodes[293], Episode::new(14, 7, 8408502, "Unhuman Nature", Some(2018), Some(41)));
1905 assert_eq!(show.episodes[294], Episode::new(14, 8, 8408500, "Byzantium", Some(2018), Some(42)));
1906 assert_eq!(show.episodes[295], Episode::new(14, 9, 8408512, "The Spear", Some(2018), Some(41)));
1907 assert_eq!(show.episodes[296], Episode::new(14, 10, 8408510, "Nihilism", Some(2019), Some(42)));
1908 assert_eq!(show.episodes[297], Episode::new(14, 11, 8962434, "Damaged Goods", Some(2019), Some(42)));
1909 assert_eq!(show.episodes[298], Episode::new(14, 12, 8962440, "Prophet and Loss", Some(2019), Some(42)));
1910 assert_eq!(show.episodes[299], Episode::new(14, 13, 8962446, "Lebanon", Some(2019), Some(42)));
1911 assert_eq!(show.episodes[300], Episode::new(14, 14, 9271138, "Ouroboros", Some(2019), Some(42)));
1912 assert_eq!(show.episodes[301], Episode::new(14, 15, 9271140, "Peace of Mind", Some(2019), Some(42)));
1913 assert_eq!(show.episodes[302], Episode::new(14, 16, 9271142, "Don\'t Go in the Woods", Some(2019), Some(41)));
1914 assert_eq!(show.episodes[303], Episode::new(14, 17, 9271146, "Game Night", Some(2019), Some(42)));
1915 assert_eq!(show.episodes[304], Episode::new(14, 18, 9271148, "Absence", Some(2019), Some(42)));
1916 assert_eq!(show.episodes[305], Episode::new(14, 19, 9271150, "Jack in the Box", Some(2019), Some(42)));
1917 assert_eq!(show.episodes[306], Episode::new(14, 20, 9271152, "Moriah", Some(2019), Some(41)));
1918 assert_eq!(show.episodes[307], Episode::new(15, 1, 9695548, "Back and to the Future", Some(2019), Some(41)));
1919 assert_eq!(show.episodes[308], Episode::new(15, 2, 10067710, "Raising Hell", Some(2019), Some(42)));
1920 assert_eq!(show.episodes[309], Episode::new(15, 3, 10250608, "The Rupture", Some(2019), Some(41)));
1921 assert_eq!(show.episodes[310], Episode::new(15, 4, 10067734, "Atomic Monsters", Some(2019), Some(42)));
1922 assert_eq!(show.episodes[311], Episode::new(15, 5, 10067742, "Proverbs 17:3", Some(2019), Some(42)));
1923 assert_eq!(show.episodes[312], Episode::new(15, 6, 10067744, "Golden Time", Some(2019), Some(42)));
1924 assert_eq!(show.episodes[313], Episode::new(15, 7, 10085356, "Last Call", Some(2019), Some(41)));
1925 assert_eq!(show.episodes[314], Episode::new(15, 8, 10717880, "Our Father, Who Aren\'t in Heaven", Some(2019), Some(42)));
1926 assert_eq!(show.episodes[315], Episode::new(15, 9, 10717886, "The Trap", Some(2020), Some(42)));
1927 assert_eq!(show.episodes[316], Episode::new(15, 10, 10717892, "The Heroes\' Journey", Some(2020), Some(42)));
1928 assert_eq!(show.episodes[317], Episode::new(15, 11, 10717964, "The Gamblers", Some(2020), Some(42)));
1929 assert_eq!(show.episodes[318], Episode::new(15, 12, 10717906, "Galaxy Brain", Some(2020), Some(42)));
1930 assert_eq!(show.episodes[319], Episode::new(15, 13, 10717912, "Destiny\'s Child", Some(2020), Some(42)));
1931 assert_eq!(show.episodes[320], Episode::new(15, 14, 10717914, "Last Holiday", Some(2020), Some(40)));
1932 assert_eq!(show.episodes[321], Episode::new(15, 15, 10717918, "Gimme Shelter", Some(2020), Some(41)));
1933 assert_eq!(show.episodes[322], Episode::new(15, 16, 10717922, "Drag Me Away (From You)", Some(2020), Some(42)));
1934 assert_eq!(show.episodes[323], Episode::new(15, 17, 10717928, "Unity", Some(2020), Some(42)));
1935 assert_eq!(show.episodes[324], Episode::new(15, 18, 10717930, "Despair", Some(2020), Some(41)));
1936 assert_eq!(show.episodes[325], Episode::new(15, 19, 10717932, "Inherit the Earth", Some(2020), Some(42)));
1937 assert_eq!(show.episodes[326], Episode::new(15, 20, 10073984, "Carry On", Some(2020), Some(42)));
1938 }
1940 } #[tokio::test]
1943 async fn shows_multi() {
1944 let (_dir, mut client) = client().await;
1945
1946 for i in 0..2 {
1947 println!(">>> {}", i);
1948 let mut shows = client.get_shows_by_id(&[1758772, 898266, 1219024, u32::MAX]).await.unwrap();
1950 assert_eq!(shows.len(), 3);
1951 let mut show = shows.remove(&1758772).unwrap();
1952 show.episodes.sort_unstable();
1953 assert_eq!(show.imdb_id, 1758772);
1954 assert_eq!(show.title, "Switched at Birth");
1955 assert!(!show.is_adult);
1956 assert_eq!(show.start_year, 2011);
1957 assert_eq!(show.end_year, Some(2017));
1958 assert_eq!(show.runtime_minutes, Some(60));
1959 assert_eq!(show.genres, *[Drama, Family, Romance].as_ref());
1960 assert_eq!(show.episodes.len(), 104); assert_eq!(show.episodes[0], Episode::new(1, 1, 1953306, "This Is Not a Pipe", Some(2011), Some(46)));
1962 assert_eq!(show.episodes[1], Episode::new(1, 2, 1953299, "American Gothic", Some(2011), Some(41)));
1963 assert_eq!(show.episodes[2], Episode::new(1, 3, 1953304, "Portrait of My Father", Some(2011), Some(44)));
1964 assert_eq!(show.episodes[3], Episode::new(1, 4, 1953300, "Dance Amongst Daggers", Some(2011), Some(44)));
1965 assert_eq!(show.episodes[4], Episode::new(1, 5, 1953301, "Dogs Playing Poker", Some(2011), Some(45)));
1966 assert_eq!(show.episodes[5], Episode::new(1, 6, 1953305, "The Persistence of Memory", Some(2011), Some(44)));
1967 assert_eq!(show.episodes[6], Episode::new(1, 7, 1943479, "The Stag Hunt", Some(2011), Some(44)));
1968 assert_eq!(show.episodes[7], Episode::new(1, 8, 1953302, "Pandora\'s Box", Some(2011), Some(45)));
1969 assert_eq!(show.episodes[8], Episode::new(1, 9, 1953303, "Paradise Lost", Some(2011), Some(42)));
1970 assert_eq!(show.episodes[9], Episode::new(1, 10, 1953298, "The Homecoming", Some(2011), Some(43)));
1971 assert_eq!(show.episodes[10], Episode::new(1, 11, 2151279, "Starry Night", Some(2012), Some(41)));
1972 assert_eq!(show.episodes[11], Episode::new(1, 12, 2091111, "The Tempest", Some(2012), Some(41)));
1973 assert_eq!(show.episodes[12], Episode::new(1, 13, 2171455, "Self-Portrait with a Bandaged Ear", Some(2012), Some(42)));
1974 assert_eq!(show.episodes[13], Episode::new(1, 14, 2171457, "Les Soeurs D\'Estrees", Some(2012), Some(42)));
1975 assert_eq!(show.episodes[14], Episode::new(1, 15, 2171459, "Expulsion from the Garden of Eden", Some(2012), Some(41)));
1976 assert_eq!(show.episodes[15], Episode::new(1, 16, 2171461, "Las Dos Fridas", Some(2012), Some(41)));
1977 assert_eq!(show.episodes[16], Episode::new(1, 17, 2171463, "Protect Me from What I Want", Some(2012), Some(42)));
1978 assert_eq!(show.episodes[17], Episode::new(1, 18, 2149991, "The Art of Painting", Some(2012), Some(41)));
1979 assert_eq!(show.episodes[18], Episode::new(1, 19, 2247951, "Write a Lonely Soldier", Some(2012), Some(41)));
1980 assert_eq!(show.episodes[19], Episode::new(1, 20, 2260511, "Game On", Some(2012), Some(42)));
1981 assert_eq!(show.episodes[20], Episode::new(1, 21, 2280787, "The Sleep of Reason Produces Monsters", Some(2012), Some(42)));
1982 assert_eq!(show.episodes[21], Episode::new(1, 22, 2264233, "Venus, Cupid, Folly, and Time", Some(2012), Some(43)));
1983 assert_eq!(show.episodes[22], Episode::new(1, 23, 2380881, "This Is the Color of My Dreams", Some(2012), Some(42)));
1984 assert_eq!(show.episodes[23], Episode::new(1, 24, 2200422, "The Intruder", Some(2012), Some(42)));
1985 assert_eq!(show.episodes[24], Episode::new(1, 25, 2200424, "The Shock of Being Seen", Some(2012), Some(42)));
1986 assert_eq!(show.episodes[25], Episode::new(1, 26, 2200426, "Tree of Forgiveness", Some(2012), Some(42)));
1987 assert_eq!(show.episodes[26], Episode::new(1, 27, 2200428, "The Declaration of Independence", Some(2012), Some(41)));
1988 assert_eq!(show.episodes[27], Episode::new(1, 28, 2200432, "We Are the Kraken of Our Own Sinking Ships", Some(2012), Some(42)));
1989 assert_eq!(show.episodes[28], Episode::new(1, 29, 2200434, "The Trial", Some(2012), Some(42)));
1990 assert_eq!(show.episodes[29], Episode::new(1, 30, 2200436, "Street Noises Invade the House", Some(2012), Some(42)));
1991 assert_eq!(show.episodes[30], Episode::new(2, 0, 3097016, "Everyone Is Igual: Back for Season Two", Some(2013), None));
1992 assert_eq!(show.episodes[31], Episode::new(2, 1, 2341888, "The Door to Freedom", Some(2013), Some(44)));
1993 assert_eq!(show.episodes[32], Episode::new(2, 2, 2606760, "The Awakening Conscience", Some(2013), Some(44)));
1994 assert_eq!(show.episodes[33], Episode::new(2, 3, 2621604, "Duel Between Two Women", Some(2013), Some(44)));
1995 assert_eq!(show.episodes[34], Episode::new(2, 4, 2549168, "Dressing for the Charade", Some(2013), Some(41)));
1996 assert_eq!(show.episodes[35], Episode::new(2, 5, 2650888, "The Acquired Inability to Escape", Some(2013), Some(41)));
1997 assert_eq!(show.episodes[36], Episode::new(2, 6, 2662256, "Human/Need/Desire", Some(2013), Some(41)));
1998 assert_eq!(show.episodes[37], Episode::new(2, 7, 2679928, "Drive in the Knife", Some(2013), Some(41)));
1999 assert_eq!(show.episodes[38], Episode::new(2, 8, 2707026, "Tight Rope Walker", Some(2013), Some(44)));
2000 assert_eq!(show.episodes[39], Episode::new(2, 9, 2721120, "Uprising", Some(2013), Some(44)));
2001 assert_eq!(show.episodes[40], Episode::new(2, 10, 2711310, "Introducing the Miracle", Some(2013), Some(44)));
2002 assert_eq!(show.episodes[41], Episode::new(2, 11, 2767620, "Mother and Child Divided", Some(2013), Some(44)));
2003 assert_eq!(show.episodes[42], Episode::new(2, 12, 2990394, "Distorted House", Some(2013), Some(43)));
2004 assert_eq!(show.episodes[43], Episode::new(2, 13, 2976830, "The Good Samaritan", Some(2013), Some(44)));
2005 assert_eq!(show.episodes[44], Episode::new(2, 14, 2893496, "He Did What He Wanted", Some(2013), Some(44)));
2006 assert_eq!(show.episodes[45], Episode::new(2, 15, 3007628, "Ecce Mono", Some(2013), Some(41)));
2007 assert_eq!(show.episodes[46], Episode::new(2, 16, 2982932, "The Physical Impossibility of Death in the Mind of Someone Living", Some(2013), Some(44)));
2008 assert_eq!(show.episodes[47], Episode::new(2, 17, 2958864, "Prudence, Avarice, Lust, Justice, Anger", Some(2013), Some(41)));
2009 assert_eq!(show.episodes[48], Episode::new(2, 18, 2982938, "As the Shadows Deepen", Some(2013), Some(44)));
2010 assert_eq!(show.episodes[49], Episode::new(2, 19, 2993418, "What Goes Up Must Come Down", Some(2013), Some(41)));
2011 assert_eq!(show.episodes[50], Episode::new(2, 20, 3007632, "The Merrymakers", Some(2013), Some(41)));
2012 assert_eq!(show.episodes[51], Episode::new(2, 21, 3043554, "Departure of Summer", Some(2013), Some(41)));
2013 assert_eq!(show.episodes[52], Episode::new(3, 1, 3090846, "Drowning Girl", Some(2014), Some(42)));
2014 assert_eq!(show.episodes[53], Episode::new(3, 2, 3315432, "Your Body Is a Battleground", Some(2014), Some(42)));
2015 assert_eq!(show.episodes[54], Episode::new(3, 3, 3315446, "Fountain", Some(2014), Some(40)));
2016 assert_eq!(show.episodes[55], Episode::new(3, 4, 3315456, "It Hurts to Wait with Love If Love Is Somewhere Else", Some(2014), Some(42)));
2017 assert_eq!(show.episodes[56], Episode::new(3, 5, 3356216, "Have You Really the Courage?", Some(2014), Some(41)));
2018 assert_eq!(show.episodes[57], Episode::new(3, 6, 3362000, "The Scream", Some(2014), Some(42)));
2019 assert_eq!(show.episodes[58], Episode::new(3, 7, 3450960, "Memory Is Your Image of Perfection", Some(2014), Some(41)));
2020 assert_eq!(show.episodes[59], Episode::new(3, 8, 3455710, "Dance Me to the End of Love", Some(2014), Some(41)));
2021 assert_eq!(show.episodes[60], Episode::new(3, 9, 3455716, "The Past (Forgotten-Swallowed)", Some(2014), Some(42)));
2022 assert_eq!(show.episodes[61], Episode::new(3, 10, 3527802, "The Ambush", Some(2014), Some(42)));
2023 assert_eq!(show.episodes[62], Episode::new(3, 11, 3527804, "Love Seduces Innocence, Pleasure Entraps, and Remorse Follows", Some(2014), Some(40)));
2024 assert_eq!(show.episodes[63], Episode::new(3, 12, 3589492, "Love Among the Ruins", Some(2014), Some(42)));
2025 assert_eq!(show.episodes[64], Episode::new(3, 13, 3588558, "Like a Snowball Down a Mountain", Some(2014), Some(43)));
2026 assert_eq!(show.episodes[65], Episode::new(3, 14, 3588556, "Oh, Future!", Some(2014), Some(43)));
2027 assert_eq!(show.episodes[66], Episode::new(3, 15, 3588560, "And We Bring the Light", Some(2014), Some(43)));
2028 assert_eq!(show.episodes[67], Episode::new(3, 16, 3727770, "The Image Disappears", Some(2014), Some(42)));
2029 assert_eq!(show.episodes[68], Episode::new(3, 17, 3746404, "Girl with Death Mask (She Plays Alone)", Some(2014), Some(43)));
2030 assert_eq!(show.episodes[69], Episode::new(3, 18, 3761286, "It Isn\'t What You Think", Some(2014), Some(43)));
2031 assert_eq!(show.episodes[70], Episode::new(3, 19, 3790258, "You Will Not Escape", Some(2014), Some(43)));
2032 assert_eq!(show.episodes[71], Episode::new(3, 20, 3854428, "The Girl on the Cliff", Some(2014), Some(43)));
2033 assert_eq!(show.episodes[72], Episode::new(3, 21, 3827664, "And Life Begins Right Away", Some(2014), Some(43)));
2034 assert_eq!(show.episodes[73], Episode::new(3, 22, 4229352, "Yuletide Fortune Tellers", Some(2014), Some(43)));
2035 assert_eq!(show.episodes[74], Episode::new(4, 1, 3955204, "And It Cannot Be Changed", Some(2015), Some(43)));
2036 assert_eq!(show.episodes[75], Episode::new(4, 2, 4162854, "Bracing the Waves", Some(2015), Some(42)));
2037 assert_eq!(show.episodes[76], Episode::new(4, 3, 4191406, "I Lock the Door Upon Myself", Some(2015), Some(43)));
2038 assert_eq!(show.episodes[77], Episode::new(4, 4, 4227422, "We Were So Close That Nothing Use to Stand Between Us", Some(2015), Some(43)));
2039 assert_eq!(show.episodes[78], Episode::new(4, 5, 4227434, "At the First Clear Word", Some(2015), Some(43)));
2040 assert_eq!(show.episodes[79], Episode::new(4, 6, 4227442, "Black and Gray", Some(2015), Some(43)));
2041 assert_eq!(show.episodes[80], Episode::new(4, 7, 4273050, "Fog and Storm and Rain", Some(2015), Some(43)));
2042 assert_eq!(show.episodes[81], Episode::new(4, 8, 4286688, "Art Like Love Is Dedication", Some(2015), Some(43)));
2043 assert_eq!(show.episodes[82], Episode::new(4, 9, 4351374, "The Player\'s Choice", Some(2015), Some(43)));
2044 assert_eq!(show.episodes[83], Episode::new(4, 10, 4371268, "There Is My Heart", Some(2015), Some(43)));
2045 assert_eq!(show.episodes[84], Episode::new(4, 11, 4520968, "To Repel Ghosts", Some(2015), Some(43)));
2046 assert_eq!(show.episodes[85], Episode::new(4, 12, 4608606, "How Does a Girl Like You Get to Be a Girl Like You", Some(2015), Some(43)));
2047 assert_eq!(show.episodes[86], Episode::new(4, 13, 4644262, "Between Hope and Fear", Some(2015), Some(43)));
2048 assert_eq!(show.episodes[87], Episode::new(4, 14, 4667606, "We Mourn, We Weep, We Love Again", Some(2015), Some(42)));
2049 assert_eq!(show.episodes[88], Episode::new(4, 15, 4696414, "Instead of Damning the Darkness, It\'s Better to Light a Little Lantern", Some(2015), Some(43)));
2050 assert_eq!(show.episodes[89], Episode::new(4, 16, 4715596, "Borrowing Your Enemy\'s Arrows", Some(2015), Some(43)));
2051 assert_eq!(show.episodes[90], Episode::new(4, 17, 4732618, "To the Victor Belong the Spoils", Some(2015), Some(43)));
2052 assert_eq!(show.episodes[91], Episode::new(4, 18, 4758690, "The Accommodations of Desire", Some(2015), Some(43)));
2053 assert_eq!(show.episodes[92], Episode::new(4, 19, 4762322, "A Mad Tea Party", Some(2015), Some(43)));
2054 assert_eq!(show.episodes[93], Episode::new(4, 20, 4841860, "And Always Searching for Beauty", Some(2015), Some(42)));
2055 assert_eq!(show.episodes[94], Episode::new(5, 1, 5155250, "The Call", Some(2017), Some(42)));
2056 assert_eq!(show.episodes[95], Episode::new(5, 2, 5360258, "This Has to Do with Me", Some(2017), Some(42)));
2057 assert_eq!(show.episodes[96], Episode::new(5, 3, 5360266, "Surprise", Some(2017), Some(42)));
2058 assert_eq!(show.episodes[97], Episode::new(5, 4, 5379234, "Relation of Lines and Colors", Some(2017), Some(42)));
2059 assert_eq!(show.episodes[98], Episode::new(5, 5, 5512250, "Occupy Truth", Some(2017), Some(42)));
2060 assert_eq!(show.episodes[99], Episode::new(5, 6, 5509956, "Four Ages in Life", Some(2017), Some(42)));
2061 assert_eq!(show.episodes[100], Episode::new(5, 7, 5519592, "Memory (The Heart)", Some(2017), Some(42)));
2062 assert_eq!(show.episodes[101], Episode::new(5, 8, 5541716, "Left in Charge", Some(2017), Some(42)));
2063 assert_eq!(show.episodes[102], Episode::new(5, 9, 5541722, "The Wolf Is Waiting", Some(2017), Some(42)));
2064 assert_eq!(show.episodes[103], Episode::new(5, 10, 6762660, "Long Live Love", Some(2017), Some(63)));
2065 let mut show = shows.remove(&898266).unwrap();
2068 show.episodes.sort_unstable();
2069 assert_eq!(show.imdb_id, 898266);
2070 assert_eq!(show.title, "The Big Bang Theory");
2071 assert!(!show.is_adult);
2072 assert_eq!(show.start_year, 2007);
2073 assert_eq!(show.end_year, Some(2019));
2074 assert_eq!(show.runtime_minutes, Some(22));
2075 assert_eq!(show.genres, *[Comedy, Romance].as_ref());
2076 assert_eq!(show.episodes.len(), 279); assert_eq!(show.episodes[0], Episode::new(1, 1, 775431, "Pilot", Some(2007), Some(23)));
2078 assert_eq!(show.episodes[1], Episode::new(1, 2, 1091289, "The Big Bran Hypothesis", Some(2007), Some(21)));
2079 assert_eq!(show.episodes[2], Episode::new(1, 3, 1091290, "The Fuzzy Boots Corollary", Some(2007), Some(22)));
2080 assert_eq!(show.episodes[3], Episode::new(1, 4, 1091291, "The Luminous Fish Effect", Some(2007), Some(21)));
2081 assert_eq!(show.episodes[4], Episode::new(1, 5, 1091292, "The Hamburger Postulate", Some(2007), Some(21)));
2082 assert_eq!(show.episodes[5], Episode::new(1, 6, 1091293, "The Middle Earth Paradigm", Some(2007), Some(21)));
2083 assert_eq!(show.episodes[6], Episode::new(1, 7, 1136041, "The Dumpling Paradox", Some(2007), Some(21)));
2084 assert_eq!(show.episodes[7], Episode::new(1, 8, 1127389, "The Grasshopper Experiment", Some(2007), Some(21)));
2085 assert_eq!(show.episodes[8], Episode::new(1, 9, 1127390, "The Cooper-Hofstadter Polarization", Some(2008), Some(20)));
2086 assert_eq!(show.episodes[9], Episode::new(1, 10, 1127384, "The Loobenfeld Decay", Some(2008), Some(21)));
2087 assert_eq!(show.episodes[10], Episode::new(1, 11, 1127385, "The Pancake Batter Anomaly", Some(2008), Some(22)));
2088 assert_eq!(show.episodes[11], Episode::new(1, 12, 1127386, "The Jerusalem Duality", Some(2008), Some(20)));
2089 assert_eq!(show.episodes[12], Episode::new(1, 13, 1127387, "The Bat Jar Conjecture", Some(2008), Some(22)));
2090 assert_eq!(show.episodes[13], Episode::new(1, 14, 1127905, "The Nerdvana Annihilation", Some(2008), Some(20)));
2091 assert_eq!(show.episodes[14], Episode::new(1, 15, 1127906, "The Pork Chop Indeterminacy", Some(2008), Some(22)));
2092 assert_eq!(show.episodes[15], Episode::new(1, 16, 1127907, "The Peanut Reaction", Some(2008), Some(20)));
2093 assert_eq!(show.episodes[16], Episode::new(1, 17, 1127908, "The Tangerine Factor", Some(2008), Some(20)));
2094 assert_eq!(show.episodes[17], Episode::new(2, 1, 1256599, "The Bad Fish Paradigm", Some(2008), Some(22)));
2095 assert_eq!(show.episodes[18], Episode::new(2, 2, 1256030, "The Codpiece Topology", Some(2008), Some(21)));
2096 assert_eq!(show.episodes[19], Episode::new(2, 3, 1256034, "The Barbarian Sublimation", Some(2008), Some(21)));
2097 assert_eq!(show.episodes[20], Episode::new(2, 4, 1256035, "The Griffin Equivalency", Some(2008), Some(21)));
2098 assert_eq!(show.episodes[21], Episode::new(2, 5, 1256036, "The Euclid Alternative", Some(2008), Some(20)));
2099 assert_eq!(show.episodes[22], Episode::new(2, 6, 1256037, "The Cooper-Nowitzki Theorem", Some(2008), Some(21)));
2100 assert_eq!(show.episodes[23], Episode::new(2, 7, 1256038, "The Panty Piñata Polarization", Some(2008), Some(21)));
2101 assert_eq!(show.episodes[24], Episode::new(2, 8, 1256039, "The Lizard-Spock Expansion", Some(2008), Some(20)));
2102 assert_eq!(show.episodes[25], Episode::new(2, 9, 1256040, "The White Asparagus Triangulation", Some(2008), Some(21)));
2103 assert_eq!(show.episodes[26], Episode::new(2, 10, 1256020, "The Vartabedian Conundrum", Some(2008), Some(21)));
2104 assert_eq!(show.episodes[27], Episode::new(2, 11, 1256021, "The Bath Item Gift Hypothesis", Some(2008), Some(21)));
2105 assert_eq!(show.episodes[28], Episode::new(2, 12, 1256022, "The Killer Robot Instability", Some(2009), Some(21)));
2106 assert_eq!(show.episodes[29], Episode::new(2, 13, 1256023, "The Friendship Algorithm", Some(2009), Some(21)));
2107 assert_eq!(show.episodes[30], Episode::new(2, 14, 1256024, "The Financial Permeability", Some(2009), Some(21)));
2108 assert_eq!(show.episodes[31], Episode::new(2, 15, 1256025, "The Maternal Capacitance", Some(2009), Some(21)));
2109 assert_eq!(show.episodes[32], Episode::new(2, 16, 1256026, "The Cushion Saturation", Some(2009), Some(21)));
2110 assert_eq!(show.episodes[33], Episode::new(2, 17, 1256027, "The Terminator Decoupling", Some(2009), Some(21)));
2111 assert_eq!(show.episodes[34], Episode::new(2, 18, 1256028, "The Work Song Nanocluster", Some(2009), Some(20)));
2112 assert_eq!(show.episodes[35], Episode::new(2, 19, 1256029, "The Dead Hooker Juxtaposition", Some(2009), Some(21)));
2113 assert_eq!(show.episodes[36], Episode::new(2, 20, 1256031, "The Hofstadter Isotope", Some(2009), Some(20)));
2114 assert_eq!(show.episodes[37], Episode::new(2, 21, 1256032, "The Vegas Renormalization", Some(2009), Some(21)));
2115 assert_eq!(show.episodes[38], Episode::new(2, 22, 1256033, "The Classified Materials Turbulence", Some(2009), Some(19)));
2116 assert_eq!(show.episodes[39], Episode::new(2, 23, 1426233, "The Monopolar Expedition", Some(2009), Some(21)));
2117 assert_eq!(show.episodes[40], Episode::new(3, 1, 1487706, "The Electric Can Opener Fluctuation", Some(2009), Some(21)));
2118 assert_eq!(show.episodes[41], Episode::new(3, 2, 1495238, "The Jiminy Conjecture", Some(2009), Some(21)));
2119 assert_eq!(show.episodes[42], Episode::new(3, 3, 1494210, "The Gothowitz Deviation", Some(2009), Some(20)));
2120 assert_eq!(show.episodes[43], Episode::new(3, 4, 1523181, "The Pirate Solution", Some(2009), Some(30)));
2121 assert_eq!(show.episodes[44], Episode::new(3, 5, 1528188, "The Creepy Candy Coating Corollary", Some(2009), Some(20)));
2122 assert_eq!(show.episodes[45], Episode::new(3, 6, 1523180, "The Cornhusker Vortex", Some(2009), Some(20)));
2123 assert_eq!(show.episodes[46], Episode::new(3, 7, 1535334, "The Guitarist Amplification", Some(2009), Some(20)));
2124 assert_eq!(show.episodes[47], Episode::new(3, 8, 1536922, "The Adhesive Duck Deficiency", Some(2009), Some(21)));
2125 assert_eq!(show.episodes[48], Episode::new(3, 9, 1544819, "The Vengeance Formulation", Some(2009), Some(19)));
2126 assert_eq!(show.episodes[49], Episode::new(3, 10, 1558529, "The Gorilla Experiment", Some(2009), Some(21)));
2127 assert_eq!(show.episodes[50], Episode::new(3, 11, 1558530, "The Maternal Congruence", Some(2009), Some(20)));
2128 assert_eq!(show.episodes[51], Episode::new(3, 12, 1567073, "The Psychic Vortex", Some(2010), Some(20)));
2129 assert_eq!(show.episodes[52], Episode::new(3, 13, 1570312, "The Bozeman Reaction", Some(2010), Some(20)));
2130 assert_eq!(show.episodes[53], Episode::new(3, 14, 1588684, "The Einstein Approximation", Some(2010), Some(20)));
2131 assert_eq!(show.episodes[54], Episode::new(3, 15, 1589887, "The Large Hadron Collision", Some(2010), Some(21)));
2132 assert_eq!(show.episodes[55], Episode::new(3, 16, 1592080, "The Excelsior Acquisition", Some(2010), Some(21)));
2133 assert_eq!(show.episodes[56], Episode::new(3, 17, 1607974, "The Precious Fragmentation", Some(2010), Some(20)));
2134 assert_eq!(show.episodes[57], Episode::new(3, 18, 1609715, "The Pants Alternative", Some(2010), Some(21)));
2135 assert_eq!(show.episodes[58], Episode::new(3, 19, 1609410, "The Wheaton Recurrence", Some(2010), Some(21)));
2136 assert_eq!(show.episodes[59], Episode::new(3, 20, 1628617, "The Spaghetti Catalyst", Some(2010), Some(20)));
2137 assert_eq!(show.episodes[60], Episode::new(3, 21, 1648755, "The Plimpton Stimulation", Some(2010), Some(21)));
2138 assert_eq!(show.episodes[61], Episode::new(3, 22, 1648756, "The Staircase Implementation", Some(2010), Some(20)));
2139 assert_eq!(show.episodes[62], Episode::new(3, 23, 1627740, "The Lunar Excitation", Some(2010), Some(20)));
2140 assert_eq!(show.episodes[63], Episode::new(4, 1, 1632224, "The Robotic Manipulation", Some(2010), Some(21)));
2141 assert_eq!(show.episodes[64], Episode::new(4, 2, 1632235, "The Cruciferous Vegetable Amplification", Some(2010), Some(21)));
2142 assert_eq!(show.episodes[65], Episode::new(4, 3, 1632240, "The Zazzy Substitution", Some(2010), Some(21)));
2143 assert_eq!(show.episodes[66], Episode::new(4, 4, 1632241, "The Hot Troll Deviation", Some(2010), Some(20)));
2144 assert_eq!(show.episodes[67], Episode::new(4, 5, 1632242, "The Desperation Emanation", Some(2010), Some(21)));
2145 assert_eq!(show.episodes[68], Episode::new(4, 6, 1632243, "The Irish Pub Formulation", Some(2010), Some(25)));
2146 assert_eq!(show.episodes[69], Episode::new(4, 7, 1632244, "The Apology Insufficiency", Some(2010), Some(21)));
2147 assert_eq!(show.episodes[70], Episode::new(4, 8, 1632245, "The 21-Second Excitation", Some(2010), Some(19)));
2148 assert_eq!(show.episodes[71], Episode::new(4, 9, 1632246, "The Boyfriend Complexity", Some(2010), Some(21)));
2149 assert_eq!(show.episodes[72], Episode::new(4, 10, 1632225, "The Alien Parasite Hypothesis", Some(2010), Some(20)));
2150 assert_eq!(show.episodes[73], Episode::new(4, 11, 1632226, "The Justice League Recombination", Some(2010), Some(20)));
2151 assert_eq!(show.episodes[74], Episode::new(4, 12, 1632227, "The Bus Pants Utilization", Some(2011), Some(21)));
2152 assert_eq!(show.episodes[75], Episode::new(4, 13, 1632228, "The Love Car Displacement", Some(2011), Some(21)));
2153 assert_eq!(show.episodes[76], Episode::new(4, 14, 1632229, "The Thespian Catalyst", Some(2011), Some(21)));
2154 assert_eq!(show.episodes[77], Episode::new(4, 15, 1632230, "The Benefactor Factor", Some(2011), Some(20)));
2155 assert_eq!(show.episodes[78], Episode::new(4, 16, 1632231, "The Cohabitation Formulation", Some(2011), Some(21)));
2156 assert_eq!(show.episodes[79], Episode::new(4, 17, 1632232, "The Toast Derivation", Some(2011), Some(22)));
2157 assert_eq!(show.episodes[80], Episode::new(4, 18, 1632233, "The Prestidigitation Approximation", Some(2011), Some(21)));
2158 assert_eq!(show.episodes[81], Episode::new(4, 19, 1632234, "The Zarnecki Incursion", Some(2011), Some(23)));
2159 assert_eq!(show.episodes[82], Episode::new(4, 20, 1632236, "The Herb Garden Germination", Some(2011), Some(21)));
2160 assert_eq!(show.episodes[83], Episode::new(4, 21, 1632237, "The Agreement Dissection", Some(2011), Some(21)));
2161 assert_eq!(show.episodes[84], Episode::new(4, 22, 1632238, "The Wildebeest Implementation", Some(2011), Some(21)));
2162 assert_eq!(show.episodes[85], Episode::new(4, 23, 1632239, "The Engagement Reaction", Some(2011), Some(20)));
2163 assert_eq!(show.episodes[86], Episode::new(4, 24, 1918407, "The Roommate Transmogrification", Some(2011), Some(22)));
2164 assert_eq!(show.episodes[87], Episode::new(5, 1, 1980710, "The Skank Reflex Analysis", Some(2011), Some(22)));
2165 assert_eq!(show.episodes[88], Episode::new(5, 2, 2033019, "The Infestation Hypothesis", Some(2011), Some(20)));
2166 assert_eq!(show.episodes[89], Episode::new(5, 3, 2057241, "The Pulled Groin Extrapolation", Some(2011), Some(20)));
2167 assert_eq!(show.episodes[90], Episode::new(5, 4, 2058495, "The Wiggly Finger Catalyst", Some(2011), Some(20)));
2168 assert_eq!(show.episodes[91], Episode::new(5, 5, 2063481, "The Russian Rocket Reaction", Some(2011), Some(22)));
2169 assert_eq!(show.episodes[92], Episode::new(5, 6, 2079337, "The Rhinitis Revelation", Some(2011), Some(22)));
2170 assert_eq!(show.episodes[93], Episode::new(5, 7, 2082016, "The Good Guy Fluctuation", Some(2011), Some(20)));
2171 assert_eq!(show.episodes[94], Episode::new(5, 8, 2092310, "The Isolation Permutation", Some(2011), Some(21)));
2172 assert_eq!(show.episodes[95], Episode::new(5, 9, 2100287, "The Ornithophobia Diffusion", Some(2011), Some(21)));
2173 assert_eq!(show.episodes[96], Episode::new(5, 10, 2105978, "The Flaming Spittoon Acquisition", Some(2011), Some(21)));
2174 assert_eq!(show.episodes[97], Episode::new(5, 11, 2119890, "The Speckerman Recurrence", Some(2011), Some(20)));
2175 assert_eq!(show.episodes[98], Episode::new(5, 12, 2136314, "The Shiny Trinket Maneuver", Some(2012), Some(21)));
2176 assert_eq!(show.episodes[99], Episode::new(5, 13, 2139151, "The Recombination Hypothesis", Some(2012), Some(21)));
2177 assert_eq!(show.episodes[100], Episode::new(5, 14, 2181587, "The Beta Test Initiation", Some(2012), Some(21)));
2178 assert_eq!(show.episodes[101], Episode::new(5, 15, 2192687, "The Friendship Contraction", Some(2012), Some(21)));
2179 assert_eq!(show.episodes[102], Episode::new(5, 16, 2209665, "The Vacation Solution", Some(2012), Some(22)));
2180 assert_eq!(show.episodes[103], Episode::new(5, 17, 2220955, "The Rothman Disintegration", Some(2012), Some(21)));
2181 assert_eq!(show.episodes[104], Episode::new(5, 18, 2238153, "The Werewolf Transformation", Some(2012), Some(21)));
2182 assert_eq!(show.episodes[105], Episode::new(5, 19, 2275203, "The Weekend Vortex", Some(2012), Some(20)));
2183 assert_eq!(show.episodes[106], Episode::new(5, 20, 2275201, "The Transporter Malfunction", Some(2012), Some(21)));
2184 assert_eq!(show.episodes[107], Episode::new(5, 21, 2300453, "The Hawking Excitation", Some(2012), Some(19)));
2185 assert_eq!(show.episodes[108], Episode::new(5, 22, 2332311, "The Stag Convergence", Some(2012), Some(21)));
2186 assert_eq!(show.episodes[109], Episode::new(5, 23, 2372043, "The Launch Acceleration", Some(2012), Some(21)));
2187 assert_eq!(show.episodes[110], Episode::new(5, 24, 2379487, "The Countdown Reflection", Some(2012), Some(21)));
2188 assert_eq!(show.episodes[111], Episode::new(6, 1, 2194640, "The Date Night Variable", Some(2012), Some(21)));
2189 assert_eq!(show.episodes[112], Episode::new(6, 2, 2392630, "The Decoupling Fluctuation", Some(2012), Some(22)));
2190 assert_eq!(show.episodes[113], Episode::new(6, 3, 2378184, "The Higgs Boson Observation", Some(2012), Some(19)));
2191 assert_eq!(show.episodes[114], Episode::new(6, 4, 2411550, "The Re-Entry Minimization", Some(2012), Some(21)));
2192 assert_eq!(show.episodes[115], Episode::new(6, 5, 2411582, "The Holographic Excitation", Some(2012), Some(21)));
2193 assert_eq!(show.episodes[116], Episode::new(6, 6, 2450064, "The Extract Obliteration", Some(2012), Some(21)));
2194 assert_eq!(show.episodes[117], Episode::new(6, 7, 2462410, "The Habitation Configuration", Some(2012), Some(21)));
2195 assert_eq!(show.episodes[118], Episode::new(6, 8, 2502436, "The 43 Peculiarity", Some(2012), Some(21)));
2196 assert_eq!(show.episodes[119], Episode::new(6, 9, 2505340, "The Parking Spot Escalation", Some(2012), Some(20)));
2197 assert_eq!(show.episodes[120], Episode::new(6, 10, 2523744, "The Fish Guts Displacement", Some(2012), Some(22)));
2198 assert_eq!(show.episodes[121], Episode::new(6, 11, 2559784, "The Santa Simulation", Some(2012), Some(21)));
2199 assert_eq!(show.episodes[122], Episode::new(6, 12, 2571320, "The Egg Salad Equivalency", Some(2013), Some(21)));
2200 assert_eq!(show.episodes[123], Episode::new(6, 13, 2582488, "The Bakersfield Expedition", Some(2013), Some(21)));
2201 assert_eq!(show.episodes[124], Episode::new(6, 14, 2636834, "The Cooper/Kripke Inversion", Some(2013), Some(20)));
2202 assert_eq!(show.episodes[125], Episode::new(6, 15, 2633894, "The Spoiler Alert Segmentation", Some(2013), Some(21)));
2203 assert_eq!(show.episodes[126], Episode::new(6, 16, 2668846, "The Tangible Affection Proof", Some(2013), Some(21)));
2204 assert_eq!(show.episodes[127], Episode::new(6, 17, 2697398, "The Monster Isolation", Some(2013), Some(20)));
2205 assert_eq!(show.episodes[128], Episode::new(6, 18, 2708314, "The Contractual Obligation Implementation", Some(2013), Some(20)));
2206 assert_eq!(show.episodes[129], Episode::new(6, 19, 2739286, "The Closet Reconfiguration", Some(2013), Some(20)));
2207 assert_eq!(show.episodes[130], Episode::new(6, 20, 2784494, "The Tenure Turbulence", Some(2013), Some(20)));
2208 assert_eq!(show.episodes[131], Episode::new(6, 21, 2833366, "The Closure Alternative", Some(2013), Some(20)));
2209 assert_eq!(show.episodes[132], Episode::new(6, 22, 2833352, "The Proton Resurgence", Some(2013), Some(21)));
2210 assert_eq!(show.episodes[133], Episode::new(6, 23, 2852720, "The Love Spell Potential", Some(2013), Some(21)));
2211 assert_eq!(show.episodes[134], Episode::new(6, 24, 2891288, "The Bon Voyage Reaction", Some(2013), Some(20)));
2212 assert_eq!(show.episodes[135], Episode::new(7, 1, 3111660, "The Hofstadter Insufficiency", Some(2013), Some(21)));
2213 assert_eq!(show.episodes[136], Episode::new(7, 2, 2933998, "The Deception Verification", Some(2013), Some(21)));
2214 assert_eq!(show.episodes[137], Episode::new(7, 3, 3218670, "The Scavenger Vortex", Some(2013), Some(21)));
2215 assert_eq!(show.episodes[138], Episode::new(7, 4, 3221722, "The Raiders Minimization", Some(2013), Some(21)));
2216 assert_eq!(show.episodes[139], Episode::new(7, 5, 3229392, "The Workplace Proximity", Some(2013), Some(19)));
2217 assert_eq!(show.episodes[140], Episode::new(7, 6, 3229394, "The Romance Resonance", Some(2013), Some(21)));
2218 assert_eq!(show.episodes[141], Episode::new(7, 7, 3229396, "The Proton Displacement", Some(2013), Some(20)));
2219 assert_eq!(show.episodes[142], Episode::new(7, 8, 3303726, "The Itchy Brain Simulation", Some(2013), Some(21)));
2220 assert_eq!(show.episodes[143], Episode::new(7, 9, 3309570, "The Thanksgiving Decoupling", Some(2013), Some(20)));
2221 assert_eq!(show.episodes[144], Episode::new(7, 10, 3338358, "The Discovery Dissipation", Some(2013), Some(20)));
2222 assert_eq!(show.episodes[145], Episode::new(7, 11, 3337724, "The Cooper Extraction", Some(2013), Some(21)));
2223 assert_eq!(show.episodes[146], Episode::new(7, 12, 3337728, "The Hesitation Ramification", Some(2014), Some(21)));
2224 assert_eq!(show.episodes[147], Episode::new(7, 13, 3337730, "The Occupation Recalibration", Some(2014), Some(21)));
2225 assert_eq!(show.episodes[148], Episode::new(7, 14, 3453320, "The Convention Conundrum", Some(2014), Some(21)));
2226 assert_eq!(show.episodes[149], Episode::new(7, 15, 3477310, "The Locomotive Manipulation", Some(2014), Some(20)));
2227 assert_eq!(show.episodes[150], Episode::new(7, 16, 3507240, "The Table Polarization", Some(2014), Some(20)));
2228 assert_eq!(show.episodes[151], Episode::new(7, 17, 3521962, "The Friendship Turbulence", Some(2014), Some(20)));
2229 assert_eq!(show.episodes[152], Episode::new(7, 18, 3517894, "The Mommy Observation", Some(2014), Some(21)));
2230 assert_eq!(show.episodes[153], Episode::new(7, 19, 3521964, "The Indecision Amalgamation", Some(2014), Some(19)));
2231 assert_eq!(show.episodes[154], Episode::new(7, 20, 3554854, "The Relationship Diremption", Some(2014), Some(21)));
2232 assert_eq!(show.episodes[155], Episode::new(7, 21, 3572170, "The Anything Can Happen Recurrence", Some(2014), Some(19)));
2233 assert_eq!(show.episodes[156], Episode::new(7, 22, 3572176, "The Proton Transmogrification", Some(2014), Some(21)));
2234 assert_eq!(show.episodes[157], Episode::new(7, 23, 3572182, "The Gorilla Dissolution", Some(2014), Some(19)));
2235 assert_eq!(show.episodes[158], Episode::new(7, 24, 3572184, "The Status Quo Combustion", Some(2014), Some(21)));
2236 assert_eq!(show.episodes[159], Episode::new(8, 1, 3596130, "The Locomotion Interruption", Some(2014), Some(21)));
2237 assert_eq!(show.episodes[160], Episode::new(8, 2, 3807172, "The Junior Professor Solution", Some(2014), Some(20)));
2238 assert_eq!(show.episodes[161], Episode::new(8, 3, 3811812, "The First Pitch Insufficiency", Some(2014), Some(19)));
2239 assert_eq!(show.episodes[162], Episode::new(8, 4, 3811814, "The Hook-up Reverberation", Some(2014), Some(19)));
2240 assert_eq!(show.episodes[163], Episode::new(8, 5, 3811816, "The Focus Attenuation", Some(2014), Some(19)));
2241 assert_eq!(show.episodes[164], Episode::new(8, 6, 3823240, "The Expedition Approximation", Some(2014), Some(21)));
2242 assert_eq!(show.episodes[165], Episode::new(8, 7, 3823244, "The Misinterpretation Agitation", Some(2014), Some(20)));
2243 assert_eq!(show.episodes[166], Episode::new(8, 8, 3823242, "The Prom Equivalency", Some(2014), Some(20)));
2244 assert_eq!(show.episodes[167], Episode::new(8, 9, 3823248, "The Septum Deviation", Some(2014), Some(20)));
2245 assert_eq!(show.episodes[168], Episode::new(8, 10, 3823250, "The Champagne Reflection", Some(2014), Some(19)));
2246 assert_eq!(show.episodes[169], Episode::new(8, 11, 3823252, "The Clean Room Infiltration", Some(2014), Some(19)));
2247 assert_eq!(show.episodes[170], Episode::new(8, 12, 3823254, "The Space Probe Disintegration", Some(2015), Some(20)));
2248 assert_eq!(show.episodes[171], Episode::new(8, 13, 3862708, "The Anxiety Optimization", Some(2015), Some(20)));
2249 assert_eq!(show.episodes[172], Episode::new(8, 14, 3862712, "The Troll Manifestation", Some(2015), Some(21)));
2250 assert_eq!(show.episodes[173], Episode::new(8, 15, 3862710, "The Comic Book Store Regeneration", Some(2015), Some(20)));
2251 assert_eq!(show.episodes[174], Episode::new(8, 16, 3862714, "The Intimacy Acceleration", Some(2015), Some(20)));
2252 assert_eq!(show.episodes[175], Episode::new(8, 17, 3862720, "The Colonization Application", Some(2015), Some(20)));
2253 assert_eq!(show.episodes[176], Episode::new(8, 18, 3862722, "The Leftover Thermalization", Some(2015), Some(19)));
2254 assert_eq!(show.episodes[177], Episode::new(8, 19, 3862724, "The Skywalker Incursion", Some(2015), Some(21)));
2255 assert_eq!(show.episodes[178], Episode::new(8, 20, 3862726, "The Fortification Implementation", Some(2015), Some(20)));
2256 assert_eq!(show.episodes[179], Episode::new(8, 21, 3862728, "The Communication Deterioration", Some(2015), Some(19)));
2257 assert_eq!(show.episodes[180], Episode::new(8, 22, 3862732, "The Graduation Transmission", Some(2015), Some(19)));
2258 assert_eq!(show.episodes[181], Episode::new(8, 23, 3862734, "The Maternal Combustion", Some(2015), Some(19)));
2259 assert_eq!(show.episodes[182], Episode::new(8, 24, 3862738, "The Commitment Determination", Some(2015), Some(20)));
2260 assert_eq!(show.episodes[183], Episode::new(9, 1, 3603346, "The Matrimonial Momentum", Some(2015), Some(20)));
2261 assert_eq!(show.episodes[184], Episode::new(9, 2, 4938690, "The Separation Oscillation", Some(2015), Some(19)));
2262 assert_eq!(show.episodes[185], Episode::new(9, 3, 4962326, "The Bachelor Party Corrosion", Some(2015), Some(20)));
2263 assert_eq!(show.episodes[186], Episode::new(9, 4, 4995126, "The 2003 Approximation", Some(2015), Some(19)));
2264 assert_eq!(show.episodes[187], Episode::new(9, 5, 5027380, "The Perspiration Implementation", Some(2015), Some(19)));
2265 assert_eq!(show.episodes[188], Episode::new(9, 6, 5090816, "The Helium Insufficiency", Some(2015), Some(19)));
2266 assert_eq!(show.episodes[189], Episode::new(9, 7, 5073156, "The Spock Resonance", Some(2015), Some(19)));
2267 assert_eq!(show.episodes[190], Episode::new(9, 8, 5117928, "The Mystery Date Observation", Some(2015), Some(19)));
2268 assert_eq!(show.episodes[191], Episode::new(9, 9, 5143500, "The Platonic Permutation", Some(2015), Some(21)));
2269 assert_eq!(show.episodes[192], Episode::new(9, 10, 5143508, "The Earworm Reverberation", Some(2015), Some(21)));
2270 assert_eq!(show.episodes[193], Episode::new(9, 11, 5143516, "The Opening Night Excitation", Some(2015), Some(21)));
2271 assert_eq!(show.episodes[194], Episode::new(9, 12, 5273742, "The Sales Call Sublimation", Some(2016), Some(18)));
2272 assert_eq!(show.episodes[195], Episode::new(9, 13, 5273740, "The Empathy Optimization", Some(2016), Some(19)));
2273 assert_eq!(show.episodes[196], Episode::new(9, 14, 5295650, "The Meemaw Materialization", Some(2016), Some(19)));
2274 assert_eq!(show.episodes[197], Episode::new(9, 15, 5341496, "The Valentino Submergence", Some(2016), Some(19)));
2275 assert_eq!(show.episodes[198], Episode::new(9, 16, 5376678, "The Positive Negative Reaction", Some(2016), Some(19)));
2276 assert_eq!(show.episodes[199], Episode::new(9, 17, 5436356, "The Celebration Experimentation", Some(2016), Some(19)));
2277 assert_eq!(show.episodes[200], Episode::new(9, 18, 5497250, "The Application Deterioration", Some(2016), Some(19)));
2278 assert_eq!(show.episodes[201], Episode::new(9, 19, 5522908, "The Solder Excursion Diversion", Some(2016), Some(20)));
2279 assert_eq!(show.episodes[202], Episode::new(9, 20, 5586046, "The Big Bear Precipitation", Some(2016), Some(19)));
2280 assert_eq!(show.episodes[203], Episode::new(9, 21, 5586050, "The Viewing Party Combustion", Some(2016), Some(18)));
2281 assert_eq!(show.episodes[204], Episode::new(9, 22, 5597958, "The Fermentation Bifurcation", Some(2016), Some(20)));
2282 assert_eq!(show.episodes[205], Episode::new(9, 23, 5597960, "The Line Substitution Solution", Some(2016), Some(18)));
2283 assert_eq!(show.episodes[206], Episode::new(9, 24, 5562854, "The Convergence Convergence", Some(2016), Some(20)));
2284 assert_eq!(show.episodes[207], Episode::new(10, 1, 3603372, "The Conjugal Conjecture", Some(2016), Some(21)));
2285 assert_eq!(show.episodes[208], Episode::new(10, 2, 5973910, "The Military Miniaturization", Some(2016), Some(19)));
2286 assert_eq!(show.episodes[209], Episode::new(10, 3, 5996928, "The Dependence Transcendence", Some(2016), Some(20)));
2287 assert_eq!(show.episodes[210], Episode::new(10, 4, 6062772, "The Cohabitation Experimentation", Some(2016), Some(20)));
2288 assert_eq!(show.episodes[211], Episode::new(10, 5, 6077690, "The Hot Tub Contamination", Some(2016), Some(20)));
2289 assert_eq!(show.episodes[212], Episode::new(10, 6, 5825290, "The Fetal Kick Catalyst", Some(2016), Some(18)));
2290 assert_eq!(show.episodes[213], Episode::new(10, 7, 6186420, "The Veracity Elasticity", Some(2016), Some(21)));
2291 assert_eq!(show.episodes[214], Episode::new(10, 8, 6189462, "The Brain Bowl Incubation", Some(2016), Some(18)));
2292 assert_eq!(show.episodes[215], Episode::new(10, 9, 6214960, "The Geology Elevation", Some(2016), Some(19)));
2293 assert_eq!(show.episodes[216], Episode::new(10, 10, 6255718, "The Property Division Collision", Some(2016), Some(19)));
2294 assert_eq!(show.episodes[217], Episode::new(10, 11, 6255770, "The Birthday Synchronicity", Some(2016), Some(20)));
2295 assert_eq!(show.episodes[218], Episode::new(10, 12, 6320950, "The Holiday Summation", Some(2017), Some(21)));
2296 assert_eq!(show.episodes[219], Episode::new(10, 13, 6337212, "The Romance Recalibration", Some(2017), Some(19)));
2297 assert_eq!(show.episodes[220], Episode::new(10, 14, 6414316, "The Emotion Detection Automation", Some(2017), Some(19)));
2298 assert_eq!(show.episodes[221], Episode::new(10, 15, 6438684, "The Locomotion Reverberation", Some(2017), Some(20)));
2299 assert_eq!(show.episodes[222], Episode::new(10, 16, 6495864, "The Allowance Evaporation", Some(2017), Some(18)));
2300 assert_eq!(show.episodes[223], Episode::new(10, 17, 6527026, "The Comic-Con Conundrum", Some(2017), Some(19)));
2301 assert_eq!(show.episodes[224], Episode::new(10, 18, 6565510, "The Escape Hatch Identification", Some(2017), Some(20)));
2302 assert_eq!(show.episodes[225], Episode::new(10, 19, 6565514, "The Collaboration Fluctuation", Some(2017), Some(18)));
2303 assert_eq!(show.episodes[226], Episode::new(10, 20, 6565516, "The Recollection Dissipation", Some(2017), Some(19)));
2304 assert_eq!(show.episodes[227], Episode::new(10, 21, 6565524, "The Separation Agitation", Some(2017), Some(20)));
2305 assert_eq!(show.episodes[228], Episode::new(10, 22, 6565530, "The Cognition Regeneration", Some(2017), Some(20)));
2306 assert_eq!(show.episodes[229], Episode::new(10, 23, 6706250, "The Gyroscopic Collapse", Some(2017), Some(19)));
2307 assert_eq!(show.episodes[230], Episode::new(10, 24, 6706254, "The Long Distance Dissonance", Some(2017), Some(19)));
2308 assert_eq!(show.episodes[231], Episode::new(11, 1, 6673774, "The Proposal Proposal", Some(2017), Some(21)));
2309 assert_eq!(show.episodes[232], Episode::new(11, 2, 6674506, "The Retraction Reaction", Some(2017), Some(21)));
2310 assert_eq!(show.episodes[233], Episode::new(11, 3, 6674504, "The Relaxation Integration", Some(2017), Some(20)));
2311 assert_eq!(show.episodes[234], Episode::new(11, 4, 6674498, "The Explosion Implosion", Some(2017), Some(21)));
2312 assert_eq!(show.episodes[235], Episode::new(11, 5, 6674496, "The Collaboration Contamination", Some(2017), Some(19)));
2313 assert_eq!(show.episodes[236], Episode::new(11, 6, 6674494, "The Proton Regeneration", Some(2017), Some(21)));
2314 assert_eq!(show.episodes[237], Episode::new(11, 7, 6674492, "The Geology Methodology", Some(2017), Some(19)));
2315 assert_eq!(show.episodes[238], Episode::new(11, 8, 6674490, "The Tesla Recoil", Some(2017), Some(19)));
2316 assert_eq!(show.episodes[239], Episode::new(11, 9, 6674486, "The Bitcoin Entanglement", Some(2017), Some(19)));
2317 assert_eq!(show.episodes[240], Episode::new(11, 10, 6674480, "The Confidence Erosion", Some(2017), Some(21)));
2318 assert_eq!(show.episodes[241], Episode::new(11, 11, 6674476, "The Celebration Reverberation", Some(2017), Some(19)));
2319 assert_eq!(show.episodes[242], Episode::new(11, 12, 6674472, "The Matrimonial Metric", Some(2018), Some(20)));
2320 assert_eq!(show.episodes[243], Episode::new(11, 13, 6674468, "The Solo Oscillation", Some(2018), Some(21)));
2321 assert_eq!(show.episodes[244], Episode::new(11, 14, 6674466, "The Separation Triangulation", Some(2018), Some(19)));
2322 assert_eq!(show.episodes[245], Episode::new(11, 15, 6674462, "The Novelization Correlation", Some(2018), Some(21)));
2323 assert_eq!(show.episodes[246], Episode::new(11, 16, 6674448, "The Neonatal Nomenclature", Some(2018), Some(19)));
2324 assert_eq!(show.episodes[247], Episode::new(11, 17, 6674452, "The Athenaeum Allocation", Some(2018), Some(20)));
2325 assert_eq!(show.episodes[248], Episode::new(11, 18, 6674456, "The Gates Excitation", Some(2018), Some(20)));
2326 assert_eq!(show.episodes[249], Episode::new(11, 19, 6674454, "The Tenant Disassociation", Some(2018), Some(21)));
2327 assert_eq!(show.episodes[250], Episode::new(11, 20, 6674434, "The Reclusive Potential", Some(2018), Some(21)));
2328 assert_eq!(show.episodes[251], Episode::new(11, 21, 6674432, "The Comet Polarization", Some(2018), Some(21)));
2329 assert_eq!(show.episodes[252], Episode::new(11, 22, 6674428, "The Monetary Insufficiency", Some(2018), Some(19)));
2330 assert_eq!(show.episodes[253], Episode::new(11, 23, 6674424, "The Sibling Realignment", Some(2018), Some(20)));
2331 assert_eq!(show.episodes[254], Episode::new(11, 24, 6674430, "The Bow Tie Asymmetry", Some(2018), Some(22)));
2332 assert_eq!(show.episodes[255], Episode::new(12, 1, 6673778, "The Conjugal Configuration", Some(2018), Some(20)));
2333 assert_eq!(show.episodes[256], Episode::new(12, 2, 6674688, "The Wedding Gift Wormhole", Some(2018), Some(21)));
2334 assert_eq!(show.episodes[257], Episode::new(12, 3, 6674692, "The Procreation Calculation", Some(2018), Some(20)));
2335 assert_eq!(show.episodes[258], Episode::new(12, 4, 6674690, "The Tam Turbulence", Some(2018), Some(19)));
2336 assert_eq!(show.episodes[259], Episode::new(12, 5, 6674694, "The Planetarium Collision", Some(2018), Some(19)));
2337 assert_eq!(show.episodes[260], Episode::new(12, 6, 6674704, "The Imitation Perturbation", Some(2018), Some(19)));
2338 assert_eq!(show.episodes[261], Episode::new(12, 7, 6674696, "The Grant Allocation Derivation", Some(2018), Some(19)));
2339 assert_eq!(show.episodes[262], Episode::new(12, 8, 6674702, "The Consummation Deviation", Some(2018), Some(22)));
2340 assert_eq!(show.episodes[263], Episode::new(12, 9, 6674698, "The Citation Negation", Some(2018), Some(20)));
2341 assert_eq!(show.episodes[264], Episode::new(12, 10, 6674710, "The VCR Illumination", Some(2018), Some(20)));
2342 assert_eq!(show.episodes[265], Episode::new(12, 11, 6674706, "The Paintball Scattering", Some(2019), Some(19)));
2343 assert_eq!(show.episodes[266], Episode::new(12, 12, 6674708, "The Propagation Proposition", Some(2019), Some(20)));
2344 assert_eq!(show.episodes[267], Episode::new(12, 13, 6674714, "The Confirmation Polarization", Some(2019), Some(20)));
2345 assert_eq!(show.episodes[268], Episode::new(12, 14, 6674712, "The Meteorite Manifestation", Some(2019), Some(19)));
2346 assert_eq!(show.episodes[269], Episode::new(12, 15, 6674716, "The Donation Oscillation", Some(2019), Some(21)));
2347 assert_eq!(show.episodes[270], Episode::new(12, 16, 6674718, "The D & D Vortex", Some(2019), Some(20)));
2348 assert_eq!(show.episodes[271], Episode::new(12, 17, 6674726, "The Conference Valuation", Some(2019), Some(19)));
2349 assert_eq!(show.episodes[272], Episode::new(12, 18, 6674724, "The Laureate Accumulation", Some(2019), Some(21)));
2350 assert_eq!(show.episodes[273], Episode::new(12, 19, 6674720, "The Inspiration Deprivation", Some(2019), Some(20)));
2351 assert_eq!(show.episodes[274], Episode::new(12, 20, 6674728, "The Decision Reverberation", Some(2019), Some(19)));
2352 assert_eq!(show.episodes[275], Episode::new(12, 21, 6674732, "The Plagiarism Schism", Some(2019), Some(19)));
2353 assert_eq!(show.episodes[276], Episode::new(12, 22, 6674730, "The Maternal Conclusion", Some(2019), Some(20)));
2354 assert_eq!(show.episodes[277], Episode::new(12, 23, 6674734, "The Change Constant", Some(2019), Some(19)));
2355 assert_eq!(show.episodes[278], Episode::new(12, 24, 6674736, "The Stockholm Syndrome", Some(2019), Some(23)));
2356 let mut show = shows.remove(&1219024).unwrap();
2359 show.episodes.sort_unstable();
2360 assert_eq!(show.imdb_id, 1219024);
2361 assert_eq!(show.title, "Castle");
2362 assert!(!show.is_adult);
2363 assert_eq!(show.start_year, 2009);
2364 assert_eq!(show.end_year, Some(2016));
2365 assert_eq!(show.runtime_minutes, Some(45));
2366 assert_eq!(show.genres, *[Comedy, Crime, Drama].as_ref());
2367 assert_eq!(show.episodes.len(), 173); assert_eq!(show.episodes[0], Episode::new(1, 1, 1303973, "Flowers for Your Grave", Some(2009), Some(43)));
2369 assert_eq!(show.episodes[1], Episode::new(1, 2, 1321564, "Nanny McDead", Some(2009), Some(60)));
2370 assert_eq!(show.episodes[2], Episode::new(1, 3, 1327257, "Hedge Fund Homeboys", Some(2009), Some(43)));
2371 assert_eq!(show.episodes[3], Episode::new(1, 4, 1318126, "Hell Hath No Fury", Some(2009), Some(43)));
2372 assert_eq!(show.episodes[4], Episode::new(1, 5, 1334813, "A Chill Goes Through Her Veins", Some(2009), Some(43)));
2373 assert_eq!(show.episodes[5], Episode::new(1, 6, 1361671, "Always Buy Retail", Some(2009), Some(43)));
2374 assert_eq!(show.episodes[6], Episode::new(1, 7, 1345746, "Home Is Where the Heart Stops", Some(2009), Some(43)));
2375 assert_eq!(show.episodes[7], Episode::new(1, 8, 1360964, "Ghosts", Some(2009), Some(43)));
2376 assert_eq!(show.episodes[8], Episode::new(1, 9, 1375576, "Little Girl Lost", Some(2009), Some(43)));
2377 assert_eq!(show.episodes[9], Episode::new(1, 10, 1383514, "A Death in the Family", Some(2009), Some(43)));
2378 assert_eq!(show.episodes[10], Episode::new(2, 1, 1471460, "Deep in Death", Some(2009), Some(43)));
2379 assert_eq!(show.episodes[11], Episode::new(2, 2, 1487354, "The Double Down", Some(2009), Some(43)));
2380 assert_eq!(show.episodes[12], Episode::new(2, 3, 1476479, "Inventing the Girl", Some(2009), Some(43)));
2381 assert_eq!(show.episodes[13], Episode::new(2, 4, 1485258, "Fool Me Once...", Some(2009), Some(43)));
2382 assert_eq!(show.episodes[14], Episode::new(2, 5, 1493984, "When the Bough Breaks", Some(2009), Some(43)));
2383 assert_eq!(show.episodes[15], Episode::new(2, 6, 1501858, "Vampire Weekend", Some(2009), Some(43)));
2384 assert_eq!(show.episodes[16], Episode::new(2, 7, 1509365, "Famous Last Words", Some(2009), Some(43)));
2385 assert_eq!(show.episodes[17], Episode::new(2, 8, 1515313, "Kill the Messenger", Some(2009), Some(43)));
2386 assert_eq!(show.episodes[18], Episode::new(2, 9, 1522460, "Love Me Dead", Some(2009), Some(43)));
2387 assert_eq!(show.episodes[19], Episode::new(2, 10, 1526786, "One Man\'s Treasure", Some(2009), Some(43)));
2388 assert_eq!(show.episodes[20], Episode::new(2, 11, 1539352, "The Fifth Bullet", Some(2009), Some(43)));
2389 assert_eq!(show.episodes[21], Episode::new(2, 12, 1546168, "A Rose for Everafter", Some(2010), Some(43)));
2390 assert_eq!(show.episodes[22], Episode::new(2, 13, 1546169, "Sucker Punch", Some(2010), Some(43)));
2391 assert_eq!(show.episodes[23], Episode::new(2, 14, 1562496, "The Third Man", Some(2010), Some(43)));
2392 assert_eq!(show.episodes[24], Episode::new(2, 15, 1566998, "Suicide Squeeze", Some(2010), Some(43)));
2393 assert_eq!(show.episodes[25], Episode::new(2, 16, 1575755, "The Mistress Always Spanks Twice", Some(2010), Some(43)));
2394 assert_eq!(show.episodes[26], Episode::new(2, 17, 1587498, "Tick, Tick, Tick...", Some(2010), Some(43)));
2395 assert_eq!(show.episodes[27], Episode::new(2, 18, 1587499, "Boom!", Some(2010), Some(43)));
2396 assert_eq!(show.episodes[28], Episode::new(2, 19, 1599451, "Wrapped Up in Death", Some(2010), Some(43)));
2397 assert_eq!(show.episodes[29], Episode::new(2, 20, 1605852, "The Late Shaft", Some(2010), Some(43)));
2398 assert_eq!(show.episodes[30], Episode::new(2, 21, 1618570, "Den of Thieves", Some(2010), Some(43)));
2399 assert_eq!(show.episodes[31], Episode::new(2, 22, 1624253, "Food to Die For", Some(2010), Some(43)));
2400 assert_eq!(show.episodes[32], Episode::new(2, 23, 1628908, "Overkill", Some(2010), Some(43)));
2401 assert_eq!(show.episodes[33], Episode::new(2, 24, 1636948, "A Deadly Game", Some(2010), Some(43)));
2402 assert_eq!(show.episodes[34], Episode::new(3, 1, 1628159, "A Deadly Affair", Some(2010), Some(43)));
2403 assert_eq!(show.episodes[35], Episode::new(3, 2, 1628174, "He\'s Dead, She\'s Dead", Some(2010), Some(43)));
2404 assert_eq!(show.episodes[36], Episode::new(3, 3, 1628170, "Under the Gun", Some(2010), Some(43)));
2405 assert_eq!(show.episodes[37], Episode::new(3, 4, 1628175, "Punked", Some(2010), Some(43)));
2406 assert_eq!(show.episodes[38], Episode::new(3, 5, 1628176, "Anatomy of a Murder", Some(2010), Some(43)));
2407 assert_eq!(show.episodes[39], Episode::new(3, 6, 1628178, "3XK", Some(2010), Some(43)));
2408 assert_eq!(show.episodes[40], Episode::new(3, 7, 1628177, "Almost Famous", Some(2010), Some(43)));
2409 assert_eq!(show.episodes[41], Episode::new(3, 8, 1628179, "Murder Most Fowl", Some(2010), Some(43)));
2410 assert_eq!(show.episodes[42], Episode::new(3, 9, 1628180, "Close Encounters of the Murderous Kind", Some(2010), Some(43)));
2411 assert_eq!(show.episodes[43], Episode::new(3, 10, 1628160, "Last Call", Some(2010), Some(43)));
2412 assert_eq!(show.episodes[44], Episode::new(3, 11, 1628162, "Nikki Heat", Some(2011), Some(43)));
2413 assert_eq!(show.episodes[45], Episode::new(3, 12, 1628161, "Poof, You\'re Dead", Some(2011), Some(43)));
2414 assert_eq!(show.episodes[46], Episode::new(3, 13, 1628163, "Knockdown", Some(2011), Some(43)));
2415 assert_eq!(show.episodes[47], Episode::new(3, 14, 1628164, "Lucky Stiff", Some(2011), Some(43)));
2416 assert_eq!(show.episodes[48], Episode::new(3, 15, 1628165, "The Final Nail", Some(2011), Some(43)));
2417 assert_eq!(show.episodes[49], Episode::new(3, 16, 1628166, "Setup", Some(2011), Some(43)));
2418 assert_eq!(show.episodes[50], Episode::new(3, 17, 1628167, "Countdown", Some(2011), Some(43)));
2419 assert_eq!(show.episodes[51], Episode::new(3, 18, 1628168, "One Life to Lose", Some(2011), Some(43)));
2420 assert_eq!(show.episodes[52], Episode::new(3, 19, 1628169, "Law & Murder", Some(2011), Some(43)));
2421 assert_eq!(show.episodes[53], Episode::new(3, 20, 1628171, "Slice of Death", Some(2011), Some(43)));
2422 assert_eq!(show.episodes[54], Episode::new(3, 21, 1628172, "The Dead Pool", Some(2011), Some(43)));
2423 assert_eq!(show.episodes[55], Episode::new(3, 22, 1628173, "To Love and Die in L.A.", Some(2011), Some(43)));
2424 assert_eq!(show.episodes[56], Episode::new(3, 23, 1863574, "Pretty Dead", Some(2011), Some(43)));
2425 assert_eq!(show.episodes[57], Episode::new(3, 24, 1863575, "Knockout", Some(2011), Some(43)));
2426 assert_eq!(show.episodes[58], Episode::new(4, 1, 1979460, "Rise", Some(2011), Some(45)));
2427 assert_eq!(show.episodes[59], Episode::new(4, 2, 1995597, "Heroes and Villains", Some(2011), Some(45)));
2428 assert_eq!(show.episodes[60], Episode::new(4, 3, 2006355, "Head Case", Some(2011), Some(45)));
2429 assert_eq!(show.episodes[61], Episode::new(4, 4, 2013361, "Kick the Ballistics", Some(2011), Some(44)));
2430 assert_eq!(show.episodes[62], Episode::new(4, 5, 2020437, "Eye of the Beholder", Some(2011), Some(45)));
2431 assert_eq!(show.episodes[63], Episode::new(4, 6, 2041717, "Demons", Some(2011), Some(45)));
2432 assert_eq!(show.episodes[64], Episode::new(4, 7, 2069215, "Cops & Robbers", Some(2011), Some(45)));
2433 assert_eq!(show.episodes[65], Episode::new(4, 8, 2090751, "Heartbreak Hotel", Some(2011), Some(45)));
2434 assert_eq!(show.episodes[66], Episode::new(4, 9, 2104216, "Kill Shot", Some(2011), Some(45)));
2435 assert_eq!(show.episodes[67], Episode::new(4, 10, 2108699, "Cuffed", Some(2011), Some(45)));
2436 assert_eq!(show.episodes[68], Episode::new(4, 11, 2107921, "Til Death Do Us Part", Some(2012), Some(45)));
2437 assert_eq!(show.episodes[69], Episode::new(4, 12, 2117068, "Dial M for Mayor", Some(2012), Some(45)));
2438 assert_eq!(show.episodes[70], Episode::new(4, 13, 2122569, "An Embarrassment of Bitches", Some(2012), Some(45)));
2439 assert_eq!(show.episodes[71], Episode::new(4, 14, 2122570, "The Blue Butterfly", Some(2012), Some(44)));
2440 assert_eq!(show.episodes[72], Episode::new(4, 15, 2180817, "Pandora", Some(2012), Some(45)));
2441 assert_eq!(show.episodes[73], Episode::new(4, 16, 2177999, "Linchpin", Some(2012), Some(45)));
2442 assert_eq!(show.episodes[74], Episode::new(4, 17, 2196331, "Once Upon a Crime", Some(2012), Some(45)));
2443 assert_eq!(show.episodes[75], Episode::new(4, 18, 2231927, "A Dance with Death", Some(2012), Some(45)));
2444 assert_eq!(show.episodes[76], Episode::new(4, 19, 2262661, "47 Seconds", Some(2012), Some(45)));
2445 assert_eq!(show.episodes[77], Episode::new(4, 20, 2262663, "The Limey", Some(2012), Some(45)));
2446 assert_eq!(show.episodes[78], Episode::new(4, 21, 2336661, "Headhunters", Some(2012), Some(45)));
2447 assert_eq!(show.episodes[79], Episode::new(4, 22, 2336663, "Undead Again", Some(2012), Some(45)));
2448 assert_eq!(show.episodes[80], Episode::new(4, 23, 2342563, "Always", Some(2012), Some(45)));
2449 assert_eq!(show.episodes[81], Episode::new(5, 1, 2396875, "After the Storm", Some(2012), Some(44)));
2450 assert_eq!(show.episodes[82], Episode::new(5, 2, 2350522, "Cloudy with a Chance of Murder", Some(2012), Some(43)));
2451 assert_eq!(show.episodes[83], Episode::new(5, 3, 2288866, "Secret\'s Safe with Me", Some(2012), Some(44)));
2452 assert_eq!(show.episodes[84], Episode::new(5, 4, 2364464, "Murder He Wrote", Some(2012), Some(43)));
2453 assert_eq!(show.episodes[85], Episode::new(5, 5, 2441912, "Probable Cause", Some(2012), Some(44)));
2454 assert_eq!(show.episodes[86], Episode::new(5, 6, 2433380, "The Final Frontier", Some(2012), Some(44)));
2455 assert_eq!(show.episodes[87], Episode::new(5, 7, 2360384, "Swan Song", Some(2012), Some(44)));
2456 assert_eq!(show.episodes[88], Episode::new(5, 8, 2437444, "After Hours", Some(2012), Some(44)));
2457 assert_eq!(show.episodes[89], Episode::new(5, 9, 2508758, "Secret Santa", Some(2012), Some(44)));
2458 assert_eq!(show.episodes[90], Episode::new(5, 10, 2481820, "Significant Others", Some(2013), Some(41)));
2459 assert_eq!(show.episodes[91], Episode::new(5, 11, 2620004, "Under the Influence", Some(2013), Some(44)));
2460 assert_eq!(show.episodes[92], Episode::new(5, 12, 2523936, "Death Gone Crazy", Some(2013), Some(44)));
2461 assert_eq!(show.episodes[93], Episode::new(5, 13, 2572704, "Recoil", Some(2013), Some(44)));
2462 assert_eq!(show.episodes[94], Episode::new(5, 14, 2584542, "Reality Star Struck", Some(2013), Some(44)));
2463 assert_eq!(show.episodes[95], Episode::new(5, 15, 2698144, "Target", Some(2013), Some(44)));
2464 assert_eq!(show.episodes[96], Episode::new(5, 16, 2698182, "Hunt", Some(2013), Some(41)));
2465 assert_eq!(show.episodes[97], Episode::new(5, 17, 2705774, "Scared to Death", Some(2013), Some(43)));
2466 assert_eq!(show.episodes[98], Episode::new(5, 18, 2712738, "The Wild Rover", Some(2013), Some(44)));
2467 assert_eq!(show.episodes[99], Episode::new(5, 19, 2727420, "The Lives of Others", Some(2013), Some(44)));
2468 assert_eq!(show.episodes[100], Episode::new(5, 20, 2799398, "The Fast and the Furriest", Some(2013), Some(43)));
2469 assert_eq!(show.episodes[101], Episode::new(5, 21, 2804932, "The Squab and the Quail", Some(2013), Some(42)));
2470 assert_eq!(show.episodes[102], Episode::new(5, 22, 2788494, "Still", Some(2013), Some(41)));
2471 assert_eq!(show.episodes[103], Episode::new(5, 23, 2815780, "The Human Factor", Some(2013), Some(43)));
2472 assert_eq!(show.episodes[104], Episode::new(5, 24, 2883480, "Watershed", Some(2013), Some(44)));
2473 assert_eq!(show.episodes[105], Episode::new(6, 1, 2911344, "Valkyrie", Some(2013), Some(43)));
2474 assert_eq!(show.episodes[106], Episode::new(6, 2, 3147784, "Dreamworld", Some(2013), Some(44)));
2475 assert_eq!(show.episodes[107], Episode::new(6, 3, 3172144, "Need to Know", Some(2013), Some(44)));
2476 assert_eq!(show.episodes[108], Episode::new(6, 4, 3170326, "Number One Fan", Some(2013), Some(45)));
2477 assert_eq!(show.episodes[109], Episode::new(6, 5, 3268978, "Time Will Tell", Some(2013), Some(45)));
2478 assert_eq!(show.episodes[110], Episode::new(6, 6, 3252790, "Get a Clue", Some(2013), Some(45)));
2479 assert_eq!(show.episodes[111], Episode::new(6, 7, 3255338, "Like Father, Like Daughter", Some(2013), Some(45)));
2480 assert_eq!(show.episodes[112], Episode::new(6, 8, 3240206, "A Murder Is Forever", Some(2013), Some(43)));
2481 assert_eq!(show.episodes[113], Episode::new(6, 9, 3258212, "Disciple", Some(2013), Some(45)));
2482 assert_eq!(show.episodes[114], Episode::new(6, 10, 3279622, "The Good, the Bad & the Baby", Some(2013), Some(45)));
2483 assert_eq!(show.episodes[115], Episode::new(6, 11, 3403936, "Under Fire", Some(2014), Some(43)));
2484 assert_eq!(show.episodes[116], Episode::new(6, 12, 3410998, "Deep Cover", Some(2014), Some(44)));
2485 assert_eq!(show.episodes[117], Episode::new(6, 13, 3329020, "Limelight", Some(2014), Some(43)));
2486 assert_eq!(show.episodes[118], Episode::new(6, 14, 3432830, "Dressed to Kill", Some(2014), Some(43)));
2487 assert_eq!(show.episodes[119], Episode::new(6, 15, 3453374, "Smells Like Teen Spirit", Some(2014), Some(43)));
2488 assert_eq!(show.episodes[120], Episode::new(6, 16, 3510444, "Room 147", Some(2014), Some(42)));
2489 assert_eq!(show.episodes[121], Episode::new(6, 17, 3485882, "In the Belly of the Beast", Some(2014), Some(42)));
2490 assert_eq!(show.episodes[122], Episode::new(6, 18, 3534768, "The Way of the Ninja", Some(2014), Some(43)));
2491 assert_eq!(show.episodes[123], Episode::new(6, 19, 3534830, "The Greater Good", Some(2014), Some(43)));
2492 assert_eq!(show.episodes[124], Episode::new(6, 20, 3565816, "That \'70s Show", Some(2014), Some(44)));
2493 assert_eq!(show.episodes[125], Episode::new(6, 21, 3580390, "Law & Boarder", Some(2014), Some(43)));
2494 assert_eq!(show.episodes[126], Episode::new(6, 22, 3587866, "Veritas", Some(2014), Some(44)));
2495 assert_eq!(show.episodes[127], Episode::new(6, 23, 3587872, "For Better or Worse", Some(2014), Some(43)));
2496 assert_eq!(show.episodes[128], Episode::new(7, 1, 3720122, "Driven", Some(2014), Some(42)));
2497 assert_eq!(show.episodes[129], Episode::new(7, 2, 3914558, "Montreal", Some(2014), Some(43)));
2498 assert_eq!(show.episodes[130], Episode::new(7, 3, 3858678, "Clear & Present Danger", Some(2014), Some(43)));
2499 assert_eq!(show.episodes[131], Episode::new(7, 4, 3858680, "Child\'s Play", Some(2014), Some(42)));
2500 assert_eq!(show.episodes[132], Episode::new(7, 5, 4047082, "Meme Is Murder", Some(2014), Some(42)));
2501 assert_eq!(show.episodes[133], Episode::new(7, 6, 4075550, "The Time of Our Lives", Some(2014), Some(43)));
2502 assert_eq!(show.episodes[134], Episode::new(7, 7, 4075560, "Once Upon a Time in the West", Some(2014), Some(43)));
2503 assert_eq!(show.episodes[135], Episode::new(7, 8, 4126128, "Kill Switch", Some(2014), Some(41)));
2504 assert_eq!(show.episodes[136], Episode::new(7, 9, 4234882, "Last Action Hero", Some(2014), Some(43)));
2505 assert_eq!(show.episodes[137], Episode::new(7, 10, 4121492, "Bad Santa", Some(2014), Some(43)));
2506 assert_eq!(show.episodes[138], Episode::new(7, 11, 4279018, "Castle, P.I.", Some(2015), Some(43)));
2507 assert_eq!(show.episodes[139], Episode::new(7, 12, 4242524, "Private Eye Caramba!", Some(2015), Some(43)));
2508 assert_eq!(show.episodes[140], Episode::new(7, 13, 4393054, "I, Witness", Some(2015), Some(42)));
2509 assert_eq!(show.episodes[141], Episode::new(7, 14, 4425334, "Resurrection", Some(2015), Some(42)));
2510 assert_eq!(show.episodes[142], Episode::new(7, 15, 4425340, "Reckoning", Some(2015), Some(43)));
2511 assert_eq!(show.episodes[143], Episode::new(7, 16, 4365028, "The Wrong Stuff", Some(2015), Some(43)));
2512 assert_eq!(show.episodes[144], Episode::new(7, 17, 4452138, "Hong Kong Hustle", Some(2015), Some(43)));
2513 assert_eq!(show.episodes[145], Episode::new(7, 18, 4442144, "At Close Range", Some(2015), Some(42)));
2514 assert_eq!(show.episodes[146], Episode::new(7, 19, 4488190, "Habeas Corpse", Some(2015), Some(43)));
2515 assert_eq!(show.episodes[147], Episode::new(7, 20, 4586238, "Sleeper", Some(2015), Some(41)));
2516 assert_eq!(show.episodes[148], Episode::new(7, 21, 4544966, "In Plane Sight", Some(2015), Some(41)));
2517 assert_eq!(show.episodes[149], Episode::new(7, 22, 4627742, "Dead from New York", Some(2015), Some(43)));
2518 assert_eq!(show.episodes[150], Episode::new(7, 23, 4659186, "Hollander\'s Woods", Some(2015), Some(44)));
2519 assert_eq!(show.episodes[151], Episode::new(8, 1, 4667522, "XY", Some(2015), Some(43)));
2520 assert_eq!(show.episodes[152], Episode::new(8, 2, 4857928, "XX", Some(2015), Some(44)));
2521 assert_eq!(show.episodes[153], Episode::new(8, 3, 4966312, "PhDead", Some(2015), Some(43)));
2522 assert_eq!(show.episodes[154], Episode::new(8, 4, 4955212, "What Lies Beneath", Some(2015), Some(44)));
2523 assert_eq!(show.episodes[155], Episode::new(8, 5, 5023896, "The Nose", Some(2015), Some(44)));
2524 assert_eq!(show.episodes[156], Episode::new(8, 6, 5089670, "Cool Boys", Some(2015), Some(42)));
2525 assert_eq!(show.episodes[157], Episode::new(8, 7, 5030300, "The Last Seduction", Some(2015), Some(42)));
2526 assert_eq!(show.episodes[158], Episode::new(8, 8, 5089986, "Mr. & Mrs. Castle", Some(2015), Some(42)));
2527 assert_eq!(show.episodes[159], Episode::new(8, 9, 5138378, "Tone Death", Some(2016), Some(42)));
2528 assert_eq!(show.episodes[160], Episode::new(8, 10, 5198722, "Witness for the Prosecution", Some(2016), Some(42)));
2529 assert_eq!(show.episodes[161], Episode::new(8, 11, 5223288, "Dead Red", Some(2016), Some(41)));
2530 assert_eq!(show.episodes[162], Episode::new(8, 12, 5376586, "The Blame Game", Some(2016), Some(42)));
2531 assert_eq!(show.episodes[163], Episode::new(8, 13, 5332056, "And Justice for All", Some(2016), Some(42)));
2532 assert_eq!(show.episodes[164], Episode::new(8, 14, 5461824, "G.D.S.", Some(2016), Some(43)));
2533 assert_eq!(show.episodes[165], Episode::new(8, 15, 5318930, "Fidelis Ad Mortem", Some(2016), Some(43)));
2534 assert_eq!(show.episodes[166], Episode::new(8, 16, 5352752, "Heartbreaker", Some(2016), Some(43)));
2535 assert_eq!(show.episodes[167], Episode::new(8, 17, 5584444, "Death Wish", Some(2016), Some(42)));
2536 assert_eq!(show.episodes[168], Episode::new(8, 18, 5542624, "Backstabber", Some(2016), Some(43)));
2537 assert_eq!(show.episodes[169], Episode::new(8, 19, 5523396, "Dead Again", Some(2016), Some(42)));
2538 assert_eq!(show.episodes[170], Episode::new(8, 20, 5541138, "Much Ado About Murder", Some(2016), Some(42)));
2539 assert_eq!(show.episodes[171], Episode::new(8, 21, 5594910, "Hell to Pay", Some(2016), Some(42)));
2540 assert_eq!(show.episodes[172], Episode::new(8, 22, 5594914, "Crossfire", Some(2016), Some(42)));
2541 }
2543 } #[tokio::test]
2546 async fn shows_by_name_and_year() {
2547 let (_dir, mut client) = client().await;
2548 for i in 0..2 {
2549 println!(">>> 1-{}", i);
2550 let show = client.get_show_by_name_and_year("The Big Bang Theory", 2007).await.unwrap().unwrap();
2551 assert_eq!(show.imdb_id, 898266);
2552 let show = client.get_show_by_name_and_year("WandaVision", 2021).await.unwrap().unwrap();
2553 assert_eq!(show.imdb_id, 9140560);
2554 let show = client.get_show_by_name_and_year("Castle", 2009).await.unwrap().unwrap();
2555 assert_eq!(show.imdb_id, 1219024);
2556 let show = client.get_show_by_name_and_year("Hawkeye", 2021).await.unwrap().unwrap();
2557 assert_eq!(show.imdb_id, 10160804);
2558 let show = client.get_show_by_name_and_year("Hawkeye", 2021).await.unwrap().unwrap();
2559 assert_eq!(show.imdb_id, 10160804);
2560 }
2561 } #[tokio::test]
2564 async fn shows_by_name_and_year_reopen() {
2565 let (dir, mut client) = client().await;
2566 for i in 0..2 {
2567 println!(">>> 1-{}", i);
2568 let show = client.get_show_by_name_and_year("The Big Bang Theory", 2007).await.unwrap().unwrap();
2569 assert_eq!(show.imdb_id, 898266);
2570 let show = client.get_show_by_name_and_year("WandaVision", 2021).await.unwrap().unwrap();
2571 assert_eq!(show.imdb_id, 9140560);
2572 let show = client.get_show_by_name_and_year("Castle", 2009).await.unwrap().unwrap();
2573 assert_eq!(show.imdb_id, 1219024);
2574 let show = client.get_show_by_name_and_year("Hawkeye", 2021).await.unwrap().unwrap();
2575 assert_eq!(show.imdb_id, 10160804);
2576 let show = client.get_show_by_name_and_year("Hawkeye", 2021).await.unwrap().unwrap();
2577 assert_eq!(show.imdb_id, 10160804);
2578 }
2579 drop(client);
2580 let mut client = Client::new(Duration::from_secs(86400), dir.path()).await.unwrap();
2581 for i in 0..2 {
2582 println!(">>> 2-{}", i);
2583 let show = client.get_show_by_name_and_year("The Big Bang Theory", 2007).await.unwrap().unwrap();
2584 assert_eq!(show.imdb_id, 898266);
2585 let show = client.get_show_by_name_and_year("WandaVision", 2021).await.unwrap().unwrap();
2586 assert_eq!(show.imdb_id, 9140560);
2587 let show = client.get_show_by_name_and_year("Castle", 2009).await.unwrap().unwrap();
2588 assert_eq!(show.imdb_id, 1219024);
2589 let show = client.get_show_by_name_and_year("Hawkeye", 2021).await.unwrap().unwrap();
2590 assert_eq!(show.imdb_id, 10160804);
2591 let show = client.get_show_by_name_and_year("Hawkeye", 2021).await.unwrap().unwrap();
2592 assert_eq!(show.imdb_id, 10160804);
2593 }
2594 } #[tokio::test]
2597 async fn movies_by_name_and_year() {
2598 let (_dir, mut client) = client().await;
2599 for i in 0..2 {
2600 println!(">>> {}", i);
2601 let movie = client.get_movie_by_name_and_year("Avengers: Endgame", 2019).await.unwrap().unwrap();
2602 assert_eq!(movie.imdb_id, 4154796);
2603 let movie = client.get_movie_by_name_and_year("Harry Potter and the Deathly Hallows: Part 1", 2010).await.unwrap().unwrap();
2604 assert_eq!(movie.imdb_id, 926084);
2605 let movie = client.get_movie_by_name_and_year("Four Christmases", 2008).await.unwrap().unwrap();
2606 assert_eq!(movie.imdb_id, 369436);
2607 }
2608 } }
2610