public void TesteDeMultiValores() { for (decimal i = 0m; i < 1002m; i += (i < 2m) ? 0.01m : 1m) { var teste = new PorExtenso(i); var testeItens = new PorExtenso(i, "item", "itens", nãoEncurtarUmMilParaMil: true, useAParteFracionária: false); var testeCoisas = new PorExtenso(i, "coisa", "coisas", noFeminino: true, useAParteFracionária: false); if (i == 0m) { Assert.AreEqual("zero", teste.ToString()); Assert.AreEqual(teste.ToString(), testeItens.ToString()); Assert.AreEqual(teste.ToString(), testeCoisas.ToString()); Assert.AreEqual(testeItens.ToString(), testeCoisas.ToString()); } else if (i < 1) { Assert.AreNotEqual(teste.ToString(), testeItens.ToString()); Assert.IsEmpty(testeCoisas.ToString()); Assert.IsEmpty(testeCoisas.ToString()); } else { Assert.AreNotEqual(teste.ToString(), testeItens.ToString()); Assert.AreNotEqual(teste.ToString(), testeCoisas.ToString()); Assert.AreNotEqual(testeItens.ToString(), testeCoisas.ToString()); } } }
public void TesteDoBilhão() { var valor = decimal.Parse("1234567890.12", CultureInfo.InvariantCulture); var teste = new PorExtenso(valor); Assert.AreEqual(valor, teste.ValorNumérico); Assert.AreEqual("um bilhão duzentos e trinta e quatro milhões quinhentos e sessenta e sete mil e oitocentos e noventa reais e doze centavos", teste.ToString()); Assert.AreEqual("um bilhão duzentos e trinta e quatro milhões quinhentos e sessenta e sete mil e oitocentos e noventa reais e doze centavos", PorExtenso.EmReais(valor)); Assert.AreEqual("um bilhão duzentos e trinta e quatro milhões quinhentos e sessenta e sete mil e oitocentos e noventa dólares e doze centavos de dólar", PorExtenso.EmDólares(valor)); Assert.AreEqual(new string[] { "um bilhão duzentos e trinta e", "quatro milhões quinhentos e", "sessenta e sete mil e oitocentos e noventa reais e doze centavos" }, teste.QuebradoEmLinhas(30, 30, 100)); }
public void TesteDeCotaçãoDoDólar() => Assert.AreEqual("dois reais e seiscentos e doze milésimos", PorExtenso.CotaçãoDoDólar(2.612m));
public IEnumerable <string> GetNumeroPorExtenso(string numero) { PorExtenso porExtenso = new PorExtenso(); numero = numero.PadLeft(4, '0'); // DECLARANDO A STRING ZERO string zero = "0000"; if (numero == zero) { var extensoZero = "Zero"; yield return(extensoZero.ToString()); } // ESCREVER POR EXTENSO MILHAR if (numero[0] != '0') { switch (numero[0]) { case '1': Milhar = "Um Mil"; break; case '2': Milhar = "Dois Mil"; break; case '3': Milhar = "Três Mil"; break; case '4': Milhar = "Quatro Mil"; break; case '5': Milhar = "Cinco Mil"; break; case '6': Milhar = "Seis Mil"; break; case '7': Milhar = "Sete Mil"; break; case '8': Milhar = "Oito Mil"; break; case '9': Milhar = "Nove Mil"; break; } } // ESCREVER POR EXTENSO CENTENA if (numero[1] != '0') { switch (numero[1]) { case '1': Centena = "Cento "; break; case '2': Centena = "Duzentos "; break; case '3': Centena = "Trezentos "; break; case '4': Centena = "Quatrocentos "; break; case '5': Centena = "Quinhentos "; break; case '6': Centena = "Seiscentos "; break; case '7': Centena = "Setecentos "; break; case '8': Centena = "Oitocentos "; break; case '9': Centena = "Novecentos "; break; } if (numero[1] == '1' && numero[2] == '0' && numero[3] == '0') { Centena = "Cem"; } } //ESCREVER POR EXTENSO DEZENA if (numero[2] == '1') { switch (numero.Substring(2)) { case "10": Dezena = "e Dez"; break; case "11": Dezena = "e Onze"; break; case "12": Dezena = " e Doze"; break; case "13": Dezena = " e Treze"; break; case "14": Dezena = " e Quatorze"; break; case "15": Dezena = " e Quinze"; break; case "16": Dezena = " e Dezesseis"; break; case "17": Dezena = " e Dezessete"; break; case "18": Dezena = " e Dezoito"; break; case "19": Dezena = " e Dezenove"; break; } } else if (numero[2] != '0') { switch (numero[2]) { case '2': Dezena = "e Vinte "; break; case '3': Dezena = "e Trinta "; break; case '4': Dezena = "e Quarenta "; break; case '5': Dezena = "e Cinquenta "; break; case '6': Dezena = "e Secenta "; break; case '7': Dezena = "e Setenta "; break; case '8': Dezena = "e Oitenta "; break; case '9': Dezena = "e Noventa "; break; } } //ESCREVER POR EXTENSO UNIDADE if (numero[3] != '0' && numero[2] != '1') { switch (numero[3]) { case '1': Unidade = "e Um"; break; case '2': Unidade = "e Doiz"; break; case '3': Unidade = "e Três"; break; case '4': Unidade = "e Quatro"; break; case '5': Unidade = "e Cinco"; break; case '6': Unidade = "e Seis"; break; case '7': Unidade = "e Sete"; break; case '8': Unidade = "e Oito"; break; case '9': Unidade = "e Nove"; break; } } // CRIAR EXTENSO var Extenso = Milhar + Centena + Dezena + Unidade; // COMANDO DE SAIDA if (Extenso[0] == 'e') { Extenso = Extenso.Substring(2); } yield return(Extenso.ToString()); }