1 const PRIMARY_LANGUAGE_MASK: u16 = 0x03FF;
2 const SUB_LANGUAGE_MASK: u16 = 0xFC00;
3
4 /// A language used to read string descriptors from USB devices.
5 ///
6 /// A language consists of a primary language and a sub language. Primary languages are language
7 /// families, such as English or Spanish. Sub languages identify a dialect of the primary language.
8 /// The dialect may be based on regional differences (United States English compared to United
9 /// Kingdom English), writing systems (Cyrillic compared to Latin), or age (Modern compared to
10 /// Traditional). Each primary language has its own set of sub languages.
11 #[derive(Debug, Copy, Clone, PartialEq, Eq)]
12 pub struct Language {
13 raw: u16,
14 }
15
16 impl Language {
17 /// Returns the language's 16-bit `LANGID`.
18 ///
19 /// Each language's `LANGID` is defined by the USB forum
20 /// <https://learn.microsoft.com/en-us/windows/win32/intl/language-identifier-constants-and-strings>.
lang_id(self) -> u1621 pub fn lang_id(self) -> u16 {
22 self.raw
23 }
24
25 /// Returns the primary language.
primary_language(self) -> PrimaryLanguage26 pub fn primary_language(self) -> PrimaryLanguage {
27 PrimaryLanguage::from_raw(self.raw)
28 }
29
30 /// Returns the sub language.
sub_language(self) -> SubLanguage31 pub fn sub_language(self) -> SubLanguage {
32 SubLanguage::from_raw(self.primary_language(), self.raw)
33 }
34 }
35
36 #[doc(hidden)]
from_lang_id(raw: u16) -> Language37 pub(crate) fn from_lang_id(raw: u16) -> Language {
38 Language { raw }
39 }
40
41 /// Primary language families.
42 #[derive(Debug, Copy, Clone, PartialEq, Eq)]
43 pub enum PrimaryLanguage {
44 Afrikaans,
45 Albanian,
46 Arabic,
47 Armenian,
48 Assamese,
49 Azeri,
50 Basque,
51 Belarussian,
52 Bengali,
53 Bulgarian,
54 Burmese,
55 Catalan,
56 Chinese,
57 Croatian,
58 Czech,
59 Danish,
60 Dutch,
61 English,
62 Estonian,
63 Faeroese,
64 Farsi,
65 Finnish,
66 French,
67 Georgian,
68 German,
69 Greek,
70 Gujarati,
71 Hebrew,
72 Hindi,
73 Hungarian,
74 Icelandic,
75 Indonesian,
76 Italian,
77 Japanese,
78 Kannada,
79 Kashmiri,
80 Kazakh,
81 Konkani,
82 Korean,
83 Latvian,
84 Lithuanian,
85 Macedonian,
86 Malay,
87 Malayalam,
88 Manipuri,
89 Marathi,
90 Nepali,
91 Norwegian,
92 Oriya,
93 Polish,
94 Portuguese,
95 Punjabi,
96 Romanian,
97 Russian,
98 Sanskrit,
99 Serbian,
100 Sindhi,
101 Slovak,
102 Slovenian,
103 Spanish,
104 Sutu,
105 Swahili,
106 Swedish,
107 Tamil,
108 Tatar,
109 Telugu,
110 Thai,
111 Turkish,
112 Ukrainian,
113 Urdu,
114 Uzbek,
115 Vietnamese,
116
117 HID,
118 Other(u16),
119 }
120
121 impl PrimaryLanguage {
from_raw(raw: u16) -> PrimaryLanguage122 fn from_raw(raw: u16) -> PrimaryLanguage {
123 match raw & PRIMARY_LANGUAGE_MASK {
124 0x0036 => PrimaryLanguage::Afrikaans,
125 0x001C => PrimaryLanguage::Albanian,
126 0x0001 => PrimaryLanguage::Arabic,
127 0x002B => PrimaryLanguage::Armenian,
128 0x004D => PrimaryLanguage::Assamese,
129 0x002C => PrimaryLanguage::Azeri,
130 0x002D => PrimaryLanguage::Basque,
131 0x0023 => PrimaryLanguage::Belarussian,
132 0x0045 => PrimaryLanguage::Bengali,
133 0x0002 => PrimaryLanguage::Bulgarian,
134 0x0055 => PrimaryLanguage::Burmese,
135 0x0003 => PrimaryLanguage::Catalan,
136 0x0004 => PrimaryLanguage::Chinese,
137 0x001A => match raw & SUB_LANGUAGE_MASK {
138 0x0400 => PrimaryLanguage::Croatian,
139 _ => PrimaryLanguage::Serbian,
140 },
141 0x0005 => PrimaryLanguage::Czech,
142 0x0006 => PrimaryLanguage::Danish,
143 0x0013 => PrimaryLanguage::Dutch,
144 0x0009 => PrimaryLanguage::English,
145 0x0025 => PrimaryLanguage::Estonian,
146 0x0038 => PrimaryLanguage::Faeroese,
147 0x0029 => PrimaryLanguage::Farsi,
148 0x000B => PrimaryLanguage::Finnish,
149 0x000C => PrimaryLanguage::French,
150 0x0037 => PrimaryLanguage::Georgian,
151 0x0007 => PrimaryLanguage::German,
152 0x0008 => PrimaryLanguage::Greek,
153 0x0047 => PrimaryLanguage::Gujarati,
154 0x000D => PrimaryLanguage::Hebrew,
155 0x0039 => PrimaryLanguage::Hindi,
156 0x000E => PrimaryLanguage::Hungarian,
157 0x000F => PrimaryLanguage::Icelandic,
158 0x0021 => PrimaryLanguage::Indonesian,
159 0x0010 => PrimaryLanguage::Italian,
160 0x0011 => PrimaryLanguage::Japanese,
161 0x004B => PrimaryLanguage::Kannada,
162 0x0060 => PrimaryLanguage::Kashmiri,
163 0x003F => PrimaryLanguage::Kazakh,
164 0x0057 => PrimaryLanguage::Konkani,
165 0x0012 => PrimaryLanguage::Korean,
166 0x0026 => PrimaryLanguage::Latvian,
167 0x0027 => PrimaryLanguage::Lithuanian,
168 0x002F => PrimaryLanguage::Macedonian,
169 0x003E => PrimaryLanguage::Malay,
170 0x004C => PrimaryLanguage::Malayalam,
171 0x0058 => PrimaryLanguage::Manipuri,
172 0x004E => PrimaryLanguage::Marathi,
173 0x0061 => PrimaryLanguage::Nepali,
174 0x0014 => PrimaryLanguage::Norwegian,
175 0x0048 => PrimaryLanguage::Oriya,
176 0x0015 => PrimaryLanguage::Polish,
177 0x0016 => PrimaryLanguage::Portuguese,
178 0x0046 => PrimaryLanguage::Punjabi,
179 0x0018 => PrimaryLanguage::Romanian,
180 0x0019 => PrimaryLanguage::Russian,
181 0x004F => PrimaryLanguage::Sanskrit,
182 0x0059 => PrimaryLanguage::Sindhi,
183 0x001B => PrimaryLanguage::Slovak,
184 0x0024 => PrimaryLanguage::Slovenian,
185 0x000A => PrimaryLanguage::Spanish,
186 0x0030 => PrimaryLanguage::Sutu,
187 0x0041 => PrimaryLanguage::Swahili,
188 0x001D => PrimaryLanguage::Swedish,
189 0x0049 => PrimaryLanguage::Tamil,
190 0x0044 => PrimaryLanguage::Tatar,
191 0x004A => PrimaryLanguage::Telugu,
192 0x001E => PrimaryLanguage::Thai,
193 0x001F => PrimaryLanguage::Turkish,
194 0x0022 => PrimaryLanguage::Ukrainian,
195 0x0020 => PrimaryLanguage::Urdu,
196 0x0043 => PrimaryLanguage::Uzbek,
197 0x002A => PrimaryLanguage::Vietnamese,
198 0x00FF => PrimaryLanguage::HID,
199 n => PrimaryLanguage::Other(n),
200 }
201 }
202 }
203
204 /// Language dialects and writing systems.
205 #[derive(Debug, Copy, Clone, PartialEq, Eq)]
206 pub enum SubLanguage {
207 Standard,
208 Classic,
209 Traditional,
210 Modern,
211
212 Algeria, // arabic
213 Argentina, // spanish
214 Australia, // english
215 Austria, // german
216 Bahrain, // arabic
217 Belgium, // dutch, french
218 Belize, // english
219 Bokmal, // norwegian
220 Bolivia, // spanish
221 Brazil, // portuguese
222 BruneiDarussalam, // malay
223 Canada, // english, french
224 Caribbean, // english
225 Chile, // spanish
226 China, // chinese
227 Colombia, // spanish
228 CostaRica, // spanish
229 Cyrillic, // azeri, serbian, uzbek
230 DominicanRepublic, // spanish
231 Ecuador, // spanish
232 Egypt, // arabic
233 ElSalvador, // spanish
234 Finland, // swedish
235 Guatemala, // spanish
236 Honduras, // spanish
237 HongKong, // chinese
238 India, // kashmiri, nepali, urdu
239 Iraq, // arabic
240 Ireland, // english
241 Jamaica, // english
242 Johab, // korean
243 Jordan, // arabic
244 Kuwait, // arabic
245 Latin, // azeri, serbian, uzbek
246 Lebanon, // arabic
247 Libya, // arabic
248 Liechtenstein, // german
249 Luxembourg, // french, german
250 Macau, // chinese
251 Malaysia, // malay
252 Mexico, // spanish
253 Monaco, // french
254 Morocco, // arabic
255 Netherlands, // dutch
256 NewZealand, // english
257 Nicaragua, // spanish
258 Nynorsk, // norwegian
259 Oman, // arabic
260 Pakistan, // urdu
261 Panama, // spanish
262 Paraguay, // spanish
263 Peru, // spanish
264 Philippines, // english
265 PuertoRico, // spanish
266 Qatar, // arabic
267 SaudiArabia, // arabic
268 Singapore, // chinese
269 SouthAfrica, // english
270 Switzerland, // french, german, italian
271 Syria, // arabic
272 Taiwan, // chinese
273 Trinidad, // english
274 Tunisia, // arabic
275 UnitedArabEmirates, // arabic
276 UnitedKingdom, // english
277 UnitedStates, // english
278 Uruguay, // spanish
279 Venezuela, // spanish
280 Yemen, // arabic
281 Zimbabwe, // english
282
283 UsageDataDescriptor, // HID
284 VendorDefined1, // HID
285 VendorDefined2, // HID
286 VendorDefined3, // HID
287 VendorDefined4, // HID
288
289 Other(u16),
290 }
291
292 impl SubLanguage {
from_raw(language: PrimaryLanguage, raw: u16) -> SubLanguage293 fn from_raw(language: PrimaryLanguage, raw: u16) -> SubLanguage {
294 match language {
295 PrimaryLanguage::Arabic => match raw & SUB_LANGUAGE_MASK {
296 0x0400 => SubLanguage::SaudiArabia,
297 0x0800 => SubLanguage::Iraq,
298 0x0C00 => SubLanguage::Egypt,
299 0x1000 => SubLanguage::Libya,
300 0x1400 => SubLanguage::Algeria,
301 0x1800 => SubLanguage::Morocco,
302 0x1C00 => SubLanguage::Tunisia,
303 0x2000 => SubLanguage::Oman,
304 0x2400 => SubLanguage::Yemen,
305 0x2800 => SubLanguage::Syria,
306 0x2C00 => SubLanguage::Jordan,
307 0x3000 => SubLanguage::Lebanon,
308 0x3400 => SubLanguage::Kuwait,
309 0x3800 => SubLanguage::UnitedArabEmirates,
310 0x3C00 => SubLanguage::Bahrain,
311 0x4000 => SubLanguage::Qatar,
312 n => SubLanguage::Other(n),
313 },
314 PrimaryLanguage::Azeri => match raw & SUB_LANGUAGE_MASK {
315 0x0400 => SubLanguage::Latin,
316 0x0800 => SubLanguage::Cyrillic,
317 n => SubLanguage::Other(n),
318 },
319 PrimaryLanguage::Chinese => match raw & SUB_LANGUAGE_MASK {
320 0x0400 => SubLanguage::Taiwan,
321 0x0800 => SubLanguage::China,
322 0x0C00 => SubLanguage::HongKong,
323 0x1000 => SubLanguage::Singapore,
324 0x1400 => SubLanguage::Macau,
325 n => SubLanguage::Other(n),
326 },
327 PrimaryLanguage::Dutch => match raw & SUB_LANGUAGE_MASK {
328 0x0400 => SubLanguage::Netherlands,
329 0x0800 => SubLanguage::Belgium,
330 n => SubLanguage::Other(n),
331 },
332 PrimaryLanguage::English => match raw & SUB_LANGUAGE_MASK {
333 0x0400 => SubLanguage::UnitedStates,
334 0x0800 => SubLanguage::UnitedKingdom,
335 0x0C00 => SubLanguage::Australia,
336 0x1000 => SubLanguage::Canada,
337 0x1400 => SubLanguage::NewZealand,
338 0x1800 => SubLanguage::Ireland,
339 0x1C00 => SubLanguage::SouthAfrica,
340 0x2000 => SubLanguage::Jamaica,
341 0x2400 => SubLanguage::Caribbean,
342 0x2800 => SubLanguage::Belize,
343 0x2C00 => SubLanguage::Trinidad,
344 0x3000 => SubLanguage::Zimbabwe,
345 0x3400 => SubLanguage::Philippines,
346 n => SubLanguage::Other(n),
347 },
348 PrimaryLanguage::French => match raw & SUB_LANGUAGE_MASK {
349 0x0400 => SubLanguage::Standard,
350 0x0800 => SubLanguage::Belgium,
351 0x0C00 => SubLanguage::Canada,
352 0x1000 => SubLanguage::Switzerland,
353 0x1400 => SubLanguage::Luxembourg,
354 0x1800 => SubLanguage::Monaco,
355 n => SubLanguage::Other(n),
356 },
357 PrimaryLanguage::German => match raw & SUB_LANGUAGE_MASK {
358 0x0400 => SubLanguage::Standard,
359 0x0800 => SubLanguage::Switzerland,
360 0x0C00 => SubLanguage::Austria,
361 0x1000 => SubLanguage::Luxembourg,
362 0x1400 => SubLanguage::Liechtenstein,
363 n => SubLanguage::Other(n),
364 },
365 PrimaryLanguage::Italian => match raw & SUB_LANGUAGE_MASK {
366 0x0400 => SubLanguage::Standard,
367 0x0800 => SubLanguage::Switzerland,
368 n => SubLanguage::Other(n),
369 },
370 PrimaryLanguage::Korean => match raw & SUB_LANGUAGE_MASK {
371 0x0400 => SubLanguage::Standard,
372 0x0800 => SubLanguage::Johab,
373 n => SubLanguage::Other(n),
374 },
375 PrimaryLanguage::Lithuanian => match raw & SUB_LANGUAGE_MASK {
376 0x0400 => SubLanguage::Standard,
377 0x0800 => SubLanguage::Classic,
378 n => SubLanguage::Other(n),
379 },
380 PrimaryLanguage::Malay => match raw & SUB_LANGUAGE_MASK {
381 0x0400 => SubLanguage::Malaysia,
382 0x0800 => SubLanguage::BruneiDarussalam,
383 n => SubLanguage::Other(n),
384 },
385 PrimaryLanguage::Norwegian => match raw & SUB_LANGUAGE_MASK {
386 0x0400 => SubLanguage::Bokmal,
387 0x0800 => SubLanguage::Nynorsk,
388 n => SubLanguage::Other(n),
389 },
390 PrimaryLanguage::Portuguese => match raw & SUB_LANGUAGE_MASK {
391 0x0400 => SubLanguage::Brazil,
392 0x0800 => SubLanguage::Standard,
393 n => SubLanguage::Other(n),
394 },
395 PrimaryLanguage::Serbian => match raw & SUB_LANGUAGE_MASK {
396 0x0C00 => SubLanguage::Cyrillic,
397 0x0800 => SubLanguage::Latin,
398 n => SubLanguage::Other(n),
399 },
400 PrimaryLanguage::Spanish => match raw & SUB_LANGUAGE_MASK {
401 0x0400 => SubLanguage::Traditional,
402 0x0800 => SubLanguage::Mexico,
403 0x0C00 => SubLanguage::Modern,
404 0x1000 => SubLanguage::Guatemala,
405 0x1400 => SubLanguage::CostaRica,
406 0x1800 => SubLanguage::Panama,
407 0x1C00 => SubLanguage::DominicanRepublic,
408 0x2000 => SubLanguage::Venezuela,
409 0x2400 => SubLanguage::Colombia,
410 0x2800 => SubLanguage::Peru,
411 0x2C00 => SubLanguage::Argentina,
412 0x3000 => SubLanguage::Ecuador,
413 0x3400 => SubLanguage::Chile,
414 0x3800 => SubLanguage::Uruguay,
415 0x3C00 => SubLanguage::Paraguay,
416 0x4000 => SubLanguage::Bolivia,
417 0x4400 => SubLanguage::ElSalvador,
418 0x4800 => SubLanguage::Honduras,
419 0x4C00 => SubLanguage::Nicaragua,
420 0x5000 => SubLanguage::PuertoRico,
421 n => SubLanguage::Other(n),
422 },
423 PrimaryLanguage::Swedish => match raw & SUB_LANGUAGE_MASK {
424 0x0400 => SubLanguage::Standard,
425 0x0800 => SubLanguage::Finland,
426 n => SubLanguage::Other(n),
427 },
428 PrimaryLanguage::Urdu => match raw & SUB_LANGUAGE_MASK {
429 0x0400 => SubLanguage::Pakistan,
430 0x0800 => SubLanguage::India,
431 n => SubLanguage::Other(n),
432 },
433 PrimaryLanguage::Uzbek => match raw & SUB_LANGUAGE_MASK {
434 0x0400 => SubLanguage::Latin,
435 0x0800 => SubLanguage::Cyrillic,
436 n => SubLanguage::Other(n),
437 },
438 PrimaryLanguage::HID => match raw & SUB_LANGUAGE_MASK {
439 0x0400 => SubLanguage::UsageDataDescriptor,
440 0xF000 => SubLanguage::VendorDefined1,
441 0xF400 => SubLanguage::VendorDefined2,
442 0xF800 => SubLanguage::VendorDefined3,
443 0xFC00 => SubLanguage::VendorDefined4,
444 n => SubLanguage::Other(n),
445 },
446 PrimaryLanguage::Other(_) => SubLanguage::Other(raw & SUB_LANGUAGE_MASK),
447 _ => SubLanguage::Standard,
448 }
449 }
450 }
451
452 #[cfg(test)]
453 mod test {
454 use super::{PrimaryLanguage, SubLanguage};
455 use super::{PRIMARY_LANGUAGE_MASK, SUB_LANGUAGE_MASK};
456
457 // language ids defined in http://www.usb.org/developers/docs/USB_LANGIDs.pdf
458 const AFRIKAANS: u16 = 0x0436;
459 const ALBANIAN: u16 = 0x041C;
460 const ARABIC_SAUDI_ARABIA: u16 = 0x0401;
461 const ARABIC_IRAQ: u16 = 0x0801;
462 const ARABIC_EGYPT: u16 = 0x0C01;
463 const ARABIC_LIBYA: u16 = 0x1001;
464 const ARABIC_ALGERIA: u16 = 0x1401;
465 const ARABIC_MOROCCO: u16 = 0x1801;
466 const ARABIC_TUNISIA: u16 = 0x1C01;
467 const ARABIC_OMAN: u16 = 0x2001;
468 const ARABIC_YEMEN: u16 = 0x2401;
469 const ARABIC_SYRIA: u16 = 0x2801;
470 const ARABIC_JORDAN: u16 = 0x2C01;
471 const ARABIC_LEBANON: u16 = 0x3001;
472 const ARABIC_KUWAIT: u16 = 0x3401;
473 const ARABIC_UAE: u16 = 0x3801;
474 const ARABIC_BAHRAIN: u16 = 0x3C01;
475 const ARABIC_QATAR: u16 = 0x4001;
476 const ARMENIAN: u16 = 0x042B;
477 const ASSAMESE: u16 = 0x044D;
478 const AZERI_LATIN: u16 = 0x042C;
479 const AZERI_CYRILLIC: u16 = 0x082C;
480 const BASQUE: u16 = 0x042D;
481 const BELARUSSIAN: u16 = 0x0423;
482 const BENGALI: u16 = 0x0445;
483 const BULGARIAN: u16 = 0x0402;
484 const BURMESE: u16 = 0x0455;
485 const CATALAN: u16 = 0x0403;
486 const CHINESE_TAIWAN: u16 = 0x0404;
487 const CHINESE_CHINA: u16 = 0x0804;
488 const CHINESE_HONG_KONG: u16 = 0x0C04;
489 const CHINESE_SINGAPORE: u16 = 0x1004;
490 const CHINESE_MACAU: u16 = 0x1404;
491 const CROATIAN: u16 = 0x041A;
492 const CZECH: u16 = 0x0405;
493 const DANISH: u16 = 0x0406;
494 const DUTCH_NETHERLANDS: u16 = 0x0413;
495 const DUTCH_BELGIUM: u16 = 0x0813;
496 const ENGLISH_UNITED_STATES: u16 = 0x0409;
497 const ENGLISH_UNITED_KINGDOM: u16 = 0x0809;
498 const ENGLISH_AUSTRALIAN: u16 = 0x0C09;
499 const ENGLISH_CANADIAN: u16 = 0x1009;
500 const ENGLISH_NEW_ZEALAND: u16 = 0x1409;
501 const ENGLISH_IRELAND: u16 = 0x1809;
502 const ENGLISH_SOUTH_AFRICA: u16 = 0x1C09;
503 const ENGLISH_JAMAICA: u16 = 0x2009;
504 const ENGLISH_CARIBBEAN: u16 = 0x2409;
505 const ENGLISH_BELIZE: u16 = 0x2809;
506 const ENGLISH_TRINIDAD: u16 = 0x2C09;
507 const ENGLISH_ZIMBABWE: u16 = 0x3009;
508 const ENGLISH_PHILIPPINES: u16 = 0x3409;
509 const ESTONIAN: u16 = 0x0425;
510 const FAEROESE: u16 = 0x0438;
511 const FARSI: u16 = 0x0429;
512 const FINNISH: u16 = 0x040B;
513 const FRENCH_STANDARD: u16 = 0x040C;
514 const FRENCH_BELGIAN: u16 = 0x080C;
515 const FRENCH_CANADIAN: u16 = 0x0C0C;
516 const FRENCH_SWITZERLAND: u16 = 0x100C;
517 const FRENCH_LUXEMBOURG: u16 = 0x140C;
518 const FRENCH_MONACO: u16 = 0x180C;
519 const GEORGIAN: u16 = 0x0437;
520 const GERMAN_STANDARD: u16 = 0x0407;
521 const GERMAN_SWITZERLAND: u16 = 0x0807;
522 const GERMAN_AUSTRIA: u16 = 0x0C07;
523 const GERMAN_LUXEMBOURG: u16 = 0x1007;
524 const GERMAN_LIECHTENSTEIN: u16 = 0x1407;
525 const GREEK: u16 = 0x0408;
526 const GUJARATI: u16 = 0x0447;
527 const HEBREW: u16 = 0x040D;
528 const HINDI: u16 = 0x0439;
529 const HUNGARIAN: u16 = 0x040E;
530 const ICELANDIC: u16 = 0x040F;
531 const INDONESIAN: u16 = 0x0421;
532 const ITALIAN_STANDARD: u16 = 0x0410;
533 const ITALIAN_SWITZERLAND: u16 = 0x0810;
534 const JAPANESE: u16 = 0x0411;
535 const KANNADA: u16 = 0x044B;
536 const KASHMIRI_INDIA: u16 = 0x0860;
537 const KAZAKH: u16 = 0x043F;
538 const KONKANI: u16 = 0x0457;
539 const KOREAN: u16 = 0x0412;
540 const KOREAN_JOHAB: u16 = 0x0812;
541 const LATVIAN: u16 = 0x0426;
542 const LITHUANIAN: u16 = 0x0427;
543 const LITHUANIAN_CLASSIC: u16 = 0x0827;
544 const MACEDONIAN: u16 = 0x042F;
545 const MALAY_MALAYSIAN: u16 = 0x043E;
546 const MALAY_BRUNEI_DARUSSALAM: u16 = 0x083E;
547 const MALAYALAM: u16 = 0x044C;
548 const MANIPURI: u16 = 0x0458;
549 const MARATHI: u16 = 0x044E;
550 const NEPALI_INDIA: u16 = 0x0861;
551 const NORWEGIAN_BOKMAL: u16 = 0x0414;
552 const NORWEGIAN_NYNORSK: u16 = 0x0814;
553 const ORIYA: u16 = 0x0448;
554 const POLISH: u16 = 0x0415;
555 const PORTUGUESE_BRAZIL: u16 = 0x0416;
556 const PORTUGUESE_STANDARD: u16 = 0x0816;
557 const PUNJABI: u16 = 0x0446;
558 const ROMANIAN: u16 = 0x0418;
559 const RUSSIAN: u16 = 0x0419;
560 const SANSKRIT: u16 = 0x044F;
561 const SERBIAN_CYRILLIC: u16 = 0x0C1A;
562 const SERBIAN_LATIN: u16 = 0x081A;
563 const SINDHI: u16 = 0x0459;
564 const SLOVAK: u16 = 0x041B;
565 const SLOVENIAN: u16 = 0x0424;
566 const SPANISH_TRADITIONAL_SORT: u16 = 0x040A;
567 const SPANISH_MEXICAN: u16 = 0x080A;
568 const SPANISH_MODERN_SORT: u16 = 0x0C0A;
569 const SPANISH_GUATEMALA: u16 = 0x100A;
570 const SPANISH_COSTA_RICA: u16 = 0x140A;
571 const SPANISH_PANAMA: u16 = 0x180A;
572 const SPANISH_DOMINICAN_REPUBLIC: u16 = 0x1C0A;
573 const SPANISH_VENEZUELA: u16 = 0x200A;
574 const SPANISH_COLOMBIA: u16 = 0x240A;
575 const SPANISH_PERU: u16 = 0x280A;
576 const SPANISH_ARGENTINA: u16 = 0x2C0A;
577 const SPANISH_ECUADOR: u16 = 0x300A;
578 const SPANISH_CHILE: u16 = 0x340A;
579 const SPANISH_URUGUAY: u16 = 0x380A;
580 const SPANISH_PARAGUAY: u16 = 0x3C0A;
581 const SPANISH_BOLIVIA: u16 = 0x400A;
582 const SPANISH_EL_SALVADOR: u16 = 0x440A;
583 const SPANISH_HONDURAS: u16 = 0x480A;
584 const SPANISH_NICARAGUA: u16 = 0x4C0A;
585 const SPANISH_PUERTO_RICO: u16 = 0x500A;
586 const SUTU: u16 = 0x0430;
587 const SWAHILI_KENYA: u16 = 0x0441;
588 const SWEDISH: u16 = 0x041D;
589 const SWEDISH_FINLAND: u16 = 0x081D;
590 const TAMIL: u16 = 0x0449;
591 const TATAR_TATARSTAN: u16 = 0x0444;
592 const TELUGU: u16 = 0x044A;
593 const THAI: u16 = 0x041E;
594 const TURKISH: u16 = 0x041F;
595 const UKRAINIAN: u16 = 0x0422;
596 const URDU_PAKISTAN: u16 = 0x0420;
597 const URDU_INDIA: u16 = 0x0820;
598 const UZBEK_LATIN: u16 = 0x0443;
599 const UZBEK_CYRILLIC: u16 = 0x0843;
600 const VIETNAMESE: u16 = 0x042A;
601 const HID_USAGE_DATA_DESCRIPTOR: u16 = 0x04FF;
602 const HID_VENDOR_DEFINED_1: u16 = 0xF0FF;
603 const HID_VENDOR_DEFINED_2: u16 = 0xF4FF;
604 const HID_VENDOR_DEFINED_3: u16 = 0xF8FF;
605 const HID_VENDOR_DEFINED_4: u16 = 0xFCFF;
606
607 #[test]
it_recognizes_afrikaans_as_afrikaans_language()608 fn it_recognizes_afrikaans_as_afrikaans_language() {
609 assert_eq!(
610 super::from_lang_id(AFRIKAANS).primary_language(),
611 PrimaryLanguage::Afrikaans
612 );
613 }
614
615 #[test]
it_recognizes_albanian_as_albanian_language()616 fn it_recognizes_albanian_as_albanian_language() {
617 assert_eq!(
618 super::from_lang_id(ALBANIAN).primary_language(),
619 PrimaryLanguage::Albanian
620 );
621 }
622
623 #[test]
it_recognizes_arabic_from_saudi_arabia_as_arabic_language()624 fn it_recognizes_arabic_from_saudi_arabia_as_arabic_language() {
625 assert_eq!(
626 super::from_lang_id(ARABIC_SAUDI_ARABIA).primary_language(),
627 PrimaryLanguage::Arabic
628 );
629 }
630
631 #[test]
it_recognizes_arabic_from_saudi_arabia_as_saudi_arabia_sub_language()632 fn it_recognizes_arabic_from_saudi_arabia_as_saudi_arabia_sub_language() {
633 assert_eq!(
634 super::from_lang_id(ARABIC_SAUDI_ARABIA).sub_language(),
635 SubLanguage::SaudiArabia
636 );
637 }
638
639 #[test]
it_recognizes_arabic_from_iraq_as_arabic_language()640 fn it_recognizes_arabic_from_iraq_as_arabic_language() {
641 assert_eq!(
642 super::from_lang_id(ARABIC_IRAQ).primary_language(),
643 PrimaryLanguage::Arabic
644 );
645 }
646
647 #[test]
it_recognizes_arabic_from_iraq_as_iraq_sub_language()648 fn it_recognizes_arabic_from_iraq_as_iraq_sub_language() {
649 assert_eq!(
650 super::from_lang_id(ARABIC_IRAQ).sub_language(),
651 SubLanguage::Iraq
652 );
653 }
654
655 #[test]
it_recognizes_arabic_from_egypt_as_arabic_language()656 fn it_recognizes_arabic_from_egypt_as_arabic_language() {
657 assert_eq!(
658 super::from_lang_id(ARABIC_EGYPT).primary_language(),
659 PrimaryLanguage::Arabic
660 );
661 }
662
663 #[test]
it_recognizes_arabic_from_egypt_as_egypt_sub_language()664 fn it_recognizes_arabic_from_egypt_as_egypt_sub_language() {
665 assert_eq!(
666 super::from_lang_id(ARABIC_EGYPT).sub_language(),
667 SubLanguage::Egypt
668 );
669 }
670
671 #[test]
it_recognizes_arabic_from_libya_as_arabic_language()672 fn it_recognizes_arabic_from_libya_as_arabic_language() {
673 assert_eq!(
674 super::from_lang_id(ARABIC_LIBYA).primary_language(),
675 PrimaryLanguage::Arabic
676 );
677 }
678
679 #[test]
it_recognizes_arabic_from_libya_as_libya_sub_language()680 fn it_recognizes_arabic_from_libya_as_libya_sub_language() {
681 assert_eq!(
682 super::from_lang_id(ARABIC_LIBYA).sub_language(),
683 SubLanguage::Libya
684 );
685 }
686
687 #[test]
it_recognizes_arabic_from_algeria_as_arabic_language()688 fn it_recognizes_arabic_from_algeria_as_arabic_language() {
689 assert_eq!(
690 super::from_lang_id(ARABIC_ALGERIA).primary_language(),
691 PrimaryLanguage::Arabic
692 );
693 }
694
695 #[test]
it_recognizes_arabic_from_algeria_as_algeria_sub_language()696 fn it_recognizes_arabic_from_algeria_as_algeria_sub_language() {
697 assert_eq!(
698 super::from_lang_id(ARABIC_ALGERIA).sub_language(),
699 SubLanguage::Algeria
700 );
701 }
702
703 #[test]
it_recognizes_arabic_from_morocco_as_arabic_language()704 fn it_recognizes_arabic_from_morocco_as_arabic_language() {
705 assert_eq!(
706 super::from_lang_id(ARABIC_MOROCCO).primary_language(),
707 PrimaryLanguage::Arabic
708 );
709 }
710
711 #[test]
it_recognizes_arabic_from_morocco_as_morocco_sub_language()712 fn it_recognizes_arabic_from_morocco_as_morocco_sub_language() {
713 assert_eq!(
714 super::from_lang_id(ARABIC_MOROCCO).sub_language(),
715 SubLanguage::Morocco
716 );
717 }
718
719 #[test]
it_recognizes_arabic_from_tunisia_as_arabic_language()720 fn it_recognizes_arabic_from_tunisia_as_arabic_language() {
721 assert_eq!(
722 super::from_lang_id(ARABIC_TUNISIA).primary_language(),
723 PrimaryLanguage::Arabic
724 );
725 }
726
727 #[test]
it_recognizes_arabic_from_tunisia_as_tunisia_sub_language()728 fn it_recognizes_arabic_from_tunisia_as_tunisia_sub_language() {
729 assert_eq!(
730 super::from_lang_id(ARABIC_TUNISIA).sub_language(),
731 SubLanguage::Tunisia
732 );
733 }
734
735 #[test]
it_recognizes_arabic_from_oman_as_arabic_language()736 fn it_recognizes_arabic_from_oman_as_arabic_language() {
737 assert_eq!(
738 super::from_lang_id(ARABIC_OMAN).primary_language(),
739 PrimaryLanguage::Arabic
740 );
741 }
742
743 #[test]
it_recognizes_arabic_from_oman_as_oman_sub_language()744 fn it_recognizes_arabic_from_oman_as_oman_sub_language() {
745 assert_eq!(
746 super::from_lang_id(ARABIC_OMAN).sub_language(),
747 SubLanguage::Oman
748 );
749 }
750
751 #[test]
it_recognizes_arabic_from_yemen_as_arabic_language()752 fn it_recognizes_arabic_from_yemen_as_arabic_language() {
753 assert_eq!(
754 super::from_lang_id(ARABIC_YEMEN).primary_language(),
755 PrimaryLanguage::Arabic
756 );
757 }
758
759 #[test]
it_recognizes_arabic_from_yemen_as_yemen_sub_language()760 fn it_recognizes_arabic_from_yemen_as_yemen_sub_language() {
761 assert_eq!(
762 super::from_lang_id(ARABIC_YEMEN).sub_language(),
763 SubLanguage::Yemen
764 );
765 }
766
767 #[test]
it_recognizes_arabic_from_syria_as_arabic_language()768 fn it_recognizes_arabic_from_syria_as_arabic_language() {
769 assert_eq!(
770 super::from_lang_id(ARABIC_SYRIA).primary_language(),
771 PrimaryLanguage::Arabic
772 );
773 }
774
775 #[test]
it_recognizes_arabic_from_syria_as_syria_sub_language()776 fn it_recognizes_arabic_from_syria_as_syria_sub_language() {
777 assert_eq!(
778 super::from_lang_id(ARABIC_SYRIA).sub_language(),
779 SubLanguage::Syria
780 );
781 }
782
783 #[test]
it_recognizes_arabic_from_jordan_as_arabic_language()784 fn it_recognizes_arabic_from_jordan_as_arabic_language() {
785 assert_eq!(
786 super::from_lang_id(ARABIC_JORDAN).primary_language(),
787 PrimaryLanguage::Arabic
788 );
789 }
790
791 #[test]
it_recognizes_arabic_from_jordan_as_jordan_sub_language()792 fn it_recognizes_arabic_from_jordan_as_jordan_sub_language() {
793 assert_eq!(
794 super::from_lang_id(ARABIC_JORDAN).sub_language(),
795 SubLanguage::Jordan
796 );
797 }
798
799 #[test]
it_recognizes_arabic_from_lebanon_as_arabic_language()800 fn it_recognizes_arabic_from_lebanon_as_arabic_language() {
801 assert_eq!(
802 super::from_lang_id(ARABIC_LEBANON).primary_language(),
803 PrimaryLanguage::Arabic
804 );
805 }
806
807 #[test]
it_recognizes_arabic_from_lebanon_as_lebanon_sub_language()808 fn it_recognizes_arabic_from_lebanon_as_lebanon_sub_language() {
809 assert_eq!(
810 super::from_lang_id(ARABIC_LEBANON).sub_language(),
811 SubLanguage::Lebanon
812 );
813 }
814
815 #[test]
it_recognizes_arabic_from_kuwait_as_arabic_language()816 fn it_recognizes_arabic_from_kuwait_as_arabic_language() {
817 assert_eq!(
818 super::from_lang_id(ARABIC_KUWAIT).primary_language(),
819 PrimaryLanguage::Arabic
820 );
821 }
822
823 #[test]
it_recognizes_arabic_from_kuwait_as_kuwait_sub_language()824 fn it_recognizes_arabic_from_kuwait_as_kuwait_sub_language() {
825 assert_eq!(
826 super::from_lang_id(ARABIC_KUWAIT).sub_language(),
827 SubLanguage::Kuwait
828 );
829 }
830
831 #[test]
it_recognizes_arabic_from_uae_as_arabic_language()832 fn it_recognizes_arabic_from_uae_as_arabic_language() {
833 assert_eq!(
834 super::from_lang_id(ARABIC_UAE).primary_language(),
835 PrimaryLanguage::Arabic
836 );
837 }
838
839 #[test]
it_recognizes_arabic_from_uae_as_uae_sub_language()840 fn it_recognizes_arabic_from_uae_as_uae_sub_language() {
841 assert_eq!(
842 super::from_lang_id(ARABIC_UAE).sub_language(),
843 SubLanguage::UnitedArabEmirates
844 );
845 }
846
847 #[test]
it_recognizes_arabic_from_bahrain_as_arabic_language()848 fn it_recognizes_arabic_from_bahrain_as_arabic_language() {
849 assert_eq!(
850 super::from_lang_id(ARABIC_BAHRAIN).primary_language(),
851 PrimaryLanguage::Arabic
852 );
853 }
854
855 #[test]
it_recognizes_arabic_from_bahrain_as_bahrain_sub_language()856 fn it_recognizes_arabic_from_bahrain_as_bahrain_sub_language() {
857 assert_eq!(
858 super::from_lang_id(ARABIC_BAHRAIN).sub_language(),
859 SubLanguage::Bahrain
860 );
861 }
862
863 #[test]
it_recognizes_arabic_from_qatar_as_arabic_language()864 fn it_recognizes_arabic_from_qatar_as_arabic_language() {
865 assert_eq!(
866 super::from_lang_id(ARABIC_QATAR).primary_language(),
867 PrimaryLanguage::Arabic
868 );
869 }
870
871 #[test]
it_recognizes_arabic_from_qatar_as_qatar_sub_language()872 fn it_recognizes_arabic_from_qatar_as_qatar_sub_language() {
873 assert_eq!(
874 super::from_lang_id(ARABIC_QATAR).sub_language(),
875 SubLanguage::Qatar
876 );
877 }
878
879 #[test]
it_recognizes_armenian_as_armenian_language()880 fn it_recognizes_armenian_as_armenian_language() {
881 assert_eq!(
882 super::from_lang_id(ARMENIAN).primary_language(),
883 PrimaryLanguage::Armenian
884 );
885 }
886
887 #[test]
it_recognizes_assamese_as_assamese_language()888 fn it_recognizes_assamese_as_assamese_language() {
889 assert_eq!(
890 super::from_lang_id(ASSAMESE).primary_language(),
891 PrimaryLanguage::Assamese
892 );
893 }
894
895 #[test]
it_recognizes_azeri_latin_as_azeri_language()896 fn it_recognizes_azeri_latin_as_azeri_language() {
897 assert_eq!(
898 super::from_lang_id(AZERI_LATIN).primary_language(),
899 PrimaryLanguage::Azeri
900 );
901 }
902
903 #[test]
it_recognizes_azeri_latin_as_latin_sub_language()904 fn it_recognizes_azeri_latin_as_latin_sub_language() {
905 assert_eq!(
906 super::from_lang_id(AZERI_LATIN).sub_language(),
907 SubLanguage::Latin
908 );
909 }
910
911 #[test]
it_recognizes_azeri_cyrillic_as_azeri_language()912 fn it_recognizes_azeri_cyrillic_as_azeri_language() {
913 assert_eq!(
914 super::from_lang_id(AZERI_CYRILLIC).primary_language(),
915 PrimaryLanguage::Azeri
916 );
917 }
918
919 #[test]
it_recognizes_azeri_cyrillic_as_cyrillic_sub_language()920 fn it_recognizes_azeri_cyrillic_as_cyrillic_sub_language() {
921 assert_eq!(
922 super::from_lang_id(AZERI_CYRILLIC).sub_language(),
923 SubLanguage::Cyrillic
924 );
925 }
926
927 #[test]
it_recognizes_basque_as_basque_language()928 fn it_recognizes_basque_as_basque_language() {
929 assert_eq!(
930 super::from_lang_id(BASQUE).primary_language(),
931 PrimaryLanguage::Basque
932 );
933 }
934
935 #[test]
it_recognizes_belarussian_as_belarussian_language()936 fn it_recognizes_belarussian_as_belarussian_language() {
937 assert_eq!(
938 super::from_lang_id(BELARUSSIAN).primary_language(),
939 PrimaryLanguage::Belarussian
940 );
941 }
942
943 #[test]
it_recognizes_bengali_as_bengali_language()944 fn it_recognizes_bengali_as_bengali_language() {
945 assert_eq!(
946 super::from_lang_id(BENGALI).primary_language(),
947 PrimaryLanguage::Bengali
948 );
949 }
950
951 #[test]
it_recognizes_bulgarian_as_bulgarian_language()952 fn it_recognizes_bulgarian_as_bulgarian_language() {
953 assert_eq!(
954 super::from_lang_id(BULGARIAN).primary_language(),
955 PrimaryLanguage::Bulgarian
956 );
957 }
958
959 #[test]
it_recognizes_burmese_as_burmese_language()960 fn it_recognizes_burmese_as_burmese_language() {
961 assert_eq!(
962 super::from_lang_id(BURMESE).primary_language(),
963 PrimaryLanguage::Burmese
964 );
965 }
966
967 #[test]
it_recognizes_catalan_as_catalan_language()968 fn it_recognizes_catalan_as_catalan_language() {
969 assert_eq!(
970 super::from_lang_id(CATALAN).primary_language(),
971 PrimaryLanguage::Catalan
972 );
973 }
974
975 #[test]
it_recognizes_chinese_from_taiwan_as_chinese_language()976 fn it_recognizes_chinese_from_taiwan_as_chinese_language() {
977 assert_eq!(
978 super::from_lang_id(CHINESE_TAIWAN).primary_language(),
979 PrimaryLanguage::Chinese
980 );
981 }
982
983 #[test]
it_recognizes_chinese_from_taiwan_as_taiwan_sub_language()984 fn it_recognizes_chinese_from_taiwan_as_taiwan_sub_language() {
985 assert_eq!(
986 super::from_lang_id(CHINESE_TAIWAN).sub_language(),
987 SubLanguage::Taiwan
988 );
989 }
990
991 #[test]
it_recognizes_chinese_from_china_as_chinese_language()992 fn it_recognizes_chinese_from_china_as_chinese_language() {
993 assert_eq!(
994 super::from_lang_id(CHINESE_CHINA).primary_language(),
995 PrimaryLanguage::Chinese
996 );
997 }
998
999 #[test]
it_recognizes_chinese_from_china_as_china_sub_language()1000 fn it_recognizes_chinese_from_china_as_china_sub_language() {
1001 assert_eq!(
1002 super::from_lang_id(CHINESE_CHINA).sub_language(),
1003 SubLanguage::China
1004 );
1005 }
1006
1007 #[test]
it_recognizes_chinese_from_hong_kong_as_chinese_language()1008 fn it_recognizes_chinese_from_hong_kong_as_chinese_language() {
1009 assert_eq!(
1010 super::from_lang_id(CHINESE_HONG_KONG).primary_language(),
1011 PrimaryLanguage::Chinese
1012 );
1013 }
1014
1015 #[test]
it_recognizes_chinese_from_hong_kong_as_hong_kong_sub_language()1016 fn it_recognizes_chinese_from_hong_kong_as_hong_kong_sub_language() {
1017 assert_eq!(
1018 super::from_lang_id(CHINESE_HONG_KONG).sub_language(),
1019 SubLanguage::HongKong
1020 );
1021 }
1022
1023 #[test]
it_recognizes_chinese_from_singapore_as_chinese_language()1024 fn it_recognizes_chinese_from_singapore_as_chinese_language() {
1025 assert_eq!(
1026 super::from_lang_id(CHINESE_SINGAPORE).primary_language(),
1027 PrimaryLanguage::Chinese
1028 );
1029 }
1030
1031 #[test]
it_recognizes_chinese_from_singapore_as_singapore_sub_language()1032 fn it_recognizes_chinese_from_singapore_as_singapore_sub_language() {
1033 assert_eq!(
1034 super::from_lang_id(CHINESE_SINGAPORE).sub_language(),
1035 SubLanguage::Singapore
1036 );
1037 }
1038
1039 #[test]
it_recognizes_chinese_from_macau_as_chinese_language()1040 fn it_recognizes_chinese_from_macau_as_chinese_language() {
1041 assert_eq!(
1042 super::from_lang_id(CHINESE_MACAU).primary_language(),
1043 PrimaryLanguage::Chinese
1044 );
1045 }
1046
1047 #[test]
it_recognizes_chinese_from_macau_as_macau_sub_language()1048 fn it_recognizes_chinese_from_macau_as_macau_sub_language() {
1049 assert_eq!(
1050 super::from_lang_id(CHINESE_MACAU).sub_language(),
1051 SubLanguage::Macau
1052 );
1053 }
1054
1055 #[test]
it_recognizes_croatian_as_croatian_language()1056 fn it_recognizes_croatian_as_croatian_language() {
1057 assert_eq!(
1058 super::from_lang_id(CROATIAN).primary_language(),
1059 PrimaryLanguage::Croatian
1060 );
1061 }
1062
1063 #[test]
it_recognizes_czech_as_czech_language()1064 fn it_recognizes_czech_as_czech_language() {
1065 assert_eq!(
1066 super::from_lang_id(CZECH).primary_language(),
1067 PrimaryLanguage::Czech
1068 );
1069 }
1070
1071 #[test]
it_recognizes_danish_as_danish_language()1072 fn it_recognizes_danish_as_danish_language() {
1073 assert_eq!(
1074 super::from_lang_id(DANISH).primary_language(),
1075 PrimaryLanguage::Danish
1076 );
1077 }
1078
1079 #[test]
it_recognizes_dutch_from_netherlands_as_dutch_language()1080 fn it_recognizes_dutch_from_netherlands_as_dutch_language() {
1081 assert_eq!(
1082 super::from_lang_id(DUTCH_NETHERLANDS).primary_language(),
1083 PrimaryLanguage::Dutch
1084 );
1085 }
1086
1087 #[test]
it_recognizes_dutch_from_netherlands_as_netherlands_sub_language()1088 fn it_recognizes_dutch_from_netherlands_as_netherlands_sub_language() {
1089 assert_eq!(
1090 super::from_lang_id(DUTCH_NETHERLANDS).sub_language(),
1091 SubLanguage::Netherlands
1092 );
1093 }
1094
1095 #[test]
it_recognizes_dutch_from_belgium_as_dutch_language()1096 fn it_recognizes_dutch_from_belgium_as_dutch_language() {
1097 assert_eq!(
1098 super::from_lang_id(DUTCH_BELGIUM).primary_language(),
1099 PrimaryLanguage::Dutch
1100 );
1101 }
1102
1103 #[test]
it_recognizes_dutch_from_belgium_as_belgium_sub_language()1104 fn it_recognizes_dutch_from_belgium_as_belgium_sub_language() {
1105 assert_eq!(
1106 super::from_lang_id(DUTCH_BELGIUM).sub_language(),
1107 SubLanguage::Belgium
1108 );
1109 }
1110
1111 #[test]
it_recognizes_english_from_united_states_as_english_language()1112 fn it_recognizes_english_from_united_states_as_english_language() {
1113 assert_eq!(
1114 super::from_lang_id(ENGLISH_UNITED_STATES).primary_language(),
1115 PrimaryLanguage::English
1116 );
1117 }
1118
1119 #[test]
it_recognizes_english_from_united_states_as_united_states_sub_language()1120 fn it_recognizes_english_from_united_states_as_united_states_sub_language() {
1121 assert_eq!(
1122 super::from_lang_id(ENGLISH_UNITED_STATES).sub_language(),
1123 SubLanguage::UnitedStates
1124 );
1125 }
1126
1127 #[test]
it_recognizes_english_from_united_kingdom_as_english_language()1128 fn it_recognizes_english_from_united_kingdom_as_english_language() {
1129 assert_eq!(
1130 super::from_lang_id(ENGLISH_UNITED_KINGDOM).primary_language(),
1131 PrimaryLanguage::English
1132 );
1133 }
1134
1135 #[test]
it_recognizes_english_from_united_kingdom_as_united_kingdom_sub_language()1136 fn it_recognizes_english_from_united_kingdom_as_united_kingdom_sub_language() {
1137 assert_eq!(
1138 super::from_lang_id(ENGLISH_UNITED_KINGDOM).sub_language(),
1139 SubLanguage::UnitedKingdom
1140 );
1141 }
1142
1143 #[test]
it_recognizes_english_from_australia_as_english_language()1144 fn it_recognizes_english_from_australia_as_english_language() {
1145 assert_eq!(
1146 super::from_lang_id(ENGLISH_AUSTRALIAN).primary_language(),
1147 PrimaryLanguage::English
1148 );
1149 }
1150
1151 #[test]
it_recognizes_english_from_australia_as_australia_sub_language()1152 fn it_recognizes_english_from_australia_as_australia_sub_language() {
1153 assert_eq!(
1154 super::from_lang_id(ENGLISH_AUSTRALIAN).sub_language(),
1155 SubLanguage::Australia
1156 );
1157 }
1158
1159 #[test]
it_recognizes_english_from_canada_as_english_language()1160 fn it_recognizes_english_from_canada_as_english_language() {
1161 assert_eq!(
1162 super::from_lang_id(ENGLISH_CANADIAN).primary_language(),
1163 PrimaryLanguage::English
1164 );
1165 }
1166
1167 #[test]
it_recognizes_english_from_canada_as_canada_sub_language()1168 fn it_recognizes_english_from_canada_as_canada_sub_language() {
1169 assert_eq!(
1170 super::from_lang_id(ENGLISH_CANADIAN).sub_language(),
1171 SubLanguage::Canada
1172 );
1173 }
1174
1175 #[test]
it_recognizes_english_from_new_zealand_as_english_language()1176 fn it_recognizes_english_from_new_zealand_as_english_language() {
1177 assert_eq!(
1178 super::from_lang_id(ENGLISH_NEW_ZEALAND).primary_language(),
1179 PrimaryLanguage::English
1180 );
1181 }
1182
1183 #[test]
it_recognizes_english_from_new_zealand_as_new_zealand_language()1184 fn it_recognizes_english_from_new_zealand_as_new_zealand_language() {
1185 assert_eq!(
1186 super::from_lang_id(ENGLISH_NEW_ZEALAND).sub_language(),
1187 SubLanguage::NewZealand
1188 );
1189 }
1190
1191 #[test]
it_recognizes_english_from_ireland_as_english_language()1192 fn it_recognizes_english_from_ireland_as_english_language() {
1193 assert_eq!(
1194 super::from_lang_id(ENGLISH_IRELAND).primary_language(),
1195 PrimaryLanguage::English
1196 );
1197 }
1198
1199 #[test]
it_recognizes_english_from_ireland_as_ireland_sub_language()1200 fn it_recognizes_english_from_ireland_as_ireland_sub_language() {
1201 assert_eq!(
1202 super::from_lang_id(ENGLISH_IRELAND).sub_language(),
1203 SubLanguage::Ireland
1204 );
1205 }
1206
1207 #[test]
it_recognizes_english_from_south_africa_as_english_language()1208 fn it_recognizes_english_from_south_africa_as_english_language() {
1209 assert_eq!(
1210 super::from_lang_id(ENGLISH_SOUTH_AFRICA).primary_language(),
1211 PrimaryLanguage::English
1212 );
1213 }
1214
1215 #[test]
it_recognizes_english_from_south_africa_as_south_africa_sub_language()1216 fn it_recognizes_english_from_south_africa_as_south_africa_sub_language() {
1217 assert_eq!(
1218 super::from_lang_id(ENGLISH_SOUTH_AFRICA).sub_language(),
1219 SubLanguage::SouthAfrica
1220 );
1221 }
1222
1223 #[test]
it_recognizes_english_from_jamaica_as_english_language()1224 fn it_recognizes_english_from_jamaica_as_english_language() {
1225 assert_eq!(
1226 super::from_lang_id(ENGLISH_JAMAICA).primary_language(),
1227 PrimaryLanguage::English
1228 );
1229 }
1230
1231 #[test]
it_recognizes_english_from_jamaica_as_jamaica_sub_language()1232 fn it_recognizes_english_from_jamaica_as_jamaica_sub_language() {
1233 assert_eq!(
1234 super::from_lang_id(ENGLISH_JAMAICA).sub_language(),
1235 SubLanguage::Jamaica
1236 );
1237 }
1238
1239 #[test]
it_recognizes_english_from_caribbean_as_english_language()1240 fn it_recognizes_english_from_caribbean_as_english_language() {
1241 assert_eq!(
1242 super::from_lang_id(ENGLISH_CARIBBEAN).primary_language(),
1243 PrimaryLanguage::English
1244 );
1245 }
1246
1247 #[test]
it_recognizes_english_from_caribbean_as_caribbean_sub_language()1248 fn it_recognizes_english_from_caribbean_as_caribbean_sub_language() {
1249 assert_eq!(
1250 super::from_lang_id(ENGLISH_CARIBBEAN).sub_language(),
1251 SubLanguage::Caribbean
1252 );
1253 }
1254
1255 #[test]
it_recognizes_english_from_belize_as_english_language()1256 fn it_recognizes_english_from_belize_as_english_language() {
1257 assert_eq!(
1258 super::from_lang_id(ENGLISH_BELIZE).primary_language(),
1259 PrimaryLanguage::English
1260 );
1261 }
1262
1263 #[test]
it_recognizes_english_from_belize_as_belize_sub_language()1264 fn it_recognizes_english_from_belize_as_belize_sub_language() {
1265 assert_eq!(
1266 super::from_lang_id(ENGLISH_BELIZE).sub_language(),
1267 SubLanguage::Belize
1268 );
1269 }
1270
1271 #[test]
it_recognizes_english_from_trinidad_as_english_language()1272 fn it_recognizes_english_from_trinidad_as_english_language() {
1273 assert_eq!(
1274 super::from_lang_id(ENGLISH_TRINIDAD).primary_language(),
1275 PrimaryLanguage::English
1276 );
1277 }
1278
1279 #[test]
it_recognizes_english_from_trinidad_as_trinidad_sub_language()1280 fn it_recognizes_english_from_trinidad_as_trinidad_sub_language() {
1281 assert_eq!(
1282 super::from_lang_id(ENGLISH_TRINIDAD).sub_language(),
1283 SubLanguage::Trinidad
1284 );
1285 }
1286
1287 #[test]
it_recognizes_english_from_zimbabwe_as_english_language()1288 fn it_recognizes_english_from_zimbabwe_as_english_language() {
1289 assert_eq!(
1290 super::from_lang_id(ENGLISH_ZIMBABWE).primary_language(),
1291 PrimaryLanguage::English
1292 );
1293 }
1294
1295 #[test]
it_recognizes_english_from_zimbabwe_as_zimbabwe_sub_language()1296 fn it_recognizes_english_from_zimbabwe_as_zimbabwe_sub_language() {
1297 assert_eq!(
1298 super::from_lang_id(ENGLISH_ZIMBABWE).sub_language(),
1299 SubLanguage::Zimbabwe
1300 );
1301 }
1302
1303 #[test]
it_recognizes_english_from_philippines_as_english_language()1304 fn it_recognizes_english_from_philippines_as_english_language() {
1305 assert_eq!(
1306 super::from_lang_id(ENGLISH_PHILIPPINES).primary_language(),
1307 PrimaryLanguage::English
1308 );
1309 }
1310
1311 #[test]
it_recognizes_english_from_philippines_as_philippines_sub_language()1312 fn it_recognizes_english_from_philippines_as_philippines_sub_language() {
1313 assert_eq!(
1314 super::from_lang_id(ENGLISH_PHILIPPINES).sub_language(),
1315 SubLanguage::Philippines
1316 );
1317 }
1318
1319 #[test]
it_recognizes_estonian_as_estonian_language()1320 fn it_recognizes_estonian_as_estonian_language() {
1321 assert_eq!(
1322 super::from_lang_id(ESTONIAN).primary_language(),
1323 PrimaryLanguage::Estonian
1324 );
1325 }
1326
1327 #[test]
it_recognizes_faeroese_as_faeroese_language()1328 fn it_recognizes_faeroese_as_faeroese_language() {
1329 assert_eq!(
1330 super::from_lang_id(FAEROESE).primary_language(),
1331 PrimaryLanguage::Faeroese
1332 );
1333 }
1334
1335 #[test]
it_recognizes_farsi_as_farsi_language()1336 fn it_recognizes_farsi_as_farsi_language() {
1337 assert_eq!(
1338 super::from_lang_id(FARSI).primary_language(),
1339 PrimaryLanguage::Farsi
1340 );
1341 }
1342
1343 #[test]
it_recognizes_finnish_as_finnish_language()1344 fn it_recognizes_finnish_as_finnish_language() {
1345 assert_eq!(
1346 super::from_lang_id(FINNISH).primary_language(),
1347 PrimaryLanguage::Finnish
1348 );
1349 }
1350
1351 #[test]
it_recognizes_french_standard_as_french_language()1352 fn it_recognizes_french_standard_as_french_language() {
1353 assert_eq!(
1354 super::from_lang_id(FRENCH_STANDARD).primary_language(),
1355 PrimaryLanguage::French
1356 );
1357 }
1358
1359 #[test]
it_recognizes_french_standard_as_standard_sub_language()1360 fn it_recognizes_french_standard_as_standard_sub_language() {
1361 assert_eq!(
1362 super::from_lang_id(FRENCH_STANDARD).sub_language(),
1363 SubLanguage::Standard
1364 );
1365 }
1366
1367 #[test]
it_recognizes_french_from_belgium_as_french_language()1368 fn it_recognizes_french_from_belgium_as_french_language() {
1369 assert_eq!(
1370 super::from_lang_id(FRENCH_BELGIAN).primary_language(),
1371 PrimaryLanguage::French
1372 );
1373 }
1374
1375 #[test]
it_recognizes_french_from_belgium_as_belgium_sub_language()1376 fn it_recognizes_french_from_belgium_as_belgium_sub_language() {
1377 assert_eq!(
1378 super::from_lang_id(FRENCH_BELGIAN).sub_language(),
1379 SubLanguage::Belgium
1380 );
1381 }
1382
1383 #[test]
it_recognizes_french_from_canada_as_french_language()1384 fn it_recognizes_french_from_canada_as_french_language() {
1385 assert_eq!(
1386 super::from_lang_id(FRENCH_CANADIAN).primary_language(),
1387 PrimaryLanguage::French
1388 );
1389 }
1390
1391 #[test]
it_recognizes_french_from_canada_as_canada_sub_language()1392 fn it_recognizes_french_from_canada_as_canada_sub_language() {
1393 assert_eq!(
1394 super::from_lang_id(FRENCH_CANADIAN).sub_language(),
1395 SubLanguage::Canada
1396 );
1397 }
1398
1399 #[test]
it_recognizes_french_from_switzerland_as_french_language()1400 fn it_recognizes_french_from_switzerland_as_french_language() {
1401 assert_eq!(
1402 super::from_lang_id(FRENCH_SWITZERLAND).primary_language(),
1403 PrimaryLanguage::French
1404 );
1405 }
1406
1407 #[test]
it_recognizes_french_from_switzerland_as_switzerland_sub_language()1408 fn it_recognizes_french_from_switzerland_as_switzerland_sub_language() {
1409 assert_eq!(
1410 super::from_lang_id(FRENCH_SWITZERLAND).sub_language(),
1411 SubLanguage::Switzerland
1412 );
1413 }
1414
1415 #[test]
it_recognizes_french_from_luxembourg_as_french_language()1416 fn it_recognizes_french_from_luxembourg_as_french_language() {
1417 assert_eq!(
1418 super::from_lang_id(FRENCH_LUXEMBOURG).primary_language(),
1419 PrimaryLanguage::French
1420 );
1421 }
1422
1423 #[test]
it_recognizes_french_from_luxembourg_as_luxembourg_sub_language()1424 fn it_recognizes_french_from_luxembourg_as_luxembourg_sub_language() {
1425 assert_eq!(
1426 super::from_lang_id(FRENCH_LUXEMBOURG).sub_language(),
1427 SubLanguage::Luxembourg
1428 );
1429 }
1430
1431 #[test]
it_recognizes_french_from_monaco_as_french_language()1432 fn it_recognizes_french_from_monaco_as_french_language() {
1433 assert_eq!(
1434 super::from_lang_id(FRENCH_MONACO).primary_language(),
1435 PrimaryLanguage::French
1436 );
1437 }
1438
1439 #[test]
it_recognizes_french_from_monaco_as_monaco_sub_language()1440 fn it_recognizes_french_from_monaco_as_monaco_sub_language() {
1441 assert_eq!(
1442 super::from_lang_id(FRENCH_MONACO).sub_language(),
1443 SubLanguage::Monaco
1444 );
1445 }
1446
1447 #[test]
it_recognizes_georgian_as_georgian_language()1448 fn it_recognizes_georgian_as_georgian_language() {
1449 assert_eq!(
1450 super::from_lang_id(GEORGIAN).primary_language(),
1451 PrimaryLanguage::Georgian
1452 );
1453 }
1454
1455 #[test]
it_recognizes_german_standard_as_german_language()1456 fn it_recognizes_german_standard_as_german_language() {
1457 assert_eq!(
1458 super::from_lang_id(GERMAN_STANDARD).primary_language(),
1459 PrimaryLanguage::German
1460 );
1461 }
1462
1463 #[test]
it_recognizes_german_standard_as_standard_sub_language()1464 fn it_recognizes_german_standard_as_standard_sub_language() {
1465 assert_eq!(
1466 super::from_lang_id(GERMAN_STANDARD).sub_language(),
1467 SubLanguage::Standard
1468 );
1469 }
1470
1471 #[test]
it_recognizes_german_from_switzerland_as_german_language()1472 fn it_recognizes_german_from_switzerland_as_german_language() {
1473 assert_eq!(
1474 super::from_lang_id(GERMAN_SWITZERLAND).primary_language(),
1475 PrimaryLanguage::German
1476 );
1477 }
1478
1479 #[test]
it_recognizes_german_from_switzerland_as_switzerland_sub_language()1480 fn it_recognizes_german_from_switzerland_as_switzerland_sub_language() {
1481 assert_eq!(
1482 super::from_lang_id(GERMAN_SWITZERLAND).sub_language(),
1483 SubLanguage::Switzerland
1484 );
1485 }
1486
1487 #[test]
it_recognizes_german_from_austria_as_german_language()1488 fn it_recognizes_german_from_austria_as_german_language() {
1489 assert_eq!(
1490 super::from_lang_id(GERMAN_AUSTRIA).primary_language(),
1491 PrimaryLanguage::German
1492 );
1493 }
1494
1495 #[test]
it_recognizes_german_from_austria_as_austria_sub_language()1496 fn it_recognizes_german_from_austria_as_austria_sub_language() {
1497 assert_eq!(
1498 super::from_lang_id(GERMAN_AUSTRIA).sub_language(),
1499 SubLanguage::Austria
1500 );
1501 }
1502
1503 #[test]
it_recognizes_german_from_luxembourg_as_german_language()1504 fn it_recognizes_german_from_luxembourg_as_german_language() {
1505 assert_eq!(
1506 super::from_lang_id(GERMAN_LUXEMBOURG).primary_language(),
1507 PrimaryLanguage::German
1508 );
1509 }
1510
1511 #[test]
it_recognizes_german_from_luxembourg_as_luxembourg_sub_language()1512 fn it_recognizes_german_from_luxembourg_as_luxembourg_sub_language() {
1513 assert_eq!(
1514 super::from_lang_id(GERMAN_LUXEMBOURG).sub_language(),
1515 SubLanguage::Luxembourg
1516 );
1517 }
1518
1519 #[test]
it_recognizes_german_from_liechtenstein_as_german_language()1520 fn it_recognizes_german_from_liechtenstein_as_german_language() {
1521 assert_eq!(
1522 super::from_lang_id(GERMAN_LIECHTENSTEIN).primary_language(),
1523 PrimaryLanguage::German
1524 );
1525 }
1526
1527 #[test]
it_recognizes_german_from_liechtenstein_as_liechtenstein_sub_language()1528 fn it_recognizes_german_from_liechtenstein_as_liechtenstein_sub_language() {
1529 assert_eq!(
1530 super::from_lang_id(GERMAN_LIECHTENSTEIN).sub_language(),
1531 SubLanguage::Liechtenstein
1532 );
1533 }
1534
1535 #[test]
it_recognizes_greek_as_greek_language()1536 fn it_recognizes_greek_as_greek_language() {
1537 assert_eq!(
1538 super::from_lang_id(GREEK).primary_language(),
1539 PrimaryLanguage::Greek
1540 );
1541 }
1542
1543 #[test]
it_recognizes_gujarati_as_gujarati_language()1544 fn it_recognizes_gujarati_as_gujarati_language() {
1545 assert_eq!(
1546 super::from_lang_id(GUJARATI).primary_language(),
1547 PrimaryLanguage::Gujarati
1548 );
1549 }
1550
1551 #[test]
it_recognizes_hebrew_as_hebrew_language()1552 fn it_recognizes_hebrew_as_hebrew_language() {
1553 assert_eq!(
1554 super::from_lang_id(HEBREW).primary_language(),
1555 PrimaryLanguage::Hebrew
1556 );
1557 }
1558
1559 #[test]
it_recognizes_hindi_as_hindi_language()1560 fn it_recognizes_hindi_as_hindi_language() {
1561 assert_eq!(
1562 super::from_lang_id(HINDI).primary_language(),
1563 PrimaryLanguage::Hindi
1564 );
1565 }
1566
1567 #[test]
it_recognizes_hungarian_as_hungarian_language()1568 fn it_recognizes_hungarian_as_hungarian_language() {
1569 assert_eq!(
1570 super::from_lang_id(HUNGARIAN).primary_language(),
1571 PrimaryLanguage::Hungarian
1572 );
1573 }
1574
1575 #[test]
it_recognizes_icelandic_as_icelandic_language()1576 fn it_recognizes_icelandic_as_icelandic_language() {
1577 assert_eq!(
1578 super::from_lang_id(ICELANDIC).primary_language(),
1579 PrimaryLanguage::Icelandic
1580 );
1581 }
1582
1583 #[test]
it_recognizes_indonesian_as_indonesian_language()1584 fn it_recognizes_indonesian_as_indonesian_language() {
1585 assert_eq!(
1586 super::from_lang_id(INDONESIAN).primary_language(),
1587 PrimaryLanguage::Indonesian
1588 );
1589 }
1590
1591 #[test]
it_recognizes_italian_standard_as_italian_language()1592 fn it_recognizes_italian_standard_as_italian_language() {
1593 assert_eq!(
1594 super::from_lang_id(ITALIAN_STANDARD).primary_language(),
1595 PrimaryLanguage::Italian
1596 );
1597 }
1598
1599 #[test]
it_recognizes_italian_standard_as_standard_sub_language()1600 fn it_recognizes_italian_standard_as_standard_sub_language() {
1601 assert_eq!(
1602 super::from_lang_id(ITALIAN_STANDARD).sub_language(),
1603 SubLanguage::Standard
1604 );
1605 }
1606
1607 #[test]
it_recognizes_italian_from_switzerland_as_italian_language()1608 fn it_recognizes_italian_from_switzerland_as_italian_language() {
1609 assert_eq!(
1610 super::from_lang_id(ITALIAN_SWITZERLAND).primary_language(),
1611 PrimaryLanguage::Italian
1612 );
1613 }
1614
1615 #[test]
it_recognizes_italian_from_switzerland_as_switzerland_sub_language()1616 fn it_recognizes_italian_from_switzerland_as_switzerland_sub_language() {
1617 assert_eq!(
1618 super::from_lang_id(ITALIAN_SWITZERLAND).sub_language(),
1619 SubLanguage::Switzerland
1620 );
1621 }
1622
1623 #[test]
it_recognizes_japanese_as_japanese_language()1624 fn it_recognizes_japanese_as_japanese_language() {
1625 assert_eq!(
1626 super::from_lang_id(JAPANESE).primary_language(),
1627 PrimaryLanguage::Japanese
1628 );
1629 }
1630
1631 #[test]
it_recognizes_kannada_as_kannada_language()1632 fn it_recognizes_kannada_as_kannada_language() {
1633 assert_eq!(
1634 super::from_lang_id(KANNADA).primary_language(),
1635 PrimaryLanguage::Kannada
1636 );
1637 }
1638
1639 #[test]
it_recognizes_kashmiri_as_kashmiri_language()1640 fn it_recognizes_kashmiri_as_kashmiri_language() {
1641 assert_eq!(
1642 super::from_lang_id(KASHMIRI_INDIA).primary_language(),
1643 PrimaryLanguage::Kashmiri
1644 );
1645 }
1646
1647 #[test]
it_recognizes_kazakh_as_kazakh_language()1648 fn it_recognizes_kazakh_as_kazakh_language() {
1649 assert_eq!(
1650 super::from_lang_id(KAZAKH).primary_language(),
1651 PrimaryLanguage::Kazakh
1652 );
1653 }
1654
1655 #[test]
it_recognizes_konkani_as_konkani_language()1656 fn it_recognizes_konkani_as_konkani_language() {
1657 assert_eq!(
1658 super::from_lang_id(KONKANI).primary_language(),
1659 PrimaryLanguage::Konkani
1660 );
1661 }
1662
1663 #[test]
it_recognizes_korean_as_korean_language()1664 fn it_recognizes_korean_as_korean_language() {
1665 assert_eq!(
1666 super::from_lang_id(KOREAN).primary_language(),
1667 PrimaryLanguage::Korean
1668 );
1669 }
1670
1671 #[test]
it_recognizes_korean_as_standard_sub_language()1672 fn it_recognizes_korean_as_standard_sub_language() {
1673 assert_eq!(
1674 super::from_lang_id(KOREAN).sub_language(),
1675 SubLanguage::Standard
1676 );
1677 }
1678
1679 #[test]
it_recognizes_korean_johab_as_korean_language()1680 fn it_recognizes_korean_johab_as_korean_language() {
1681 assert_eq!(
1682 super::from_lang_id(KOREAN_JOHAB).primary_language(),
1683 PrimaryLanguage::Korean
1684 );
1685 }
1686
1687 #[test]
it_recognizes_korean_johab_as_johab_sub_language()1688 fn it_recognizes_korean_johab_as_johab_sub_language() {
1689 assert_eq!(
1690 super::from_lang_id(KOREAN_JOHAB).sub_language(),
1691 SubLanguage::Johab
1692 );
1693 }
1694
1695 #[test]
it_recognizes_latvian_as_latvian_language()1696 fn it_recognizes_latvian_as_latvian_language() {
1697 assert_eq!(
1698 super::from_lang_id(LATVIAN).primary_language(),
1699 PrimaryLanguage::Latvian
1700 );
1701 }
1702
1703 #[test]
it_recognizes_lithuanian_as_lithuanian_language()1704 fn it_recognizes_lithuanian_as_lithuanian_language() {
1705 assert_eq!(
1706 super::from_lang_id(LITHUANIAN).primary_language(),
1707 PrimaryLanguage::Lithuanian
1708 );
1709 }
1710
1711 #[test]
it_recognizes_lithuanian_as_standard_sub_language()1712 fn it_recognizes_lithuanian_as_standard_sub_language() {
1713 assert_eq!(
1714 super::from_lang_id(LITHUANIAN).sub_language(),
1715 SubLanguage::Standard
1716 );
1717 }
1718
1719 #[test]
it_recognizes_lithuanian_classic_as_lithuanian_language()1720 fn it_recognizes_lithuanian_classic_as_lithuanian_language() {
1721 assert_eq!(
1722 super::from_lang_id(LITHUANIAN_CLASSIC).primary_language(),
1723 PrimaryLanguage::Lithuanian
1724 );
1725 }
1726
1727 #[test]
it_recognizes_lithuanian_classic_as_classic_sub_language()1728 fn it_recognizes_lithuanian_classic_as_classic_sub_language() {
1729 assert_eq!(
1730 super::from_lang_id(LITHUANIAN_CLASSIC).sub_language(),
1731 SubLanguage::Classic
1732 );
1733 }
1734
1735 #[test]
it_recognizes_macedonian_as_macedonian_language()1736 fn it_recognizes_macedonian_as_macedonian_language() {
1737 assert_eq!(
1738 super::from_lang_id(MACEDONIAN).primary_language(),
1739 PrimaryLanguage::Macedonian
1740 );
1741 }
1742
1743 #[test]
it_recognizes_malay_from_malaysia_as_malay_language()1744 fn it_recognizes_malay_from_malaysia_as_malay_language() {
1745 assert_eq!(
1746 super::from_lang_id(MALAY_MALAYSIAN).primary_language(),
1747 PrimaryLanguage::Malay
1748 );
1749 }
1750
1751 #[test]
it_recognizes_malay_from_malaysia_as_malaysia_sub_language()1752 fn it_recognizes_malay_from_malaysia_as_malaysia_sub_language() {
1753 assert_eq!(
1754 super::from_lang_id(MALAY_MALAYSIAN).sub_language(),
1755 SubLanguage::Malaysia
1756 );
1757 }
1758
1759 #[test]
it_recognizes_malay_from_brunei_darussalam_as_malay_language()1760 fn it_recognizes_malay_from_brunei_darussalam_as_malay_language() {
1761 assert_eq!(
1762 super::from_lang_id(MALAY_BRUNEI_DARUSSALAM).primary_language(),
1763 PrimaryLanguage::Malay
1764 );
1765 }
1766
1767 #[test]
it_recognizes_malay_from_brunei_darussalam_as_brunei_darussalam_sub_language()1768 fn it_recognizes_malay_from_brunei_darussalam_as_brunei_darussalam_sub_language() {
1769 assert_eq!(
1770 super::from_lang_id(MALAY_BRUNEI_DARUSSALAM).sub_language(),
1771 SubLanguage::BruneiDarussalam
1772 );
1773 }
1774
1775 #[test]
it_recognizes_malayalam_as_malayalam_language()1776 fn it_recognizes_malayalam_as_malayalam_language() {
1777 assert_eq!(
1778 super::from_lang_id(MALAYALAM).primary_language(),
1779 PrimaryLanguage::Malayalam
1780 );
1781 }
1782
1783 #[test]
it_recognizes_manipuri_as_manipuri_language()1784 fn it_recognizes_manipuri_as_manipuri_language() {
1785 assert_eq!(
1786 super::from_lang_id(MANIPURI).primary_language(),
1787 PrimaryLanguage::Manipuri
1788 );
1789 }
1790
1791 #[test]
it_recognizes_marathi_as_marathi_language()1792 fn it_recognizes_marathi_as_marathi_language() {
1793 assert_eq!(
1794 super::from_lang_id(MARATHI).primary_language(),
1795 PrimaryLanguage::Marathi
1796 );
1797 }
1798
1799 #[test]
it_recognizes_nepali_as_nepali_language()1800 fn it_recognizes_nepali_as_nepali_language() {
1801 assert_eq!(
1802 super::from_lang_id(NEPALI_INDIA).primary_language(),
1803 PrimaryLanguage::Nepali
1804 );
1805 }
1806
1807 #[test]
it_recognizes_norwegian_bokmal_as_norwegian_language()1808 fn it_recognizes_norwegian_bokmal_as_norwegian_language() {
1809 assert_eq!(
1810 super::from_lang_id(NORWEGIAN_BOKMAL).primary_language(),
1811 PrimaryLanguage::Norwegian
1812 );
1813 }
1814
1815 #[test]
it_recognizes_norwegian_bokmal_as_bokmal_sub_language()1816 fn it_recognizes_norwegian_bokmal_as_bokmal_sub_language() {
1817 assert_eq!(
1818 super::from_lang_id(NORWEGIAN_BOKMAL).sub_language(),
1819 SubLanguage::Bokmal
1820 );
1821 }
1822
1823 #[test]
it_recognizes_norwegian_nynorsk_as_norwegian_language()1824 fn it_recognizes_norwegian_nynorsk_as_norwegian_language() {
1825 assert_eq!(
1826 super::from_lang_id(NORWEGIAN_NYNORSK).primary_language(),
1827 PrimaryLanguage::Norwegian
1828 );
1829 }
1830
1831 #[test]
it_recognizes_norwegian_nynorsk_as_nynorsk_sub_language()1832 fn it_recognizes_norwegian_nynorsk_as_nynorsk_sub_language() {
1833 assert_eq!(
1834 super::from_lang_id(NORWEGIAN_NYNORSK).sub_language(),
1835 SubLanguage::Nynorsk
1836 );
1837 }
1838
1839 #[test]
it_recognizes_oriya_as_oriya_language()1840 fn it_recognizes_oriya_as_oriya_language() {
1841 assert_eq!(
1842 super::from_lang_id(ORIYA).primary_language(),
1843 PrimaryLanguage::Oriya
1844 );
1845 }
1846
1847 #[test]
it_recognizes_polish_as_polish_language()1848 fn it_recognizes_polish_as_polish_language() {
1849 assert_eq!(
1850 super::from_lang_id(POLISH).primary_language(),
1851 PrimaryLanguage::Polish
1852 );
1853 }
1854
1855 #[test]
it_recognizes_portuguese_from_brazil_as_portuguese_language()1856 fn it_recognizes_portuguese_from_brazil_as_portuguese_language() {
1857 assert_eq!(
1858 super::from_lang_id(PORTUGUESE_BRAZIL).primary_language(),
1859 PrimaryLanguage::Portuguese
1860 );
1861 }
1862
1863 #[test]
it_recognizes_portuguese_from_brazil_as_brazil_sub_language()1864 fn it_recognizes_portuguese_from_brazil_as_brazil_sub_language() {
1865 assert_eq!(
1866 super::from_lang_id(PORTUGUESE_BRAZIL).sub_language(),
1867 SubLanguage::Brazil
1868 );
1869 }
1870
1871 #[test]
it_recognizes_portuguese_standard_as_portuguese_language()1872 fn it_recognizes_portuguese_standard_as_portuguese_language() {
1873 assert_eq!(
1874 super::from_lang_id(PORTUGUESE_STANDARD).primary_language(),
1875 PrimaryLanguage::Portuguese
1876 );
1877 }
1878
1879 #[test]
it_recognizes_portuguese_standard_as_standard_sub_language()1880 fn it_recognizes_portuguese_standard_as_standard_sub_language() {
1881 assert_eq!(
1882 super::from_lang_id(PORTUGUESE_STANDARD).sub_language(),
1883 SubLanguage::Standard
1884 );
1885 }
1886
1887 #[test]
it_recognizes_punjabi_as_punjabi_language()1888 fn it_recognizes_punjabi_as_punjabi_language() {
1889 assert_eq!(
1890 super::from_lang_id(PUNJABI).primary_language(),
1891 PrimaryLanguage::Punjabi
1892 );
1893 }
1894
1895 #[test]
it_recognizes_romanian_as_romanian_language()1896 fn it_recognizes_romanian_as_romanian_language() {
1897 assert_eq!(
1898 super::from_lang_id(ROMANIAN).primary_language(),
1899 PrimaryLanguage::Romanian
1900 );
1901 }
1902
1903 #[test]
it_recognizes_russian_as_russian_language()1904 fn it_recognizes_russian_as_russian_language() {
1905 assert_eq!(
1906 super::from_lang_id(RUSSIAN).primary_language(),
1907 PrimaryLanguage::Russian
1908 );
1909 }
1910
1911 #[test]
it_recognizes_sanskrit_as_sanskrit_language()1912 fn it_recognizes_sanskrit_as_sanskrit_language() {
1913 assert_eq!(
1914 super::from_lang_id(SANSKRIT).primary_language(),
1915 PrimaryLanguage::Sanskrit
1916 );
1917 }
1918
1919 #[test]
it_recognizes_serbian_cyrillic_as_serbian_language()1920 fn it_recognizes_serbian_cyrillic_as_serbian_language() {
1921 assert_eq!(
1922 super::from_lang_id(SERBIAN_CYRILLIC).primary_language(),
1923 PrimaryLanguage::Serbian
1924 );
1925 }
1926
1927 #[test]
it_recognizes_serbian_cyrillic_as_cyrillic_sub_language()1928 fn it_recognizes_serbian_cyrillic_as_cyrillic_sub_language() {
1929 assert_eq!(
1930 super::from_lang_id(SERBIAN_CYRILLIC).sub_language(),
1931 SubLanguage::Cyrillic
1932 );
1933 }
1934
1935 #[test]
it_recognizes_serbian_latin_as_serbian_language()1936 fn it_recognizes_serbian_latin_as_serbian_language() {
1937 assert_eq!(
1938 super::from_lang_id(SERBIAN_LATIN).primary_language(),
1939 PrimaryLanguage::Serbian
1940 );
1941 }
1942
1943 #[test]
it_recognizes_serbian_latin_as_latin_sub_language()1944 fn it_recognizes_serbian_latin_as_latin_sub_language() {
1945 assert_eq!(
1946 super::from_lang_id(SERBIAN_LATIN).sub_language(),
1947 SubLanguage::Latin
1948 );
1949 }
1950
1951 #[test]
it_recognizes_sindhi_as_sindhi_language()1952 fn it_recognizes_sindhi_as_sindhi_language() {
1953 assert_eq!(
1954 super::from_lang_id(SINDHI).primary_language(),
1955 PrimaryLanguage::Sindhi
1956 );
1957 }
1958
1959 #[test]
it_recognizes_slovak_as_slovak_language()1960 fn it_recognizes_slovak_as_slovak_language() {
1961 assert_eq!(
1962 super::from_lang_id(SLOVAK).primary_language(),
1963 PrimaryLanguage::Slovak
1964 );
1965 }
1966
1967 #[test]
it_recognizes_slovenian_as_slovenian_language()1968 fn it_recognizes_slovenian_as_slovenian_language() {
1969 assert_eq!(
1970 super::from_lang_id(SLOVENIAN).primary_language(),
1971 PrimaryLanguage::Slovenian
1972 );
1973 }
1974
1975 #[test]
it_recognizes_spanish_traditional_sort_as_spanish_language()1976 fn it_recognizes_spanish_traditional_sort_as_spanish_language() {
1977 assert_eq!(
1978 super::from_lang_id(SPANISH_TRADITIONAL_SORT).primary_language(),
1979 PrimaryLanguage::Spanish
1980 );
1981 }
1982
1983 #[test]
it_recognizes_spanish_traditional_sort_as_traditional_sub_language()1984 fn it_recognizes_spanish_traditional_sort_as_traditional_sub_language() {
1985 assert_eq!(
1986 super::from_lang_id(SPANISH_TRADITIONAL_SORT).sub_language(),
1987 SubLanguage::Traditional
1988 );
1989 }
1990
1991 #[test]
it_recognizes_spanish_from_mexico_as_spanish_language()1992 fn it_recognizes_spanish_from_mexico_as_spanish_language() {
1993 assert_eq!(
1994 super::from_lang_id(SPANISH_MEXICAN).primary_language(),
1995 PrimaryLanguage::Spanish
1996 );
1997 }
1998
1999 #[test]
it_recognizes_spanish_from_mexico_as_mexico_sub_language()2000 fn it_recognizes_spanish_from_mexico_as_mexico_sub_language() {
2001 assert_eq!(
2002 super::from_lang_id(SPANISH_MEXICAN).sub_language(),
2003 SubLanguage::Mexico
2004 );
2005 }
2006
2007 #[test]
it_recognizes_spanish_modern_sort_as_spanish_language()2008 fn it_recognizes_spanish_modern_sort_as_spanish_language() {
2009 assert_eq!(
2010 super::from_lang_id(SPANISH_MODERN_SORT).primary_language(),
2011 PrimaryLanguage::Spanish
2012 );
2013 }
2014
2015 #[test]
it_recognizes_spanish_modern_sort_as_modern_sub_language()2016 fn it_recognizes_spanish_modern_sort_as_modern_sub_language() {
2017 assert_eq!(
2018 super::from_lang_id(SPANISH_MODERN_SORT).sub_language(),
2019 SubLanguage::Modern
2020 );
2021 }
2022
2023 #[test]
it_recognizes_spanish_from_guatemala_as_spanish_language()2024 fn it_recognizes_spanish_from_guatemala_as_spanish_language() {
2025 assert_eq!(
2026 super::from_lang_id(SPANISH_GUATEMALA).primary_language(),
2027 PrimaryLanguage::Spanish
2028 );
2029 }
2030
2031 #[test]
it_recognizes_spanish_from_guatemala_as_guatemala_sub_language()2032 fn it_recognizes_spanish_from_guatemala_as_guatemala_sub_language() {
2033 assert_eq!(
2034 super::from_lang_id(SPANISH_GUATEMALA).sub_language(),
2035 SubLanguage::Guatemala
2036 );
2037 }
2038
2039 #[test]
it_recognizes_spanish_from_costa_rica_as_spanish_language()2040 fn it_recognizes_spanish_from_costa_rica_as_spanish_language() {
2041 assert_eq!(
2042 super::from_lang_id(SPANISH_COSTA_RICA).primary_language(),
2043 PrimaryLanguage::Spanish
2044 );
2045 }
2046
2047 #[test]
it_recognizes_spanish_from_costa_rica_as_costa_rica_sub_language()2048 fn it_recognizes_spanish_from_costa_rica_as_costa_rica_sub_language() {
2049 assert_eq!(
2050 super::from_lang_id(SPANISH_COSTA_RICA).sub_language(),
2051 SubLanguage::CostaRica
2052 );
2053 }
2054
2055 #[test]
it_recognizes_spanish_from_panama_as_spanish_language()2056 fn it_recognizes_spanish_from_panama_as_spanish_language() {
2057 assert_eq!(
2058 super::from_lang_id(SPANISH_PANAMA).primary_language(),
2059 PrimaryLanguage::Spanish
2060 );
2061 }
2062
2063 #[test]
it_recognizes_spanish_from_panama_as_panama_sub_language()2064 fn it_recognizes_spanish_from_panama_as_panama_sub_language() {
2065 assert_eq!(
2066 super::from_lang_id(SPANISH_PANAMA).sub_language(),
2067 SubLanguage::Panama
2068 );
2069 }
2070
2071 #[test]
it_recognizes_spanish_from_dominican_republic_as_spanish_language()2072 fn it_recognizes_spanish_from_dominican_republic_as_spanish_language() {
2073 assert_eq!(
2074 super::from_lang_id(SPANISH_DOMINICAN_REPUBLIC).primary_language(),
2075 PrimaryLanguage::Spanish
2076 );
2077 }
2078
2079 #[test]
it_recognizes_spanish_from_dominican_republic_as_dominican_republic_sub_language()2080 fn it_recognizes_spanish_from_dominican_republic_as_dominican_republic_sub_language() {
2081 assert_eq!(
2082 super::from_lang_id(SPANISH_DOMINICAN_REPUBLIC).sub_language(),
2083 SubLanguage::DominicanRepublic
2084 );
2085 }
2086
2087 #[test]
it_recognizes_spanish_from_venezuela_as_spanish_language()2088 fn it_recognizes_spanish_from_venezuela_as_spanish_language() {
2089 assert_eq!(
2090 super::from_lang_id(SPANISH_VENEZUELA).primary_language(),
2091 PrimaryLanguage::Spanish
2092 );
2093 }
2094
2095 #[test]
it_recognizes_spanish_from_venezuela_as_venezuela_sub_language()2096 fn it_recognizes_spanish_from_venezuela_as_venezuela_sub_language() {
2097 assert_eq!(
2098 super::from_lang_id(SPANISH_VENEZUELA).sub_language(),
2099 SubLanguage::Venezuela
2100 );
2101 }
2102
2103 #[test]
it_recognizes_spanish_from_colombia_as_spanish_language()2104 fn it_recognizes_spanish_from_colombia_as_spanish_language() {
2105 assert_eq!(
2106 super::from_lang_id(SPANISH_COLOMBIA).primary_language(),
2107 PrimaryLanguage::Spanish
2108 );
2109 }
2110
2111 #[test]
it_recognizes_spanish_from_colombia_as_colombia_sub_language()2112 fn it_recognizes_spanish_from_colombia_as_colombia_sub_language() {
2113 assert_eq!(
2114 super::from_lang_id(SPANISH_COLOMBIA).sub_language(),
2115 SubLanguage::Colombia
2116 );
2117 }
2118
2119 #[test]
it_recognizes_spanish_from_peru_as_spanish_language()2120 fn it_recognizes_spanish_from_peru_as_spanish_language() {
2121 assert_eq!(
2122 super::from_lang_id(SPANISH_PERU).primary_language(),
2123 PrimaryLanguage::Spanish
2124 );
2125 }
2126
2127 #[test]
it_recognizes_spanish_from_peru_as_peru_sub_language()2128 fn it_recognizes_spanish_from_peru_as_peru_sub_language() {
2129 assert_eq!(
2130 super::from_lang_id(SPANISH_PERU).sub_language(),
2131 SubLanguage::Peru
2132 );
2133 }
2134
2135 #[test]
it_recognizes_spanish_from_argentina_as_spanish_language()2136 fn it_recognizes_spanish_from_argentina_as_spanish_language() {
2137 assert_eq!(
2138 super::from_lang_id(SPANISH_ARGENTINA).primary_language(),
2139 PrimaryLanguage::Spanish
2140 );
2141 }
2142
2143 #[test]
it_recognizes_spanish_from_argentina_as_argentina_sub_language()2144 fn it_recognizes_spanish_from_argentina_as_argentina_sub_language() {
2145 assert_eq!(
2146 super::from_lang_id(SPANISH_ARGENTINA).sub_language(),
2147 SubLanguage::Argentina
2148 );
2149 }
2150
2151 #[test]
it_recognizes_spanish_from_ecuador_as_spanish_language()2152 fn it_recognizes_spanish_from_ecuador_as_spanish_language() {
2153 assert_eq!(
2154 super::from_lang_id(SPANISH_ECUADOR).primary_language(),
2155 PrimaryLanguage::Spanish
2156 );
2157 }
2158
2159 #[test]
it_recognizes_spanish_from_ecuador_as_ecuador_sub_language()2160 fn it_recognizes_spanish_from_ecuador_as_ecuador_sub_language() {
2161 assert_eq!(
2162 super::from_lang_id(SPANISH_ECUADOR).sub_language(),
2163 SubLanguage::Ecuador
2164 );
2165 }
2166
2167 #[test]
it_recognizes_spanish_from_chile_as_spanish_language()2168 fn it_recognizes_spanish_from_chile_as_spanish_language() {
2169 assert_eq!(
2170 super::from_lang_id(SPANISH_CHILE).primary_language(),
2171 PrimaryLanguage::Spanish
2172 );
2173 }
2174
2175 #[test]
it_recognizes_spanish_from_chile_as_chile_sub_language()2176 fn it_recognizes_spanish_from_chile_as_chile_sub_language() {
2177 assert_eq!(
2178 super::from_lang_id(SPANISH_CHILE).sub_language(),
2179 SubLanguage::Chile
2180 );
2181 }
2182
2183 #[test]
it_recognizes_spanish_from_uruguay_as_spanish_language()2184 fn it_recognizes_spanish_from_uruguay_as_spanish_language() {
2185 assert_eq!(
2186 super::from_lang_id(SPANISH_URUGUAY).primary_language(),
2187 PrimaryLanguage::Spanish
2188 );
2189 }
2190
2191 #[test]
it_recognizes_spanish_from_uruguay_as_uruguay_sub_language()2192 fn it_recognizes_spanish_from_uruguay_as_uruguay_sub_language() {
2193 assert_eq!(
2194 super::from_lang_id(SPANISH_URUGUAY).sub_language(),
2195 SubLanguage::Uruguay
2196 );
2197 }
2198
2199 #[test]
it_recognizes_spanish_from_paraguay_as_spanish_language()2200 fn it_recognizes_spanish_from_paraguay_as_spanish_language() {
2201 assert_eq!(
2202 super::from_lang_id(SPANISH_PARAGUAY).primary_language(),
2203 PrimaryLanguage::Spanish
2204 );
2205 }
2206
2207 #[test]
it_recognizes_spanish_from_paraguay_as_paraguay_sub_language()2208 fn it_recognizes_spanish_from_paraguay_as_paraguay_sub_language() {
2209 assert_eq!(
2210 super::from_lang_id(SPANISH_PARAGUAY).sub_language(),
2211 SubLanguage::Paraguay
2212 );
2213 }
2214
2215 #[test]
it_recognizes_spanish_from_bolivia_as_spanish_language()2216 fn it_recognizes_spanish_from_bolivia_as_spanish_language() {
2217 assert_eq!(
2218 super::from_lang_id(SPANISH_BOLIVIA).primary_language(),
2219 PrimaryLanguage::Spanish
2220 );
2221 }
2222
2223 #[test]
it_recognizes_spanish_from_bolivia_as_bolivia_sub_language()2224 fn it_recognizes_spanish_from_bolivia_as_bolivia_sub_language() {
2225 assert_eq!(
2226 super::from_lang_id(SPANISH_BOLIVIA).sub_language(),
2227 SubLanguage::Bolivia
2228 );
2229 }
2230
2231 #[test]
it_recognizes_spanish_from_el_salvador_as_spanish_language()2232 fn it_recognizes_spanish_from_el_salvador_as_spanish_language() {
2233 assert_eq!(
2234 super::from_lang_id(SPANISH_EL_SALVADOR).primary_language(),
2235 PrimaryLanguage::Spanish
2236 );
2237 }
2238
2239 #[test]
it_recognizes_spanish_from_el_salvador_as_el_salvador_sub_language()2240 fn it_recognizes_spanish_from_el_salvador_as_el_salvador_sub_language() {
2241 assert_eq!(
2242 super::from_lang_id(SPANISH_EL_SALVADOR).sub_language(),
2243 SubLanguage::ElSalvador
2244 );
2245 }
2246
2247 #[test]
it_recognizes_spanish_from_honduras_as_spanish_language()2248 fn it_recognizes_spanish_from_honduras_as_spanish_language() {
2249 assert_eq!(
2250 super::from_lang_id(SPANISH_HONDURAS).primary_language(),
2251 PrimaryLanguage::Spanish
2252 );
2253 }
2254
2255 #[test]
it_recognizes_spanish_from_honduras_as_honduras_sub_language()2256 fn it_recognizes_spanish_from_honduras_as_honduras_sub_language() {
2257 assert_eq!(
2258 super::from_lang_id(SPANISH_HONDURAS).sub_language(),
2259 SubLanguage::Honduras
2260 );
2261 }
2262
2263 #[test]
it_recognizes_spanish_from_nicaragua_as_spanish_language()2264 fn it_recognizes_spanish_from_nicaragua_as_spanish_language() {
2265 assert_eq!(
2266 super::from_lang_id(SPANISH_NICARAGUA).primary_language(),
2267 PrimaryLanguage::Spanish
2268 );
2269 }
2270
2271 #[test]
it_recognizes_spanish_from_nicaragua_as_nicaragua_sub_language()2272 fn it_recognizes_spanish_from_nicaragua_as_nicaragua_sub_language() {
2273 assert_eq!(
2274 super::from_lang_id(SPANISH_NICARAGUA).sub_language(),
2275 SubLanguage::Nicaragua
2276 );
2277 }
2278
2279 #[test]
it_recognizes_spanish_from_puerto_rico_as_spanish_language()2280 fn it_recognizes_spanish_from_puerto_rico_as_spanish_language() {
2281 assert_eq!(
2282 super::from_lang_id(SPANISH_PUERTO_RICO).primary_language(),
2283 PrimaryLanguage::Spanish
2284 );
2285 }
2286
2287 #[test]
it_recognizes_spanish_from_puerto_rico_as_puerto_rico_sub_language()2288 fn it_recognizes_spanish_from_puerto_rico_as_puerto_rico_sub_language() {
2289 assert_eq!(
2290 super::from_lang_id(SPANISH_PUERTO_RICO).sub_language(),
2291 SubLanguage::PuertoRico
2292 );
2293 }
2294
2295 #[test]
it_recognizes_sutu_as_sutu_language()2296 fn it_recognizes_sutu_as_sutu_language() {
2297 assert_eq!(
2298 super::from_lang_id(SUTU).primary_language(),
2299 PrimaryLanguage::Sutu
2300 );
2301 }
2302
2303 #[test]
it_recognizes_swahili_as_swahili_language()2304 fn it_recognizes_swahili_as_swahili_language() {
2305 assert_eq!(
2306 super::from_lang_id(SWAHILI_KENYA).primary_language(),
2307 PrimaryLanguage::Swahili
2308 );
2309 }
2310
2311 #[test]
it_recognizes_swedish_as_swedish_language()2312 fn it_recognizes_swedish_as_swedish_language() {
2313 assert_eq!(
2314 super::from_lang_id(SWEDISH).primary_language(),
2315 PrimaryLanguage::Swedish
2316 );
2317 }
2318
2319 #[test]
it_recognizes_swedish_as_standard_sub_language()2320 fn it_recognizes_swedish_as_standard_sub_language() {
2321 assert_eq!(
2322 super::from_lang_id(SWEDISH).sub_language(),
2323 SubLanguage::Standard
2324 );
2325 }
2326
2327 #[test]
it_recognizes_swedish_from_finland_as_swedish_language()2328 fn it_recognizes_swedish_from_finland_as_swedish_language() {
2329 assert_eq!(
2330 super::from_lang_id(SWEDISH_FINLAND).primary_language(),
2331 PrimaryLanguage::Swedish
2332 );
2333 }
2334
2335 #[test]
it_recognizes_swedish_from_finland_as_finland_sub_language()2336 fn it_recognizes_swedish_from_finland_as_finland_sub_language() {
2337 assert_eq!(
2338 super::from_lang_id(SWEDISH_FINLAND).sub_language(),
2339 SubLanguage::Finland
2340 );
2341 }
2342
2343 #[test]
it_recognizes_tamil_as_tamil_language()2344 fn it_recognizes_tamil_as_tamil_language() {
2345 assert_eq!(
2346 super::from_lang_id(TAMIL).primary_language(),
2347 PrimaryLanguage::Tamil
2348 );
2349 }
2350
2351 #[test]
it_recognizes_tatar_as_tatar_language()2352 fn it_recognizes_tatar_as_tatar_language() {
2353 assert_eq!(
2354 super::from_lang_id(TATAR_TATARSTAN).primary_language(),
2355 PrimaryLanguage::Tatar
2356 );
2357 }
2358
2359 #[test]
it_recognizes_telugu_as_telugu_language()2360 fn it_recognizes_telugu_as_telugu_language() {
2361 assert_eq!(
2362 super::from_lang_id(TELUGU).primary_language(),
2363 PrimaryLanguage::Telugu
2364 );
2365 }
2366
2367 #[test]
it_recognizes_thai_as_thai_language()2368 fn it_recognizes_thai_as_thai_language() {
2369 assert_eq!(
2370 super::from_lang_id(THAI).primary_language(),
2371 PrimaryLanguage::Thai
2372 );
2373 }
2374
2375 #[test]
it_recognizes_turkish_as_turkish_language()2376 fn it_recognizes_turkish_as_turkish_language() {
2377 assert_eq!(
2378 super::from_lang_id(TURKISH).primary_language(),
2379 PrimaryLanguage::Turkish
2380 );
2381 }
2382
2383 #[test]
it_recognizes_ukrainian_as_ukrainian_language()2384 fn it_recognizes_ukrainian_as_ukrainian_language() {
2385 assert_eq!(
2386 super::from_lang_id(UKRAINIAN).primary_language(),
2387 PrimaryLanguage::Ukrainian
2388 );
2389 }
2390
2391 #[test]
it_recognizes_urdu_from_pakistan_as_urdu_language()2392 fn it_recognizes_urdu_from_pakistan_as_urdu_language() {
2393 assert_eq!(
2394 super::from_lang_id(URDU_PAKISTAN).primary_language(),
2395 PrimaryLanguage::Urdu
2396 );
2397 }
2398
2399 #[test]
it_recognizes_urdu_from_pakistan_as_pakistan_sub_language()2400 fn it_recognizes_urdu_from_pakistan_as_pakistan_sub_language() {
2401 assert_eq!(
2402 super::from_lang_id(URDU_PAKISTAN).sub_language(),
2403 SubLanguage::Pakistan
2404 );
2405 }
2406
2407 #[test]
it_recognizes_urdu_from_india_as_urdu_language()2408 fn it_recognizes_urdu_from_india_as_urdu_language() {
2409 assert_eq!(
2410 super::from_lang_id(URDU_INDIA).primary_language(),
2411 PrimaryLanguage::Urdu
2412 );
2413 }
2414
2415 #[test]
it_recognizes_urdu_from_india_as_india_sub_language()2416 fn it_recognizes_urdu_from_india_as_india_sub_language() {
2417 assert_eq!(
2418 super::from_lang_id(URDU_INDIA).sub_language(),
2419 SubLanguage::India
2420 );
2421 }
2422
2423 #[test]
it_recognizes_uzbek_latin_as_uzbek_language()2424 fn it_recognizes_uzbek_latin_as_uzbek_language() {
2425 assert_eq!(
2426 super::from_lang_id(UZBEK_LATIN).primary_language(),
2427 PrimaryLanguage::Uzbek
2428 );
2429 }
2430
2431 #[test]
it_recognizes_uzbek_latin_as_latin_sub_language()2432 fn it_recognizes_uzbek_latin_as_latin_sub_language() {
2433 assert_eq!(
2434 super::from_lang_id(UZBEK_LATIN).sub_language(),
2435 SubLanguage::Latin
2436 );
2437 }
2438
2439 #[test]
it_recognizes_uzbek_cyrillic_as_uzbek_language()2440 fn it_recognizes_uzbek_cyrillic_as_uzbek_language() {
2441 assert_eq!(
2442 super::from_lang_id(UZBEK_CYRILLIC).primary_language(),
2443 PrimaryLanguage::Uzbek
2444 );
2445 }
2446
2447 #[test]
it_recognizes_uzbek_cyrillic_as_cyrillic_sub_language()2448 fn it_recognizes_uzbek_cyrillic_as_cyrillic_sub_language() {
2449 assert_eq!(
2450 super::from_lang_id(UZBEK_CYRILLIC).sub_language(),
2451 SubLanguage::Cyrillic
2452 );
2453 }
2454
2455 #[test]
it_recognizes_vietnamese_as_vietnamese_language()2456 fn it_recognizes_vietnamese_as_vietnamese_language() {
2457 assert_eq!(
2458 super::from_lang_id(VIETNAMESE).primary_language(),
2459 PrimaryLanguage::Vietnamese
2460 );
2461 }
2462
2463 #[test]
it_recognizes_hid_usage_data_descriptor_as_hid_language()2464 fn it_recognizes_hid_usage_data_descriptor_as_hid_language() {
2465 assert_eq!(
2466 super::from_lang_id(HID_USAGE_DATA_DESCRIPTOR).primary_language(),
2467 PrimaryLanguage::HID
2468 );
2469 }
2470
2471 #[test]
it_recognizes_hid_usage_data_descriptor_as_usage_data_descriptor_sub_language()2472 fn it_recognizes_hid_usage_data_descriptor_as_usage_data_descriptor_sub_language() {
2473 assert_eq!(
2474 super::from_lang_id(HID_USAGE_DATA_DESCRIPTOR).sub_language(),
2475 SubLanguage::UsageDataDescriptor
2476 );
2477 }
2478
2479 #[test]
it_recognizes_hid_vendor_defined_1_as_hid_language()2480 fn it_recognizes_hid_vendor_defined_1_as_hid_language() {
2481 assert_eq!(
2482 super::from_lang_id(HID_VENDOR_DEFINED_1).primary_language(),
2483 PrimaryLanguage::HID
2484 );
2485 }
2486
2487 #[test]
it_recognizes_hid_vendor_defined_1_as_vendor_defined_1_sub_language()2488 fn it_recognizes_hid_vendor_defined_1_as_vendor_defined_1_sub_language() {
2489 assert_eq!(
2490 super::from_lang_id(HID_VENDOR_DEFINED_1).sub_language(),
2491 SubLanguage::VendorDefined1
2492 );
2493 }
2494
2495 #[test]
it_recognizes_hid_vendor_defined_2_as_hid_language()2496 fn it_recognizes_hid_vendor_defined_2_as_hid_language() {
2497 assert_eq!(
2498 super::from_lang_id(HID_VENDOR_DEFINED_2).primary_language(),
2499 PrimaryLanguage::HID
2500 );
2501 }
2502
2503 #[test]
it_recognizes_hid_vendor_defined_1_as_vendor_defined_2_sub_language()2504 fn it_recognizes_hid_vendor_defined_1_as_vendor_defined_2_sub_language() {
2505 assert_eq!(
2506 super::from_lang_id(HID_VENDOR_DEFINED_2).sub_language(),
2507 SubLanguage::VendorDefined2
2508 );
2509 }
2510
2511 #[test]
it_recognizes_hid_vendor_defined_3_as_hid_language()2512 fn it_recognizes_hid_vendor_defined_3_as_hid_language() {
2513 assert_eq!(
2514 super::from_lang_id(HID_VENDOR_DEFINED_3).primary_language(),
2515 PrimaryLanguage::HID
2516 );
2517 }
2518
2519 #[test]
it_recognizes_hid_vendor_defined_1_as_vendor_defined_3_sub_language()2520 fn it_recognizes_hid_vendor_defined_1_as_vendor_defined_3_sub_language() {
2521 assert_eq!(
2522 super::from_lang_id(HID_VENDOR_DEFINED_3).sub_language(),
2523 SubLanguage::VendorDefined3
2524 );
2525 }
2526
2527 #[test]
it_recognizes_hid_vendor_defined_4_as_hid_language()2528 fn it_recognizes_hid_vendor_defined_4_as_hid_language() {
2529 assert_eq!(
2530 super::from_lang_id(HID_VENDOR_DEFINED_4).primary_language(),
2531 PrimaryLanguage::HID
2532 );
2533 }
2534
2535 #[test]
it_recognizes_hid_vendor_defined_1_as_vendor_defined_4_sub_language()2536 fn it_recognizes_hid_vendor_defined_1_as_vendor_defined_4_sub_language() {
2537 assert_eq!(
2538 super::from_lang_id(HID_VENDOR_DEFINED_4).sub_language(),
2539 SubLanguage::VendorDefined4
2540 );
2541 }
2542
2543 #[test]
it_recognizes_other_as_other_language()2544 fn it_recognizes_other_as_other_language() {
2545 assert_eq!(
2546 super::from_lang_id(0xFFFF).primary_language(),
2547 PrimaryLanguage::Other(PRIMARY_LANGUAGE_MASK)
2548 );
2549 }
2550
2551 #[test]
it_recognizes_other_as_other_sub_language()2552 fn it_recognizes_other_as_other_sub_language() {
2553 assert_eq!(
2554 super::from_lang_id(0xFFFF).sub_language(),
2555 SubLanguage::Other(SUB_LANGUAGE_MASK)
2556 );
2557 }
2558 }
2559