Beispiel #1
0
        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));
 }