public void ConvertToPalasoConformPrivateUseRfc5646Tag(string language, string script, string region, string variant) { string newVariant = ""; string newPrivateUse = ""; _script = script; _region = region; if (!String.IsNullOrEmpty(variant)) { WritingSystemDefinition.SplitVariantAndPrivateUse(variant, out newVariant, out newPrivateUse); } var privateUseSubtagsWithoutXs = StripXs(newPrivateUse); var languageSubtagsWithoutXs = StripXs(language); newPrivateUse = String.Join("-", (languageSubtagsWithoutXs.Union(privateUseSubtagsWithoutXs)).Where(str => !String.IsNullOrEmpty(str)).ToArray()); _variant = WritingSystemDefinition.ConcatenateVariantAndPrivateUse(newVariant, newPrivateUse); if (!(String.IsNullOrEmpty(script) && String.IsNullOrEmpty(region) && String.IsNullOrEmpty(newVariant)) ) { _language = "qaa"; } }
public void SplitVariantAndPrivateUse_BogusVariantBadPrivateUse_HappilysplitsOnxDash() { string variant; string privateUse; WritingSystemDefinition.SplitVariantAndPrivateUse("bogusVariant-X-audio-emic-etic", out variant, out privateUse); Assert.That(variant, Is.EqualTo("bogusVariant")); Assert.That(privateUse, Is.EqualTo("audio-emic-etic")); }
public void SplitVariantAndPrivateUse_VariantAndPrivateUseWithCapitalXDash_ReturnsConcatenatedVariantAndPrivateUse() { string variant = String.Empty; string privateUse = String.Empty; WritingSystemDefinition.SplitVariantAndPrivateUse("1901-X-audio", out variant, out privateUse); Assert.That(variant, Is.EqualTo("1901")); Assert.That(privateUse, Is.EqualTo("audio")); }
public void SplitVariantAndPrivateUse_PrivateUseWithCapitalXDashOnly_ReturnsPrivateUseWithxDash() { string variant; string privateUse; WritingSystemDefinition.SplitVariantAndPrivateUse("X-audio", out variant, out privateUse); Assert.That(variant, Is.EqualTo(String.Empty)); Assert.That(privateUse, Is.EqualTo("audio")); }
public void SplitVariantAndPrivateUse_NoxDash_ReturnsVariantOnly() { string variant; string privateUse; WritingSystemDefinition.SplitVariantAndPrivateUse("1901-audio", out variant, out privateUse); Assert.That(variant, Is.EqualTo("1901-audio")); Assert.That(privateUse, Is.EqualTo(String.Empty)); }
public void SplitVariantAndPrivateUse_VariantAndPrivateUse_ReturnsVariantAndPrivateUse() { string variant; string privateUse; WritingSystemDefinition.SplitVariantAndPrivateUse("1901-x-audio", out variant, out privateUse); Assert.That(variant, Is.EqualTo("1901")); Assert.That(privateUse, Is.EqualTo("audio")); }