|  | const PRIMARY_LANGUAGE_MASK: u16 = 0x03FF; | 
|  | const SUB_LANGUAGE_MASK: u16 = 0xFC00; | 
|  |  | 
|  | /// A language used to read string descriptors from USB devices. | 
|  | /// | 
|  | /// A language consists of a primary language and a sub language. Primary languages are language | 
|  | /// families, such as English or Spanish. Sub languages identify a dialect of the primary language. | 
|  | /// The dialect may be based on regional differences (United States English compared to United | 
|  | /// Kingdom English), writing systems (Cyrillic compared to Latin), or age (Modern compared to | 
|  | /// Traditional). Each primary language has its own set of sub languages. | 
|  | #[derive(Debug, Copy, Clone, PartialEq, Eq)] | 
|  | pub struct Language { | 
|  | raw: u16, | 
|  | } | 
|  |  | 
|  | impl Language { | 
|  | /// Returns the language's 16-bit `LANGID`. | 
|  | /// | 
|  | /// Each language's `LANGID` is defined by the USB forum | 
|  | /// <https://learn.microsoft.com/en-us/windows/win32/intl/language-identifier-constants-and-strings>. | 
|  | pub fn lang_id(self) -> u16 { | 
|  | self.raw | 
|  | } | 
|  |  | 
|  | /// Returns the primary language. | 
|  | pub fn primary_language(self) -> PrimaryLanguage { | 
|  | PrimaryLanguage::from_raw(self.raw) | 
|  | } | 
|  |  | 
|  | /// Returns the sub language. | 
|  | pub fn sub_language(self) -> SubLanguage { | 
|  | SubLanguage::from_raw(self.primary_language(), self.raw) | 
|  | } | 
|  | } | 
|  |  | 
|  | #[doc(hidden)] | 
|  | pub(crate) fn from_lang_id(raw: u16) -> Language { | 
|  | Language { raw } | 
|  | } | 
|  |  | 
|  | /// Primary language families. | 
|  | #[derive(Debug, Copy, Clone, PartialEq, Eq)] | 
|  | pub enum PrimaryLanguage { | 
|  | Afrikaans, | 
|  | Albanian, | 
|  | Arabic, | 
|  | Armenian, | 
|  | Assamese, | 
|  | Azeri, | 
|  | Basque, | 
|  | Belarussian, | 
|  | Bengali, | 
|  | Bulgarian, | 
|  | Burmese, | 
|  | Catalan, | 
|  | Chinese, | 
|  | Croatian, | 
|  | Czech, | 
|  | Danish, | 
|  | Dutch, | 
|  | English, | 
|  | Estonian, | 
|  | Faeroese, | 
|  | Farsi, | 
|  | Finnish, | 
|  | French, | 
|  | Georgian, | 
|  | German, | 
|  | Greek, | 
|  | Gujarati, | 
|  | Hebrew, | 
|  | Hindi, | 
|  | Hungarian, | 
|  | Icelandic, | 
|  | Indonesian, | 
|  | Italian, | 
|  | Japanese, | 
|  | Kannada, | 
|  | Kashmiri, | 
|  | Kazakh, | 
|  | Konkani, | 
|  | Korean, | 
|  | Latvian, | 
|  | Lithuanian, | 
|  | Macedonian, | 
|  | Malay, | 
|  | Malayalam, | 
|  | Manipuri, | 
|  | Marathi, | 
|  | Nepali, | 
|  | Norwegian, | 
|  | Oriya, | 
|  | Polish, | 
|  | Portuguese, | 
|  | Punjabi, | 
|  | Romanian, | 
|  | Russian, | 
|  | Sanskrit, | 
|  | Serbian, | 
|  | Sindhi, | 
|  | Slovak, | 
|  | Slovenian, | 
|  | Spanish, | 
|  | Sutu, | 
|  | Swahili, | 
|  | Swedish, | 
|  | Tamil, | 
|  | Tatar, | 
|  | Telugu, | 
|  | Thai, | 
|  | Turkish, | 
|  | Ukrainian, | 
|  | Urdu, | 
|  | Uzbek, | 
|  | Vietnamese, | 
|  |  | 
|  | HID, | 
|  | Other(u16), | 
|  | } | 
|  |  | 
|  | impl PrimaryLanguage { | 
|  | fn from_raw(raw: u16) -> PrimaryLanguage { | 
|  | match raw & PRIMARY_LANGUAGE_MASK { | 
|  | 0x0036 => PrimaryLanguage::Afrikaans, | 
|  | 0x001C => PrimaryLanguage::Albanian, | 
|  | 0x0001 => PrimaryLanguage::Arabic, | 
|  | 0x002B => PrimaryLanguage::Armenian, | 
|  | 0x004D => PrimaryLanguage::Assamese, | 
|  | 0x002C => PrimaryLanguage::Azeri, | 
|  | 0x002D => PrimaryLanguage::Basque, | 
|  | 0x0023 => PrimaryLanguage::Belarussian, | 
|  | 0x0045 => PrimaryLanguage::Bengali, | 
|  | 0x0002 => PrimaryLanguage::Bulgarian, | 
|  | 0x0055 => PrimaryLanguage::Burmese, | 
|  | 0x0003 => PrimaryLanguage::Catalan, | 
|  | 0x0004 => PrimaryLanguage::Chinese, | 
|  | 0x001A => match raw & SUB_LANGUAGE_MASK { | 
|  | 0x0400 => PrimaryLanguage::Croatian, | 
|  | _ => PrimaryLanguage::Serbian, | 
|  | }, | 
|  | 0x0005 => PrimaryLanguage::Czech, | 
|  | 0x0006 => PrimaryLanguage::Danish, | 
|  | 0x0013 => PrimaryLanguage::Dutch, | 
|  | 0x0009 => PrimaryLanguage::English, | 
|  | 0x0025 => PrimaryLanguage::Estonian, | 
|  | 0x0038 => PrimaryLanguage::Faeroese, | 
|  | 0x0029 => PrimaryLanguage::Farsi, | 
|  | 0x000B => PrimaryLanguage::Finnish, | 
|  | 0x000C => PrimaryLanguage::French, | 
|  | 0x0037 => PrimaryLanguage::Georgian, | 
|  | 0x0007 => PrimaryLanguage::German, | 
|  | 0x0008 => PrimaryLanguage::Greek, | 
|  | 0x0047 => PrimaryLanguage::Gujarati, | 
|  | 0x000D => PrimaryLanguage::Hebrew, | 
|  | 0x0039 => PrimaryLanguage::Hindi, | 
|  | 0x000E => PrimaryLanguage::Hungarian, | 
|  | 0x000F => PrimaryLanguage::Icelandic, | 
|  | 0x0021 => PrimaryLanguage::Indonesian, | 
|  | 0x0010 => PrimaryLanguage::Italian, | 
|  | 0x0011 => PrimaryLanguage::Japanese, | 
|  | 0x004B => PrimaryLanguage::Kannada, | 
|  | 0x0060 => PrimaryLanguage::Kashmiri, | 
|  | 0x003F => PrimaryLanguage::Kazakh, | 
|  | 0x0057 => PrimaryLanguage::Konkani, | 
|  | 0x0012 => PrimaryLanguage::Korean, | 
|  | 0x0026 => PrimaryLanguage::Latvian, | 
|  | 0x0027 => PrimaryLanguage::Lithuanian, | 
|  | 0x002F => PrimaryLanguage::Macedonian, | 
|  | 0x003E => PrimaryLanguage::Malay, | 
|  | 0x004C => PrimaryLanguage::Malayalam, | 
|  | 0x0058 => PrimaryLanguage::Manipuri, | 
|  | 0x004E => PrimaryLanguage::Marathi, | 
|  | 0x0061 => PrimaryLanguage::Nepali, | 
|  | 0x0014 => PrimaryLanguage::Norwegian, | 
|  | 0x0048 => PrimaryLanguage::Oriya, | 
|  | 0x0015 => PrimaryLanguage::Polish, | 
|  | 0x0016 => PrimaryLanguage::Portuguese, | 
|  | 0x0046 => PrimaryLanguage::Punjabi, | 
|  | 0x0018 => PrimaryLanguage::Romanian, | 
|  | 0x0019 => PrimaryLanguage::Russian, | 
|  | 0x004F => PrimaryLanguage::Sanskrit, | 
|  | 0x0059 => PrimaryLanguage::Sindhi, | 
|  | 0x001B => PrimaryLanguage::Slovak, | 
|  | 0x0024 => PrimaryLanguage::Slovenian, | 
|  | 0x000A => PrimaryLanguage::Spanish, | 
|  | 0x0030 => PrimaryLanguage::Sutu, | 
|  | 0x0041 => PrimaryLanguage::Swahili, | 
|  | 0x001D => PrimaryLanguage::Swedish, | 
|  | 0x0049 => PrimaryLanguage::Tamil, | 
|  | 0x0044 => PrimaryLanguage::Tatar, | 
|  | 0x004A => PrimaryLanguage::Telugu, | 
|  | 0x001E => PrimaryLanguage::Thai, | 
|  | 0x001F => PrimaryLanguage::Turkish, | 
|  | 0x0022 => PrimaryLanguage::Ukrainian, | 
|  | 0x0020 => PrimaryLanguage::Urdu, | 
|  | 0x0043 => PrimaryLanguage::Uzbek, | 
|  | 0x002A => PrimaryLanguage::Vietnamese, | 
|  | 0x00FF => PrimaryLanguage::HID, | 
|  | n => PrimaryLanguage::Other(n), | 
|  | } | 
|  | } | 
|  | } | 
|  |  | 
|  | /// Language dialects and writing systems. | 
|  | #[derive(Debug, Copy, Clone, PartialEq, Eq)] | 
|  | pub enum SubLanguage { | 
|  | Standard, | 
|  | Classic, | 
|  | Traditional, | 
|  | Modern, | 
|  |  | 
|  | Algeria,            // arabic | 
|  | Argentina,          // spanish | 
|  | Australia,          // english | 
|  | Austria,            // german | 
|  | Bahrain,            // arabic | 
|  | Belgium,            // dutch, french | 
|  | Belize,             // english | 
|  | Bokmal,             // norwegian | 
|  | Bolivia,            // spanish | 
|  | Brazil,             // portuguese | 
|  | BruneiDarussalam,   // malay | 
|  | Canada,             // english, french | 
|  | Caribbean,          // english | 
|  | Chile,              // spanish | 
|  | China,              // chinese | 
|  | Colombia,           // spanish | 
|  | CostaRica,          // spanish | 
|  | Cyrillic,           // azeri, serbian, uzbek | 
|  | DominicanRepublic,  // spanish | 
|  | Ecuador,            // spanish | 
|  | Egypt,              // arabic | 
|  | ElSalvador,         // spanish | 
|  | Finland,            // swedish | 
|  | Guatemala,          // spanish | 
|  | Honduras,           // spanish | 
|  | HongKong,           // chinese | 
|  | India,              // kashmiri, nepali, urdu | 
|  | Iraq,               // arabic | 
|  | Ireland,            // english | 
|  | Jamaica,            // english | 
|  | Johab,              // korean | 
|  | Jordan,             // arabic | 
|  | Kuwait,             // arabic | 
|  | Latin,              // azeri, serbian, uzbek | 
|  | Lebanon,            // arabic | 
|  | Libya,              // arabic | 
|  | Liechtenstein,      // german | 
|  | Luxembourg,         // french, german | 
|  | Macau,              // chinese | 
|  | Malaysia,           // malay | 
|  | Mexico,             // spanish | 
|  | Monaco,             // french | 
|  | Morocco,            // arabic | 
|  | Netherlands,        // dutch | 
|  | NewZealand,         // english | 
|  | Nicaragua,          // spanish | 
|  | Nynorsk,            // norwegian | 
|  | Oman,               // arabic | 
|  | Pakistan,           // urdu | 
|  | Panama,             // spanish | 
|  | Paraguay,           // spanish | 
|  | Peru,               // spanish | 
|  | Philippines,        // english | 
|  | PuertoRico,         // spanish | 
|  | Qatar,              // arabic | 
|  | SaudiArabia,        // arabic | 
|  | Singapore,          // chinese | 
|  | SouthAfrica,        // english | 
|  | Switzerland,        // french, german, italian | 
|  | Syria,              // arabic | 
|  | Taiwan,             // chinese | 
|  | Trinidad,           // english | 
|  | Tunisia,            // arabic | 
|  | UnitedArabEmirates, // arabic | 
|  | UnitedKingdom,      // english | 
|  | UnitedStates,       // english | 
|  | Uruguay,            // spanish | 
|  | Venezuela,          // spanish | 
|  | Yemen,              // arabic | 
|  | Zimbabwe,           // english | 
|  |  | 
|  | UsageDataDescriptor, // HID | 
|  | VendorDefined1,      // HID | 
|  | VendorDefined2,      // HID | 
|  | VendorDefined3,      // HID | 
|  | VendorDefined4,      // HID | 
|  |  | 
|  | Other(u16), | 
|  | } | 
|  |  | 
|  | impl SubLanguage { | 
|  | fn from_raw(language: PrimaryLanguage, raw: u16) -> SubLanguage { | 
|  | match language { | 
|  | PrimaryLanguage::Arabic => match raw & SUB_LANGUAGE_MASK { | 
|  | 0x0400 => SubLanguage::SaudiArabia, | 
|  | 0x0800 => SubLanguage::Iraq, | 
|  | 0x0C00 => SubLanguage::Egypt, | 
|  | 0x1000 => SubLanguage::Libya, | 
|  | 0x1400 => SubLanguage::Algeria, | 
|  | 0x1800 => SubLanguage::Morocco, | 
|  | 0x1C00 => SubLanguage::Tunisia, | 
|  | 0x2000 => SubLanguage::Oman, | 
|  | 0x2400 => SubLanguage::Yemen, | 
|  | 0x2800 => SubLanguage::Syria, | 
|  | 0x2C00 => SubLanguage::Jordan, | 
|  | 0x3000 => SubLanguage::Lebanon, | 
|  | 0x3400 => SubLanguage::Kuwait, | 
|  | 0x3800 => SubLanguage::UnitedArabEmirates, | 
|  | 0x3C00 => SubLanguage::Bahrain, | 
|  | 0x4000 => SubLanguage::Qatar, | 
|  | n => SubLanguage::Other(n), | 
|  | }, | 
|  | PrimaryLanguage::Azeri => match raw & SUB_LANGUAGE_MASK { | 
|  | 0x0400 => SubLanguage::Latin, | 
|  | 0x0800 => SubLanguage::Cyrillic, | 
|  | n => SubLanguage::Other(n), | 
|  | }, | 
|  | PrimaryLanguage::Chinese => match raw & SUB_LANGUAGE_MASK { | 
|  | 0x0400 => SubLanguage::Taiwan, | 
|  | 0x0800 => SubLanguage::China, | 
|  | 0x0C00 => SubLanguage::HongKong, | 
|  | 0x1000 => SubLanguage::Singapore, | 
|  | 0x1400 => SubLanguage::Macau, | 
|  | n => SubLanguage::Other(n), | 
|  | }, | 
|  | PrimaryLanguage::Dutch => match raw & SUB_LANGUAGE_MASK { | 
|  | 0x0400 => SubLanguage::Netherlands, | 
|  | 0x0800 => SubLanguage::Belgium, | 
|  | n => SubLanguage::Other(n), | 
|  | }, | 
|  | PrimaryLanguage::English => match raw & SUB_LANGUAGE_MASK { | 
|  | 0x0400 => SubLanguage::UnitedStates, | 
|  | 0x0800 => SubLanguage::UnitedKingdom, | 
|  | 0x0C00 => SubLanguage::Australia, | 
|  | 0x1000 => SubLanguage::Canada, | 
|  | 0x1400 => SubLanguage::NewZealand, | 
|  | 0x1800 => SubLanguage::Ireland, | 
|  | 0x1C00 => SubLanguage::SouthAfrica, | 
|  | 0x2000 => SubLanguage::Jamaica, | 
|  | 0x2400 => SubLanguage::Caribbean, | 
|  | 0x2800 => SubLanguage::Belize, | 
|  | 0x2C00 => SubLanguage::Trinidad, | 
|  | 0x3000 => SubLanguage::Zimbabwe, | 
|  | 0x3400 => SubLanguage::Philippines, | 
|  | n => SubLanguage::Other(n), | 
|  | }, | 
|  | PrimaryLanguage::French => match raw & SUB_LANGUAGE_MASK { | 
|  | 0x0400 => SubLanguage::Standard, | 
|  | 0x0800 => SubLanguage::Belgium, | 
|  | 0x0C00 => SubLanguage::Canada, | 
|  | 0x1000 => SubLanguage::Switzerland, | 
|  | 0x1400 => SubLanguage::Luxembourg, | 
|  | 0x1800 => SubLanguage::Monaco, | 
|  | n => SubLanguage::Other(n), | 
|  | }, | 
|  | PrimaryLanguage::German => match raw & SUB_LANGUAGE_MASK { | 
|  | 0x0400 => SubLanguage::Standard, | 
|  | 0x0800 => SubLanguage::Switzerland, | 
|  | 0x0C00 => SubLanguage::Austria, | 
|  | 0x1000 => SubLanguage::Luxembourg, | 
|  | 0x1400 => SubLanguage::Liechtenstein, | 
|  | n => SubLanguage::Other(n), | 
|  | }, | 
|  | PrimaryLanguage::Italian => match raw & SUB_LANGUAGE_MASK { | 
|  | 0x0400 => SubLanguage::Standard, | 
|  | 0x0800 => SubLanguage::Switzerland, | 
|  | n => SubLanguage::Other(n), | 
|  | }, | 
|  | PrimaryLanguage::Korean => match raw & SUB_LANGUAGE_MASK { | 
|  | 0x0400 => SubLanguage::Standard, | 
|  | 0x0800 => SubLanguage::Johab, | 
|  | n => SubLanguage::Other(n), | 
|  | }, | 
|  | PrimaryLanguage::Lithuanian => match raw & SUB_LANGUAGE_MASK { | 
|  | 0x0400 => SubLanguage::Standard, | 
|  | 0x0800 => SubLanguage::Classic, | 
|  | n => SubLanguage::Other(n), | 
|  | }, | 
|  | PrimaryLanguage::Malay => match raw & SUB_LANGUAGE_MASK { | 
|  | 0x0400 => SubLanguage::Malaysia, | 
|  | 0x0800 => SubLanguage::BruneiDarussalam, | 
|  | n => SubLanguage::Other(n), | 
|  | }, | 
|  | PrimaryLanguage::Norwegian => match raw & SUB_LANGUAGE_MASK { | 
|  | 0x0400 => SubLanguage::Bokmal, | 
|  | 0x0800 => SubLanguage::Nynorsk, | 
|  | n => SubLanguage::Other(n), | 
|  | }, | 
|  | PrimaryLanguage::Portuguese => match raw & SUB_LANGUAGE_MASK { | 
|  | 0x0400 => SubLanguage::Brazil, | 
|  | 0x0800 => SubLanguage::Standard, | 
|  | n => SubLanguage::Other(n), | 
|  | }, | 
|  | PrimaryLanguage::Serbian => match raw & SUB_LANGUAGE_MASK { | 
|  | 0x0C00 => SubLanguage::Cyrillic, | 
|  | 0x0800 => SubLanguage::Latin, | 
|  | n => SubLanguage::Other(n), | 
|  | }, | 
|  | PrimaryLanguage::Spanish => match raw & SUB_LANGUAGE_MASK { | 
|  | 0x0400 => SubLanguage::Traditional, | 
|  | 0x0800 => SubLanguage::Mexico, | 
|  | 0x0C00 => SubLanguage::Modern, | 
|  | 0x1000 => SubLanguage::Guatemala, | 
|  | 0x1400 => SubLanguage::CostaRica, | 
|  | 0x1800 => SubLanguage::Panama, | 
|  | 0x1C00 => SubLanguage::DominicanRepublic, | 
|  | 0x2000 => SubLanguage::Venezuela, | 
|  | 0x2400 => SubLanguage::Colombia, | 
|  | 0x2800 => SubLanguage::Peru, | 
|  | 0x2C00 => SubLanguage::Argentina, | 
|  | 0x3000 => SubLanguage::Ecuador, | 
|  | 0x3400 => SubLanguage::Chile, | 
|  | 0x3800 => SubLanguage::Uruguay, | 
|  | 0x3C00 => SubLanguage::Paraguay, | 
|  | 0x4000 => SubLanguage::Bolivia, | 
|  | 0x4400 => SubLanguage::ElSalvador, | 
|  | 0x4800 => SubLanguage::Honduras, | 
|  | 0x4C00 => SubLanguage::Nicaragua, | 
|  | 0x5000 => SubLanguage::PuertoRico, | 
|  | n => SubLanguage::Other(n), | 
|  | }, | 
|  | PrimaryLanguage::Swedish => match raw & SUB_LANGUAGE_MASK { | 
|  | 0x0400 => SubLanguage::Standard, | 
|  | 0x0800 => SubLanguage::Finland, | 
|  | n => SubLanguage::Other(n), | 
|  | }, | 
|  | PrimaryLanguage::Urdu => match raw & SUB_LANGUAGE_MASK { | 
|  | 0x0400 => SubLanguage::Pakistan, | 
|  | 0x0800 => SubLanguage::India, | 
|  | n => SubLanguage::Other(n), | 
|  | }, | 
|  | PrimaryLanguage::Uzbek => match raw & SUB_LANGUAGE_MASK { | 
|  | 0x0400 => SubLanguage::Latin, | 
|  | 0x0800 => SubLanguage::Cyrillic, | 
|  | n => SubLanguage::Other(n), | 
|  | }, | 
|  | PrimaryLanguage::HID => match raw & SUB_LANGUAGE_MASK { | 
|  | 0x0400 => SubLanguage::UsageDataDescriptor, | 
|  | 0xF000 => SubLanguage::VendorDefined1, | 
|  | 0xF400 => SubLanguage::VendorDefined2, | 
|  | 0xF800 => SubLanguage::VendorDefined3, | 
|  | 0xFC00 => SubLanguage::VendorDefined4, | 
|  | n => SubLanguage::Other(n), | 
|  | }, | 
|  | PrimaryLanguage::Other(_) => SubLanguage::Other(raw & SUB_LANGUAGE_MASK), | 
|  | _ => SubLanguage::Standard, | 
|  | } | 
|  | } | 
|  | } | 
|  |  | 
|  | #[cfg(test)] | 
|  | mod test { | 
|  | use super::{PrimaryLanguage, SubLanguage}; | 
|  | use super::{PRIMARY_LANGUAGE_MASK, SUB_LANGUAGE_MASK}; | 
|  |  | 
|  | // language ids defined in http://www.usb.org/developers/docs/USB_LANGIDs.pdf | 
|  | const AFRIKAANS: u16 = 0x0436; | 
|  | const ALBANIAN: u16 = 0x041C; | 
|  | const ARABIC_SAUDI_ARABIA: u16 = 0x0401; | 
|  | const ARABIC_IRAQ: u16 = 0x0801; | 
|  | const ARABIC_EGYPT: u16 = 0x0C01; | 
|  | const ARABIC_LIBYA: u16 = 0x1001; | 
|  | const ARABIC_ALGERIA: u16 = 0x1401; | 
|  | const ARABIC_MOROCCO: u16 = 0x1801; | 
|  | const ARABIC_TUNISIA: u16 = 0x1C01; | 
|  | const ARABIC_OMAN: u16 = 0x2001; | 
|  | const ARABIC_YEMEN: u16 = 0x2401; | 
|  | const ARABIC_SYRIA: u16 = 0x2801; | 
|  | const ARABIC_JORDAN: u16 = 0x2C01; | 
|  | const ARABIC_LEBANON: u16 = 0x3001; | 
|  | const ARABIC_KUWAIT: u16 = 0x3401; | 
|  | const ARABIC_UAE: u16 = 0x3801; | 
|  | const ARABIC_BAHRAIN: u16 = 0x3C01; | 
|  | const ARABIC_QATAR: u16 = 0x4001; | 
|  | const ARMENIAN: u16 = 0x042B; | 
|  | const ASSAMESE: u16 = 0x044D; | 
|  | const AZERI_LATIN: u16 = 0x042C; | 
|  | const AZERI_CYRILLIC: u16 = 0x082C; | 
|  | const BASQUE: u16 = 0x042D; | 
|  | const BELARUSSIAN: u16 = 0x0423; | 
|  | const BENGALI: u16 = 0x0445; | 
|  | const BULGARIAN: u16 = 0x0402; | 
|  | const BURMESE: u16 = 0x0455; | 
|  | const CATALAN: u16 = 0x0403; | 
|  | const CHINESE_TAIWAN: u16 = 0x0404; | 
|  | const CHINESE_CHINA: u16 = 0x0804; | 
|  | const CHINESE_HONG_KONG: u16 = 0x0C04; | 
|  | const CHINESE_SINGAPORE: u16 = 0x1004; | 
|  | const CHINESE_MACAU: u16 = 0x1404; | 
|  | const CROATIAN: u16 = 0x041A; | 
|  | const CZECH: u16 = 0x0405; | 
|  | const DANISH: u16 = 0x0406; | 
|  | const DUTCH_NETHERLANDS: u16 = 0x0413; | 
|  | const DUTCH_BELGIUM: u16 = 0x0813; | 
|  | const ENGLISH_UNITED_STATES: u16 = 0x0409; | 
|  | const ENGLISH_UNITED_KINGDOM: u16 = 0x0809; | 
|  | const ENGLISH_AUSTRALIAN: u16 = 0x0C09; | 
|  | const ENGLISH_CANADIAN: u16 = 0x1009; | 
|  | const ENGLISH_NEW_ZEALAND: u16 = 0x1409; | 
|  | const ENGLISH_IRELAND: u16 = 0x1809; | 
|  | const ENGLISH_SOUTH_AFRICA: u16 = 0x1C09; | 
|  | const ENGLISH_JAMAICA: u16 = 0x2009; | 
|  | const ENGLISH_CARIBBEAN: u16 = 0x2409; | 
|  | const ENGLISH_BELIZE: u16 = 0x2809; | 
|  | const ENGLISH_TRINIDAD: u16 = 0x2C09; | 
|  | const ENGLISH_ZIMBABWE: u16 = 0x3009; | 
|  | const ENGLISH_PHILIPPINES: u16 = 0x3409; | 
|  | const ESTONIAN: u16 = 0x0425; | 
|  | const FAEROESE: u16 = 0x0438; | 
|  | const FARSI: u16 = 0x0429; | 
|  | const FINNISH: u16 = 0x040B; | 
|  | const FRENCH_STANDARD: u16 = 0x040C; | 
|  | const FRENCH_BELGIAN: u16 = 0x080C; | 
|  | const FRENCH_CANADIAN: u16 = 0x0C0C; | 
|  | const FRENCH_SWITZERLAND: u16 = 0x100C; | 
|  | const FRENCH_LUXEMBOURG: u16 = 0x140C; | 
|  | const FRENCH_MONACO: u16 = 0x180C; | 
|  | const GEORGIAN: u16 = 0x0437; | 
|  | const GERMAN_STANDARD: u16 = 0x0407; | 
|  | const GERMAN_SWITZERLAND: u16 = 0x0807; | 
|  | const GERMAN_AUSTRIA: u16 = 0x0C07; | 
|  | const GERMAN_LUXEMBOURG: u16 = 0x1007; | 
|  | const GERMAN_LIECHTENSTEIN: u16 = 0x1407; | 
|  | const GREEK: u16 = 0x0408; | 
|  | const GUJARATI: u16 = 0x0447; | 
|  | const HEBREW: u16 = 0x040D; | 
|  | const HINDI: u16 = 0x0439; | 
|  | const HUNGARIAN: u16 = 0x040E; | 
|  | const ICELANDIC: u16 = 0x040F; | 
|  | const INDONESIAN: u16 = 0x0421; | 
|  | const ITALIAN_STANDARD: u16 = 0x0410; | 
|  | const ITALIAN_SWITZERLAND: u16 = 0x0810; | 
|  | const JAPANESE: u16 = 0x0411; | 
|  | const KANNADA: u16 = 0x044B; | 
|  | const KASHMIRI_INDIA: u16 = 0x0860; | 
|  | const KAZAKH: u16 = 0x043F; | 
|  | const KONKANI: u16 = 0x0457; | 
|  | const KOREAN: u16 = 0x0412; | 
|  | const KOREAN_JOHAB: u16 = 0x0812; | 
|  | const LATVIAN: u16 = 0x0426; | 
|  | const LITHUANIAN: u16 = 0x0427; | 
|  | const LITHUANIAN_CLASSIC: u16 = 0x0827; | 
|  | const MACEDONIAN: u16 = 0x042F; | 
|  | const MALAY_MALAYSIAN: u16 = 0x043E; | 
|  | const MALAY_BRUNEI_DARUSSALAM: u16 = 0x083E; | 
|  | const MALAYALAM: u16 = 0x044C; | 
|  | const MANIPURI: u16 = 0x0458; | 
|  | const MARATHI: u16 = 0x044E; | 
|  | const NEPALI_INDIA: u16 = 0x0861; | 
|  | const NORWEGIAN_BOKMAL: u16 = 0x0414; | 
|  | const NORWEGIAN_NYNORSK: u16 = 0x0814; | 
|  | const ORIYA: u16 = 0x0448; | 
|  | const POLISH: u16 = 0x0415; | 
|  | const PORTUGUESE_BRAZIL: u16 = 0x0416; | 
|  | const PORTUGUESE_STANDARD: u16 = 0x0816; | 
|  | const PUNJABI: u16 = 0x0446; | 
|  | const ROMANIAN: u16 = 0x0418; | 
|  | const RUSSIAN: u16 = 0x0419; | 
|  | const SANSKRIT: u16 = 0x044F; | 
|  | const SERBIAN_CYRILLIC: u16 = 0x0C1A; | 
|  | const SERBIAN_LATIN: u16 = 0x081A; | 
|  | const SINDHI: u16 = 0x0459; | 
|  | const SLOVAK: u16 = 0x041B; | 
|  | const SLOVENIAN: u16 = 0x0424; | 
|  | const SPANISH_TRADITIONAL_SORT: u16 = 0x040A; | 
|  | const SPANISH_MEXICAN: u16 = 0x080A; | 
|  | const SPANISH_MODERN_SORT: u16 = 0x0C0A; | 
|  | const SPANISH_GUATEMALA: u16 = 0x100A; | 
|  | const SPANISH_COSTA_RICA: u16 = 0x140A; | 
|  | const SPANISH_PANAMA: u16 = 0x180A; | 
|  | const SPANISH_DOMINICAN_REPUBLIC: u16 = 0x1C0A; | 
|  | const SPANISH_VENEZUELA: u16 = 0x200A; | 
|  | const SPANISH_COLOMBIA: u16 = 0x240A; | 
|  | const SPANISH_PERU: u16 = 0x280A; | 
|  | const SPANISH_ARGENTINA: u16 = 0x2C0A; | 
|  | const SPANISH_ECUADOR: u16 = 0x300A; | 
|  | const SPANISH_CHILE: u16 = 0x340A; | 
|  | const SPANISH_URUGUAY: u16 = 0x380A; | 
|  | const SPANISH_PARAGUAY: u16 = 0x3C0A; | 
|  | const SPANISH_BOLIVIA: u16 = 0x400A; | 
|  | const SPANISH_EL_SALVADOR: u16 = 0x440A; | 
|  | const SPANISH_HONDURAS: u16 = 0x480A; | 
|  | const SPANISH_NICARAGUA: u16 = 0x4C0A; | 
|  | const SPANISH_PUERTO_RICO: u16 = 0x500A; | 
|  | const SUTU: u16 = 0x0430; | 
|  | const SWAHILI_KENYA: u16 = 0x0441; | 
|  | const SWEDISH: u16 = 0x041D; | 
|  | const SWEDISH_FINLAND: u16 = 0x081D; | 
|  | const TAMIL: u16 = 0x0449; | 
|  | const TATAR_TATARSTAN: u16 = 0x0444; | 
|  | const TELUGU: u16 = 0x044A; | 
|  | const THAI: u16 = 0x041E; | 
|  | const TURKISH: u16 = 0x041F; | 
|  | const UKRAINIAN: u16 = 0x0422; | 
|  | const URDU_PAKISTAN: u16 = 0x0420; | 
|  | const URDU_INDIA: u16 = 0x0820; | 
|  | const UZBEK_LATIN: u16 = 0x0443; | 
|  | const UZBEK_CYRILLIC: u16 = 0x0843; | 
|  | const VIETNAMESE: u16 = 0x042A; | 
|  | const HID_USAGE_DATA_DESCRIPTOR: u16 = 0x04FF; | 
|  | const HID_VENDOR_DEFINED_1: u16 = 0xF0FF; | 
|  | const HID_VENDOR_DEFINED_2: u16 = 0xF4FF; | 
|  | const HID_VENDOR_DEFINED_3: u16 = 0xF8FF; | 
|  | const HID_VENDOR_DEFINED_4: u16 = 0xFCFF; | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_afrikaans_as_afrikaans_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(AFRIKAANS).primary_language(), | 
|  | PrimaryLanguage::Afrikaans | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_albanian_as_albanian_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ALBANIAN).primary_language(), | 
|  | PrimaryLanguage::Albanian | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_arabic_from_saudi_arabia_as_arabic_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ARABIC_SAUDI_ARABIA).primary_language(), | 
|  | PrimaryLanguage::Arabic | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_arabic_from_saudi_arabia_as_saudi_arabia_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ARABIC_SAUDI_ARABIA).sub_language(), | 
|  | SubLanguage::SaudiArabia | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_arabic_from_iraq_as_arabic_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ARABIC_IRAQ).primary_language(), | 
|  | PrimaryLanguage::Arabic | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_arabic_from_iraq_as_iraq_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ARABIC_IRAQ).sub_language(), | 
|  | SubLanguage::Iraq | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_arabic_from_egypt_as_arabic_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ARABIC_EGYPT).primary_language(), | 
|  | PrimaryLanguage::Arabic | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_arabic_from_egypt_as_egypt_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ARABIC_EGYPT).sub_language(), | 
|  | SubLanguage::Egypt | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_arabic_from_libya_as_arabic_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ARABIC_LIBYA).primary_language(), | 
|  | PrimaryLanguage::Arabic | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_arabic_from_libya_as_libya_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ARABIC_LIBYA).sub_language(), | 
|  | SubLanguage::Libya | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_arabic_from_algeria_as_arabic_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ARABIC_ALGERIA).primary_language(), | 
|  | PrimaryLanguage::Arabic | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_arabic_from_algeria_as_algeria_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ARABIC_ALGERIA).sub_language(), | 
|  | SubLanguage::Algeria | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_arabic_from_morocco_as_arabic_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ARABIC_MOROCCO).primary_language(), | 
|  | PrimaryLanguage::Arabic | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_arabic_from_morocco_as_morocco_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ARABIC_MOROCCO).sub_language(), | 
|  | SubLanguage::Morocco | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_arabic_from_tunisia_as_arabic_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ARABIC_TUNISIA).primary_language(), | 
|  | PrimaryLanguage::Arabic | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_arabic_from_tunisia_as_tunisia_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ARABIC_TUNISIA).sub_language(), | 
|  | SubLanguage::Tunisia | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_arabic_from_oman_as_arabic_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ARABIC_OMAN).primary_language(), | 
|  | PrimaryLanguage::Arabic | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_arabic_from_oman_as_oman_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ARABIC_OMAN).sub_language(), | 
|  | SubLanguage::Oman | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_arabic_from_yemen_as_arabic_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ARABIC_YEMEN).primary_language(), | 
|  | PrimaryLanguage::Arabic | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_arabic_from_yemen_as_yemen_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ARABIC_YEMEN).sub_language(), | 
|  | SubLanguage::Yemen | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_arabic_from_syria_as_arabic_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ARABIC_SYRIA).primary_language(), | 
|  | PrimaryLanguage::Arabic | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_arabic_from_syria_as_syria_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ARABIC_SYRIA).sub_language(), | 
|  | SubLanguage::Syria | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_arabic_from_jordan_as_arabic_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ARABIC_JORDAN).primary_language(), | 
|  | PrimaryLanguage::Arabic | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_arabic_from_jordan_as_jordan_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ARABIC_JORDAN).sub_language(), | 
|  | SubLanguage::Jordan | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_arabic_from_lebanon_as_arabic_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ARABIC_LEBANON).primary_language(), | 
|  | PrimaryLanguage::Arabic | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_arabic_from_lebanon_as_lebanon_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ARABIC_LEBANON).sub_language(), | 
|  | SubLanguage::Lebanon | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_arabic_from_kuwait_as_arabic_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ARABIC_KUWAIT).primary_language(), | 
|  | PrimaryLanguage::Arabic | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_arabic_from_kuwait_as_kuwait_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ARABIC_KUWAIT).sub_language(), | 
|  | SubLanguage::Kuwait | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_arabic_from_uae_as_arabic_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ARABIC_UAE).primary_language(), | 
|  | PrimaryLanguage::Arabic | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_arabic_from_uae_as_uae_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ARABIC_UAE).sub_language(), | 
|  | SubLanguage::UnitedArabEmirates | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_arabic_from_bahrain_as_arabic_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ARABIC_BAHRAIN).primary_language(), | 
|  | PrimaryLanguage::Arabic | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_arabic_from_bahrain_as_bahrain_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ARABIC_BAHRAIN).sub_language(), | 
|  | SubLanguage::Bahrain | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_arabic_from_qatar_as_arabic_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ARABIC_QATAR).primary_language(), | 
|  | PrimaryLanguage::Arabic | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_arabic_from_qatar_as_qatar_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ARABIC_QATAR).sub_language(), | 
|  | SubLanguage::Qatar | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_armenian_as_armenian_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ARMENIAN).primary_language(), | 
|  | PrimaryLanguage::Armenian | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_assamese_as_assamese_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ASSAMESE).primary_language(), | 
|  | PrimaryLanguage::Assamese | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_azeri_latin_as_azeri_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(AZERI_LATIN).primary_language(), | 
|  | PrimaryLanguage::Azeri | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_azeri_latin_as_latin_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(AZERI_LATIN).sub_language(), | 
|  | SubLanguage::Latin | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_azeri_cyrillic_as_azeri_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(AZERI_CYRILLIC).primary_language(), | 
|  | PrimaryLanguage::Azeri | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_azeri_cyrillic_as_cyrillic_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(AZERI_CYRILLIC).sub_language(), | 
|  | SubLanguage::Cyrillic | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_basque_as_basque_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(BASQUE).primary_language(), | 
|  | PrimaryLanguage::Basque | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_belarussian_as_belarussian_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(BELARUSSIAN).primary_language(), | 
|  | PrimaryLanguage::Belarussian | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_bengali_as_bengali_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(BENGALI).primary_language(), | 
|  | PrimaryLanguage::Bengali | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_bulgarian_as_bulgarian_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(BULGARIAN).primary_language(), | 
|  | PrimaryLanguage::Bulgarian | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_burmese_as_burmese_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(BURMESE).primary_language(), | 
|  | PrimaryLanguage::Burmese | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_catalan_as_catalan_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(CATALAN).primary_language(), | 
|  | PrimaryLanguage::Catalan | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_chinese_from_taiwan_as_chinese_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(CHINESE_TAIWAN).primary_language(), | 
|  | PrimaryLanguage::Chinese | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_chinese_from_taiwan_as_taiwan_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(CHINESE_TAIWAN).sub_language(), | 
|  | SubLanguage::Taiwan | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_chinese_from_china_as_chinese_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(CHINESE_CHINA).primary_language(), | 
|  | PrimaryLanguage::Chinese | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_chinese_from_china_as_china_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(CHINESE_CHINA).sub_language(), | 
|  | SubLanguage::China | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_chinese_from_hong_kong_as_chinese_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(CHINESE_HONG_KONG).primary_language(), | 
|  | PrimaryLanguage::Chinese | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_chinese_from_hong_kong_as_hong_kong_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(CHINESE_HONG_KONG).sub_language(), | 
|  | SubLanguage::HongKong | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_chinese_from_singapore_as_chinese_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(CHINESE_SINGAPORE).primary_language(), | 
|  | PrimaryLanguage::Chinese | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_chinese_from_singapore_as_singapore_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(CHINESE_SINGAPORE).sub_language(), | 
|  | SubLanguage::Singapore | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_chinese_from_macau_as_chinese_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(CHINESE_MACAU).primary_language(), | 
|  | PrimaryLanguage::Chinese | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_chinese_from_macau_as_macau_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(CHINESE_MACAU).sub_language(), | 
|  | SubLanguage::Macau | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_croatian_as_croatian_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(CROATIAN).primary_language(), | 
|  | PrimaryLanguage::Croatian | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_czech_as_czech_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(CZECH).primary_language(), | 
|  | PrimaryLanguage::Czech | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_danish_as_danish_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(DANISH).primary_language(), | 
|  | PrimaryLanguage::Danish | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_dutch_from_netherlands_as_dutch_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(DUTCH_NETHERLANDS).primary_language(), | 
|  | PrimaryLanguage::Dutch | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_dutch_from_netherlands_as_netherlands_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(DUTCH_NETHERLANDS).sub_language(), | 
|  | SubLanguage::Netherlands | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_dutch_from_belgium_as_dutch_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(DUTCH_BELGIUM).primary_language(), | 
|  | PrimaryLanguage::Dutch | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_dutch_from_belgium_as_belgium_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(DUTCH_BELGIUM).sub_language(), | 
|  | SubLanguage::Belgium | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_english_from_united_states_as_english_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ENGLISH_UNITED_STATES).primary_language(), | 
|  | PrimaryLanguage::English | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_english_from_united_states_as_united_states_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ENGLISH_UNITED_STATES).sub_language(), | 
|  | SubLanguage::UnitedStates | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_english_from_united_kingdom_as_english_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ENGLISH_UNITED_KINGDOM).primary_language(), | 
|  | PrimaryLanguage::English | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_english_from_united_kingdom_as_united_kingdom_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ENGLISH_UNITED_KINGDOM).sub_language(), | 
|  | SubLanguage::UnitedKingdom | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_english_from_australia_as_english_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ENGLISH_AUSTRALIAN).primary_language(), | 
|  | PrimaryLanguage::English | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_english_from_australia_as_australia_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ENGLISH_AUSTRALIAN).sub_language(), | 
|  | SubLanguage::Australia | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_english_from_canada_as_english_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ENGLISH_CANADIAN).primary_language(), | 
|  | PrimaryLanguage::English | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_english_from_canada_as_canada_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ENGLISH_CANADIAN).sub_language(), | 
|  | SubLanguage::Canada | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_english_from_new_zealand_as_english_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ENGLISH_NEW_ZEALAND).primary_language(), | 
|  | PrimaryLanguage::English | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_english_from_new_zealand_as_new_zealand_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ENGLISH_NEW_ZEALAND).sub_language(), | 
|  | SubLanguage::NewZealand | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_english_from_ireland_as_english_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ENGLISH_IRELAND).primary_language(), | 
|  | PrimaryLanguage::English | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_english_from_ireland_as_ireland_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ENGLISH_IRELAND).sub_language(), | 
|  | SubLanguage::Ireland | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_english_from_south_africa_as_english_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ENGLISH_SOUTH_AFRICA).primary_language(), | 
|  | PrimaryLanguage::English | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_english_from_south_africa_as_south_africa_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ENGLISH_SOUTH_AFRICA).sub_language(), | 
|  | SubLanguage::SouthAfrica | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_english_from_jamaica_as_english_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ENGLISH_JAMAICA).primary_language(), | 
|  | PrimaryLanguage::English | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_english_from_jamaica_as_jamaica_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ENGLISH_JAMAICA).sub_language(), | 
|  | SubLanguage::Jamaica | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_english_from_caribbean_as_english_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ENGLISH_CARIBBEAN).primary_language(), | 
|  | PrimaryLanguage::English | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_english_from_caribbean_as_caribbean_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ENGLISH_CARIBBEAN).sub_language(), | 
|  | SubLanguage::Caribbean | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_english_from_belize_as_english_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ENGLISH_BELIZE).primary_language(), | 
|  | PrimaryLanguage::English | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_english_from_belize_as_belize_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ENGLISH_BELIZE).sub_language(), | 
|  | SubLanguage::Belize | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_english_from_trinidad_as_english_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ENGLISH_TRINIDAD).primary_language(), | 
|  | PrimaryLanguage::English | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_english_from_trinidad_as_trinidad_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ENGLISH_TRINIDAD).sub_language(), | 
|  | SubLanguage::Trinidad | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_english_from_zimbabwe_as_english_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ENGLISH_ZIMBABWE).primary_language(), | 
|  | PrimaryLanguage::English | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_english_from_zimbabwe_as_zimbabwe_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ENGLISH_ZIMBABWE).sub_language(), | 
|  | SubLanguage::Zimbabwe | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_english_from_philippines_as_english_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ENGLISH_PHILIPPINES).primary_language(), | 
|  | PrimaryLanguage::English | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_english_from_philippines_as_philippines_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ENGLISH_PHILIPPINES).sub_language(), | 
|  | SubLanguage::Philippines | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_estonian_as_estonian_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ESTONIAN).primary_language(), | 
|  | PrimaryLanguage::Estonian | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_faeroese_as_faeroese_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(FAEROESE).primary_language(), | 
|  | PrimaryLanguage::Faeroese | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_farsi_as_farsi_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(FARSI).primary_language(), | 
|  | PrimaryLanguage::Farsi | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_finnish_as_finnish_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(FINNISH).primary_language(), | 
|  | PrimaryLanguage::Finnish | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_french_standard_as_french_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(FRENCH_STANDARD).primary_language(), | 
|  | PrimaryLanguage::French | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_french_standard_as_standard_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(FRENCH_STANDARD).sub_language(), | 
|  | SubLanguage::Standard | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_french_from_belgium_as_french_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(FRENCH_BELGIAN).primary_language(), | 
|  | PrimaryLanguage::French | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_french_from_belgium_as_belgium_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(FRENCH_BELGIAN).sub_language(), | 
|  | SubLanguage::Belgium | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_french_from_canada_as_french_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(FRENCH_CANADIAN).primary_language(), | 
|  | PrimaryLanguage::French | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_french_from_canada_as_canada_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(FRENCH_CANADIAN).sub_language(), | 
|  | SubLanguage::Canada | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_french_from_switzerland_as_french_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(FRENCH_SWITZERLAND).primary_language(), | 
|  | PrimaryLanguage::French | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_french_from_switzerland_as_switzerland_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(FRENCH_SWITZERLAND).sub_language(), | 
|  | SubLanguage::Switzerland | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_french_from_luxembourg_as_french_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(FRENCH_LUXEMBOURG).primary_language(), | 
|  | PrimaryLanguage::French | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_french_from_luxembourg_as_luxembourg_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(FRENCH_LUXEMBOURG).sub_language(), | 
|  | SubLanguage::Luxembourg | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_french_from_monaco_as_french_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(FRENCH_MONACO).primary_language(), | 
|  | PrimaryLanguage::French | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_french_from_monaco_as_monaco_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(FRENCH_MONACO).sub_language(), | 
|  | SubLanguage::Monaco | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_georgian_as_georgian_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(GEORGIAN).primary_language(), | 
|  | PrimaryLanguage::Georgian | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_german_standard_as_german_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(GERMAN_STANDARD).primary_language(), | 
|  | PrimaryLanguage::German | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_german_standard_as_standard_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(GERMAN_STANDARD).sub_language(), | 
|  | SubLanguage::Standard | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_german_from_switzerland_as_german_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(GERMAN_SWITZERLAND).primary_language(), | 
|  | PrimaryLanguage::German | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_german_from_switzerland_as_switzerland_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(GERMAN_SWITZERLAND).sub_language(), | 
|  | SubLanguage::Switzerland | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_german_from_austria_as_german_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(GERMAN_AUSTRIA).primary_language(), | 
|  | PrimaryLanguage::German | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_german_from_austria_as_austria_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(GERMAN_AUSTRIA).sub_language(), | 
|  | SubLanguage::Austria | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_german_from_luxembourg_as_german_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(GERMAN_LUXEMBOURG).primary_language(), | 
|  | PrimaryLanguage::German | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_german_from_luxembourg_as_luxembourg_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(GERMAN_LUXEMBOURG).sub_language(), | 
|  | SubLanguage::Luxembourg | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_german_from_liechtenstein_as_german_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(GERMAN_LIECHTENSTEIN).primary_language(), | 
|  | PrimaryLanguage::German | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_german_from_liechtenstein_as_liechtenstein_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(GERMAN_LIECHTENSTEIN).sub_language(), | 
|  | SubLanguage::Liechtenstein | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_greek_as_greek_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(GREEK).primary_language(), | 
|  | PrimaryLanguage::Greek | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_gujarati_as_gujarati_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(GUJARATI).primary_language(), | 
|  | PrimaryLanguage::Gujarati | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_hebrew_as_hebrew_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(HEBREW).primary_language(), | 
|  | PrimaryLanguage::Hebrew | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_hindi_as_hindi_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(HINDI).primary_language(), | 
|  | PrimaryLanguage::Hindi | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_hungarian_as_hungarian_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(HUNGARIAN).primary_language(), | 
|  | PrimaryLanguage::Hungarian | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_icelandic_as_icelandic_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ICELANDIC).primary_language(), | 
|  | PrimaryLanguage::Icelandic | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_indonesian_as_indonesian_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(INDONESIAN).primary_language(), | 
|  | PrimaryLanguage::Indonesian | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_italian_standard_as_italian_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ITALIAN_STANDARD).primary_language(), | 
|  | PrimaryLanguage::Italian | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_italian_standard_as_standard_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ITALIAN_STANDARD).sub_language(), | 
|  | SubLanguage::Standard | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_italian_from_switzerland_as_italian_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ITALIAN_SWITZERLAND).primary_language(), | 
|  | PrimaryLanguage::Italian | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_italian_from_switzerland_as_switzerland_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ITALIAN_SWITZERLAND).sub_language(), | 
|  | SubLanguage::Switzerland | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_japanese_as_japanese_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(JAPANESE).primary_language(), | 
|  | PrimaryLanguage::Japanese | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_kannada_as_kannada_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(KANNADA).primary_language(), | 
|  | PrimaryLanguage::Kannada | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_kashmiri_as_kashmiri_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(KASHMIRI_INDIA).primary_language(), | 
|  | PrimaryLanguage::Kashmiri | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_kazakh_as_kazakh_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(KAZAKH).primary_language(), | 
|  | PrimaryLanguage::Kazakh | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_konkani_as_konkani_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(KONKANI).primary_language(), | 
|  | PrimaryLanguage::Konkani | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_korean_as_korean_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(KOREAN).primary_language(), | 
|  | PrimaryLanguage::Korean | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_korean_as_standard_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(KOREAN).sub_language(), | 
|  | SubLanguage::Standard | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_korean_johab_as_korean_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(KOREAN_JOHAB).primary_language(), | 
|  | PrimaryLanguage::Korean | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_korean_johab_as_johab_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(KOREAN_JOHAB).sub_language(), | 
|  | SubLanguage::Johab | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_latvian_as_latvian_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(LATVIAN).primary_language(), | 
|  | PrimaryLanguage::Latvian | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_lithuanian_as_lithuanian_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(LITHUANIAN).primary_language(), | 
|  | PrimaryLanguage::Lithuanian | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_lithuanian_as_standard_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(LITHUANIAN).sub_language(), | 
|  | SubLanguage::Standard | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_lithuanian_classic_as_lithuanian_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(LITHUANIAN_CLASSIC).primary_language(), | 
|  | PrimaryLanguage::Lithuanian | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_lithuanian_classic_as_classic_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(LITHUANIAN_CLASSIC).sub_language(), | 
|  | SubLanguage::Classic | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_macedonian_as_macedonian_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(MACEDONIAN).primary_language(), | 
|  | PrimaryLanguage::Macedonian | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_malay_from_malaysia_as_malay_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(MALAY_MALAYSIAN).primary_language(), | 
|  | PrimaryLanguage::Malay | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_malay_from_malaysia_as_malaysia_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(MALAY_MALAYSIAN).sub_language(), | 
|  | SubLanguage::Malaysia | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_malay_from_brunei_darussalam_as_malay_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(MALAY_BRUNEI_DARUSSALAM).primary_language(), | 
|  | PrimaryLanguage::Malay | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_malay_from_brunei_darussalam_as_brunei_darussalam_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(MALAY_BRUNEI_DARUSSALAM).sub_language(), | 
|  | SubLanguage::BruneiDarussalam | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_malayalam_as_malayalam_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(MALAYALAM).primary_language(), | 
|  | PrimaryLanguage::Malayalam | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_manipuri_as_manipuri_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(MANIPURI).primary_language(), | 
|  | PrimaryLanguage::Manipuri | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_marathi_as_marathi_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(MARATHI).primary_language(), | 
|  | PrimaryLanguage::Marathi | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_nepali_as_nepali_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(NEPALI_INDIA).primary_language(), | 
|  | PrimaryLanguage::Nepali | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_norwegian_bokmal_as_norwegian_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(NORWEGIAN_BOKMAL).primary_language(), | 
|  | PrimaryLanguage::Norwegian | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_norwegian_bokmal_as_bokmal_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(NORWEGIAN_BOKMAL).sub_language(), | 
|  | SubLanguage::Bokmal | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_norwegian_nynorsk_as_norwegian_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(NORWEGIAN_NYNORSK).primary_language(), | 
|  | PrimaryLanguage::Norwegian | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_norwegian_nynorsk_as_nynorsk_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(NORWEGIAN_NYNORSK).sub_language(), | 
|  | SubLanguage::Nynorsk | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_oriya_as_oriya_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ORIYA).primary_language(), | 
|  | PrimaryLanguage::Oriya | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_polish_as_polish_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(POLISH).primary_language(), | 
|  | PrimaryLanguage::Polish | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_portuguese_from_brazil_as_portuguese_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(PORTUGUESE_BRAZIL).primary_language(), | 
|  | PrimaryLanguage::Portuguese | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_portuguese_from_brazil_as_brazil_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(PORTUGUESE_BRAZIL).sub_language(), | 
|  | SubLanguage::Brazil | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_portuguese_standard_as_portuguese_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(PORTUGUESE_STANDARD).primary_language(), | 
|  | PrimaryLanguage::Portuguese | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_portuguese_standard_as_standard_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(PORTUGUESE_STANDARD).sub_language(), | 
|  | SubLanguage::Standard | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_punjabi_as_punjabi_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(PUNJABI).primary_language(), | 
|  | PrimaryLanguage::Punjabi | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_romanian_as_romanian_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(ROMANIAN).primary_language(), | 
|  | PrimaryLanguage::Romanian | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_russian_as_russian_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(RUSSIAN).primary_language(), | 
|  | PrimaryLanguage::Russian | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_sanskrit_as_sanskrit_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SANSKRIT).primary_language(), | 
|  | PrimaryLanguage::Sanskrit | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_serbian_cyrillic_as_serbian_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SERBIAN_CYRILLIC).primary_language(), | 
|  | PrimaryLanguage::Serbian | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_serbian_cyrillic_as_cyrillic_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SERBIAN_CYRILLIC).sub_language(), | 
|  | SubLanguage::Cyrillic | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_serbian_latin_as_serbian_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SERBIAN_LATIN).primary_language(), | 
|  | PrimaryLanguage::Serbian | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_serbian_latin_as_latin_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SERBIAN_LATIN).sub_language(), | 
|  | SubLanguage::Latin | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_sindhi_as_sindhi_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SINDHI).primary_language(), | 
|  | PrimaryLanguage::Sindhi | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_slovak_as_slovak_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SLOVAK).primary_language(), | 
|  | PrimaryLanguage::Slovak | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_slovenian_as_slovenian_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SLOVENIAN).primary_language(), | 
|  | PrimaryLanguage::Slovenian | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_spanish_traditional_sort_as_spanish_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SPANISH_TRADITIONAL_SORT).primary_language(), | 
|  | PrimaryLanguage::Spanish | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_spanish_traditional_sort_as_traditional_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SPANISH_TRADITIONAL_SORT).sub_language(), | 
|  | SubLanguage::Traditional | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_spanish_from_mexico_as_spanish_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SPANISH_MEXICAN).primary_language(), | 
|  | PrimaryLanguage::Spanish | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_spanish_from_mexico_as_mexico_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SPANISH_MEXICAN).sub_language(), | 
|  | SubLanguage::Mexico | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_spanish_modern_sort_as_spanish_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SPANISH_MODERN_SORT).primary_language(), | 
|  | PrimaryLanguage::Spanish | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_spanish_modern_sort_as_modern_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SPANISH_MODERN_SORT).sub_language(), | 
|  | SubLanguage::Modern | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_spanish_from_guatemala_as_spanish_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SPANISH_GUATEMALA).primary_language(), | 
|  | PrimaryLanguage::Spanish | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_spanish_from_guatemala_as_guatemala_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SPANISH_GUATEMALA).sub_language(), | 
|  | SubLanguage::Guatemala | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_spanish_from_costa_rica_as_spanish_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SPANISH_COSTA_RICA).primary_language(), | 
|  | PrimaryLanguage::Spanish | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_spanish_from_costa_rica_as_costa_rica_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SPANISH_COSTA_RICA).sub_language(), | 
|  | SubLanguage::CostaRica | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_spanish_from_panama_as_spanish_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SPANISH_PANAMA).primary_language(), | 
|  | PrimaryLanguage::Spanish | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_spanish_from_panama_as_panama_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SPANISH_PANAMA).sub_language(), | 
|  | SubLanguage::Panama | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_spanish_from_dominican_republic_as_spanish_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SPANISH_DOMINICAN_REPUBLIC).primary_language(), | 
|  | PrimaryLanguage::Spanish | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_spanish_from_dominican_republic_as_dominican_republic_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SPANISH_DOMINICAN_REPUBLIC).sub_language(), | 
|  | SubLanguage::DominicanRepublic | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_spanish_from_venezuela_as_spanish_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SPANISH_VENEZUELA).primary_language(), | 
|  | PrimaryLanguage::Spanish | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_spanish_from_venezuela_as_venezuela_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SPANISH_VENEZUELA).sub_language(), | 
|  | SubLanguage::Venezuela | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_spanish_from_colombia_as_spanish_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SPANISH_COLOMBIA).primary_language(), | 
|  | PrimaryLanguage::Spanish | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_spanish_from_colombia_as_colombia_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SPANISH_COLOMBIA).sub_language(), | 
|  | SubLanguage::Colombia | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_spanish_from_peru_as_spanish_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SPANISH_PERU).primary_language(), | 
|  | PrimaryLanguage::Spanish | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_spanish_from_peru_as_peru_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SPANISH_PERU).sub_language(), | 
|  | SubLanguage::Peru | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_spanish_from_argentina_as_spanish_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SPANISH_ARGENTINA).primary_language(), | 
|  | PrimaryLanguage::Spanish | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_spanish_from_argentina_as_argentina_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SPANISH_ARGENTINA).sub_language(), | 
|  | SubLanguage::Argentina | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_spanish_from_ecuador_as_spanish_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SPANISH_ECUADOR).primary_language(), | 
|  | PrimaryLanguage::Spanish | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_spanish_from_ecuador_as_ecuador_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SPANISH_ECUADOR).sub_language(), | 
|  | SubLanguage::Ecuador | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_spanish_from_chile_as_spanish_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SPANISH_CHILE).primary_language(), | 
|  | PrimaryLanguage::Spanish | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_spanish_from_chile_as_chile_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SPANISH_CHILE).sub_language(), | 
|  | SubLanguage::Chile | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_spanish_from_uruguay_as_spanish_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SPANISH_URUGUAY).primary_language(), | 
|  | PrimaryLanguage::Spanish | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_spanish_from_uruguay_as_uruguay_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SPANISH_URUGUAY).sub_language(), | 
|  | SubLanguage::Uruguay | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_spanish_from_paraguay_as_spanish_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SPANISH_PARAGUAY).primary_language(), | 
|  | PrimaryLanguage::Spanish | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_spanish_from_paraguay_as_paraguay_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SPANISH_PARAGUAY).sub_language(), | 
|  | SubLanguage::Paraguay | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_spanish_from_bolivia_as_spanish_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SPANISH_BOLIVIA).primary_language(), | 
|  | PrimaryLanguage::Spanish | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_spanish_from_bolivia_as_bolivia_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SPANISH_BOLIVIA).sub_language(), | 
|  | SubLanguage::Bolivia | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_spanish_from_el_salvador_as_spanish_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SPANISH_EL_SALVADOR).primary_language(), | 
|  | PrimaryLanguage::Spanish | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_spanish_from_el_salvador_as_el_salvador_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SPANISH_EL_SALVADOR).sub_language(), | 
|  | SubLanguage::ElSalvador | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_spanish_from_honduras_as_spanish_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SPANISH_HONDURAS).primary_language(), | 
|  | PrimaryLanguage::Spanish | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_spanish_from_honduras_as_honduras_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SPANISH_HONDURAS).sub_language(), | 
|  | SubLanguage::Honduras | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_spanish_from_nicaragua_as_spanish_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SPANISH_NICARAGUA).primary_language(), | 
|  | PrimaryLanguage::Spanish | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_spanish_from_nicaragua_as_nicaragua_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SPANISH_NICARAGUA).sub_language(), | 
|  | SubLanguage::Nicaragua | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_spanish_from_puerto_rico_as_spanish_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SPANISH_PUERTO_RICO).primary_language(), | 
|  | PrimaryLanguage::Spanish | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_spanish_from_puerto_rico_as_puerto_rico_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SPANISH_PUERTO_RICO).sub_language(), | 
|  | SubLanguage::PuertoRico | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_sutu_as_sutu_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SUTU).primary_language(), | 
|  | PrimaryLanguage::Sutu | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_swahili_as_swahili_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SWAHILI_KENYA).primary_language(), | 
|  | PrimaryLanguage::Swahili | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_swedish_as_swedish_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SWEDISH).primary_language(), | 
|  | PrimaryLanguage::Swedish | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_swedish_as_standard_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SWEDISH).sub_language(), | 
|  | SubLanguage::Standard | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_swedish_from_finland_as_swedish_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SWEDISH_FINLAND).primary_language(), | 
|  | PrimaryLanguage::Swedish | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_swedish_from_finland_as_finland_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(SWEDISH_FINLAND).sub_language(), | 
|  | SubLanguage::Finland | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_tamil_as_tamil_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(TAMIL).primary_language(), | 
|  | PrimaryLanguage::Tamil | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_tatar_as_tatar_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(TATAR_TATARSTAN).primary_language(), | 
|  | PrimaryLanguage::Tatar | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_telugu_as_telugu_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(TELUGU).primary_language(), | 
|  | PrimaryLanguage::Telugu | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_thai_as_thai_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(THAI).primary_language(), | 
|  | PrimaryLanguage::Thai | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_turkish_as_turkish_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(TURKISH).primary_language(), | 
|  | PrimaryLanguage::Turkish | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_ukrainian_as_ukrainian_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(UKRAINIAN).primary_language(), | 
|  | PrimaryLanguage::Ukrainian | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_urdu_from_pakistan_as_urdu_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(URDU_PAKISTAN).primary_language(), | 
|  | PrimaryLanguage::Urdu | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_urdu_from_pakistan_as_pakistan_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(URDU_PAKISTAN).sub_language(), | 
|  | SubLanguage::Pakistan | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_urdu_from_india_as_urdu_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(URDU_INDIA).primary_language(), | 
|  | PrimaryLanguage::Urdu | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_urdu_from_india_as_india_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(URDU_INDIA).sub_language(), | 
|  | SubLanguage::India | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_uzbek_latin_as_uzbek_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(UZBEK_LATIN).primary_language(), | 
|  | PrimaryLanguage::Uzbek | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_uzbek_latin_as_latin_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(UZBEK_LATIN).sub_language(), | 
|  | SubLanguage::Latin | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_uzbek_cyrillic_as_uzbek_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(UZBEK_CYRILLIC).primary_language(), | 
|  | PrimaryLanguage::Uzbek | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_uzbek_cyrillic_as_cyrillic_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(UZBEK_CYRILLIC).sub_language(), | 
|  | SubLanguage::Cyrillic | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_vietnamese_as_vietnamese_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(VIETNAMESE).primary_language(), | 
|  | PrimaryLanguage::Vietnamese | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_hid_usage_data_descriptor_as_hid_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(HID_USAGE_DATA_DESCRIPTOR).primary_language(), | 
|  | PrimaryLanguage::HID | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_hid_usage_data_descriptor_as_usage_data_descriptor_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(HID_USAGE_DATA_DESCRIPTOR).sub_language(), | 
|  | SubLanguage::UsageDataDescriptor | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_hid_vendor_defined_1_as_hid_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(HID_VENDOR_DEFINED_1).primary_language(), | 
|  | PrimaryLanguage::HID | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_hid_vendor_defined_1_as_vendor_defined_1_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(HID_VENDOR_DEFINED_1).sub_language(), | 
|  | SubLanguage::VendorDefined1 | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_hid_vendor_defined_2_as_hid_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(HID_VENDOR_DEFINED_2).primary_language(), | 
|  | PrimaryLanguage::HID | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_hid_vendor_defined_1_as_vendor_defined_2_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(HID_VENDOR_DEFINED_2).sub_language(), | 
|  | SubLanguage::VendorDefined2 | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_hid_vendor_defined_3_as_hid_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(HID_VENDOR_DEFINED_3).primary_language(), | 
|  | PrimaryLanguage::HID | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_hid_vendor_defined_1_as_vendor_defined_3_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(HID_VENDOR_DEFINED_3).sub_language(), | 
|  | SubLanguage::VendorDefined3 | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_hid_vendor_defined_4_as_hid_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(HID_VENDOR_DEFINED_4).primary_language(), | 
|  | PrimaryLanguage::HID | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_hid_vendor_defined_1_as_vendor_defined_4_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(HID_VENDOR_DEFINED_4).sub_language(), | 
|  | SubLanguage::VendorDefined4 | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_other_as_other_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(0xFFFF).primary_language(), | 
|  | PrimaryLanguage::Other(PRIMARY_LANGUAGE_MASK) | 
|  | ); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn it_recognizes_other_as_other_sub_language() { | 
|  | assert_eq!( | 
|  | super::from_lang_id(0xFFFF).sub_language(), | 
|  | SubLanguage::Other(SUB_LANGUAGE_MASK) | 
|  | ); | 
|  | } | 
|  | } |