imdb_async/
client.rs

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
41/// A client to IMDB's dataset
42pub 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	// TODO:  Allow custom reqwest::Client options
53	/// Instantiates a new Client
54	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	} // }}}
71
72	#[inline]
73	fn cache_path(cache_directory: impl AsRef<Path>, file: &str) -> PathBuf /* {{{ */ {
74		cache_directory.as_ref().join(format!("{file}.db"))
75	} // }}}
76
77	#[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	} // }}}
86
87	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				// TODO:  Check specific error type
92				return Ok(true);
93			}
94		};
95		let mtime = metadata.modified()?.elapsed()?;
96		Ok(metadata.len() == 0 || mtime >= self.cache_invalidation_time)
97	} // }}}
98
99	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	} // }}}
117
118	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()); // Capacity chosen by looking at number of unique parentTconst values in IMDB title.episode.tsv.gz at time of writing
128		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	} // }}}
137
138	/// Returns a single [Title] by ID.
139	#[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	} // }}}
150
151	/// Returns a list of [Titles](Title) given a list of IDs.  Missing IDs are ignored;
152	/// [Error::NotFound] is not returned.
153	#[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	} // }}}
160
161	/// Streams all [Titles](Title) from persistent storage.  In relational database parlance, this
162	/// is analogous to a tablescan.
163	#[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	} // }}}
169
170	/// Looks up a [Movie] by name and year.  This is slow, as the cache is not keyed on those
171	/// fields; a tablescan is performed.  Returns Ok(None) if no match is found, not
172	/// [Error::NotFound].
173	#[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	} // }}}
188
189	/// Returns a single [Movie] by ID.
190	#[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	} // }}}
195
196	/// Returns a list of [Movies](Movie) given a list of IDs.  Missing IDs are ignored;
197	/// [Error::NotFound] is not returned.
198	#[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	} // }}}
203
204	/// Streams all [Movies](Movie) from persistnet storage.  In relational database parlance, this
205	/// is analogous to a tablescan.
206	#[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	} // }}}
216
217	/// Looks up a [Show] by name and year.  This is slow, as the cache is not keyed on those
218	/// fields; a tablescan is performed.  Returns Ok(None) if not match is found, not
219	/// [Error::NotFound].
220	#[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	} // }}}
237
238	/// Returns a list of [Shows](Show) given a list of IDs.  Missing IDs are ignored;
239	/// [Error::NotFound] is not returned.
240	#[instrument(err, level = "debug", skip(self))]
241	#[inline]
242	pub async fn get_shows(&mut self, ids: &[u32]) -> Result<Vec<Show>, Error> /* {{{ */ {
243		// Not making this a wrapper around self.get_titles() for now to keep the get_episodes()
244		// bit simple
245		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	} // }}}
259
260	/// Returns a single [Show] by ID.
261	#[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	} // }}}
268
269	/// Returns a map<ID, [Show]> given a list of IDs.  Missing IDs are ignored; [Error::NotFound]
270	/// is not returned.
271	#[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	} // }}}
277
278	#[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	} // }}}
312
313	#[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	/// Returns a map<Show ID, Vec<[Episode]>> given a list of [Show] IDs.  Missing IDs are
321	/// ignored; [Error::NotFound] is not returned.
322	#[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	} // }}}
336}
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	} // }}}
360
361	#[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	} // }}}
373
374	#[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); // {{{
382			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			// }}}
603
604			let episodes = client.get_episodes(2364582).await.unwrap();
605			assert_eq!(episodes.len(), 136); // {{{
606			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			// }}}
743		}
744	} // }}}
745
746	#[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); // {{{
758			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			// }}}
1009
1010			let mut episodes = episodes_by_show.remove(&944947).unwrap();
1011			episodes.sort_unstable();
1012			assert_eq!(episodes.len(), 74); // {{{
1013			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			// }}}
1088
1089			let mut episodes = episodes_by_show.remove(&460681).unwrap();
1090			episodes.sort_unstable();
1091			assert_eq!(episodes.len(), 327); // {{{
1092			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			// }}}
1420		}
1421	} // }}}
1422
1423	#[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); // {{{
1439			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			// }}}
1502
1503			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); // {{{
1513			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			// }}}
1600
1601			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); // {{{
1611			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			// }}}
1939		}
1940	} // }}}
1941
1942	#[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			// u32::MAX is here to produce a NotFound error; this makes the test validate the stated behavior that get_shows_by_id() will skip Error::NotFound results.
1949			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); // {{{
1961			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			// }}}
2066
2067			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); // {{{
2077			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			// }}}
2357
2358			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); // {{{
2368			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			// }}}
2542		}
2543	} // }}}
2544
2545	#[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	} // }}}
2562
2563	#[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	} // }}}
2595
2596	#[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	} // }}}
2609}
2610