public Real(decimal valor) { var numeroDaParteInteira = (long)Math.Truncate(valor); if (numeroDaParteInteira > 0) { _parteInteira = ConversorDeNumeroParaClasses.Converter(numeroDaParteInteira); _pluralidadeInteira = ObterPluralidadeDaParteInteira(numeroDaParteInteira); } var parteDecimal = ((valor - Math.Truncate(valor)) * 100); if (parteDecimal - Math.Truncate(parteDecimal) > 0) { throw new Exception(string.Format("O valor {0} tem mais de duas casas decimais", valor)); } var numeroDaParteDecimal = (long)parteDecimal; if (numeroDaParteDecimal > 0) { _parteDecimal = ConversorDeNumeroParaClasses.Converter(numeroDaParteDecimal); _pluralidadeDecimal = ObterPluralidadeDaParteDecimal(numeroDaParteDecimal); } }
public MetroQuadrado(decimal valor) { var numeroDaParteInteira = (long)Math.Truncate(valor); if (numeroDaParteInteira > 0) { _parteInteira = ConversorDeNumeroParaClasses.Converter(numeroDaParteInteira); _pluralidadeInteira = ObterPluralidadeDaParteInteira(numeroDaParteInteira); } var valorStr = valor.ToString(); var indexOfDecimal = valorStr.IndexOf(','); if (indexOfDecimal == 0) { indexOfDecimal = valorStr.IndexOf('.'); } var parteDecimal = Convert.ToDecimal(valorStr.Substring(indexOfDecimal + 1)); var numeroDaParteDecimal = (long)parteDecimal; if (numeroDaParteDecimal > 0) { _parteDecimal = ConversorDeNumeroParaClasses.Converter(numeroDaParteDecimal); _pluralidadeDecimal = ObterPluralidadeDaParteDecimal(numeroDaParteDecimal); } }
public void NaoDeveConverterNumeroMaiorQueOSuportado() { var numeroMaiorQueOMaximo = Convert.ToInt64(new string('9', ConversorDeNumeroParaClasses.NumeroDeClasses * 3 + 1)); var excecao = Assert.Throws <Exception>(() => ConversorDeNumeroParaClasses.Converter(numeroMaiorQueOMaximo)); Assert.AreEqual(string.Format("O valor {0} é maior que o suportado pela biblioteca", numeroMaiorQueOMaximo), excecao.Message); }
private void ResolverParteInteira(decimal valor) { var numeroDaParteInteira = (long)Math.Truncate(valor); if (numeroDaParteInteira > 0) { _parteInteira = ConversorDeNumeroParaClasses.Converter(numeroDaParteInteira); } }
private void ResolverParteDecimal(decimal valor) { var parteDecimal = ((valor - Math.Truncate(valor)) * 100); if (parteDecimal - Math.Truncate(parteDecimal) > 0) { throw new Exception(string.Format("O valor {0} tem mais de duas casas decimais", valor)); } var numeroDaParteDecimal = (long)parteDecimal; if (numeroDaParteDecimal <= 0) { return; } numeroDaParteDecimal = ReduzirNumeroDaParteDecimal(numeroDaParteDecimal); _parteDecimal = ConversorDeNumeroParaClasses.Converter(numeroDaParteDecimal); }
public void DeveConverterMilharComClasseAnterior() { var convertido = ConversorDeNumeroParaClasses.Converter(1984); Assert.AreEqual(new Milhar(new Unidade(1), new PrimeiraClasse(new Centena(9, new Dezena(8, new Unidade(4))))), convertido); }
public static string PorExtenso(this int valor) { return(ConversorDeNumeroParaClasses.Converter(valor).ToString()); }
public void DeveConverterUmMilhao() { var convertido = ConversorDeNumeroParaClasses.Converter((int)1e6); Assert.AreEqual(new Milhao(new Unidade(1)), convertido); }
public void DeveConverterCentenaDeMilhar() { var convertido = ConversorDeNumeroParaClasses.Converter(100000); Assert.AreEqual(new Milhar(new Centena(1)), convertido); }
public void DeveConverterMilharCompletoComPrimeiraClasseCompleta() { var convertido = ConversorDeNumeroParaClasses.Converter(999999); Assert.AreEqual(new Milhar(new Centena(9, new Dezena(9, new Unidade(9))), new PrimeiraClasse(new Centena(9, new Dezena(9, new Unidade(9))))), convertido); }
public void DeveConverterMilhar() { var convertido = ConversorDeNumeroParaClasses.Converter(1000); Assert.AreEqual(new Milhar(new Unidade(1)), convertido); }
public void DeveConverterZero() { var convertido = ConversorDeNumeroParaClasses.Converter(0); Assert.AreEqual(new PrimeiraClasse(new Unidade(0)), convertido); }
public void DeveConverterUmaCentenaComDezenaEUnidade() { var convertido = ConversorDeNumeroParaClasses.Converter(666); Assert.AreEqual(new PrimeiraClasse(new Centena(6, new Dezena(6, new Unidade(6)))), convertido); }
public void DeveConverterUmaCentena() { var convertido = ConversorDeNumeroParaClasses.Converter(200); Assert.AreEqual(new PrimeiraClasse(new Centena(2)), convertido); }
public void DeveConverterUmaDezenaComUnidade() { var convertido = ConversorDeNumeroParaClasses.Converter(13); Assert.AreEqual(new PrimeiraClasse(new Dezena(1, new Unidade(3))), convertido); }
public void DeveConverterUmaDezena() { Assert.AreEqual(new PrimeiraClasse(new Dezena(1)), ConversorDeNumeroParaClasses.Converter(10)); }
public void DeveConverterNumeroUm() { Assert.AreEqual(new PrimeiraClasse(new Unidade(1)), ConversorDeNumeroParaClasses.Converter(1)); }