Пример #1
0
        static void Main(string[] args)
        {
            var contribuintes = new List <Contribuinte>();

            Console.Write("CPF: ");
            var cpf = LerCPF();

            while (cpf != "0")
            {
                var contribuinte = new Contribuinte();
                contribuinte.CPF = cpf;

                Console.Write("Nome: ");
                contribuinte.Nome = Console.ReadLine();

                Console.Write("Número de dependentes: ");
                contribuinte.ContribuinteImpostoRenda.NumeroDependentes = LerInteiro();

                Console.Write("Renda bruta mensal: ");
                contribuinte.ContribuinteImpostoRenda.RendaBruta = LerDecimal();

                contribuintes.Add(contribuinte);

                Console.Write("\nCPF: ");
                cpf = LerCPF();
            }

            if (!contribuintes.Any())
            {
                return;
            }

            Console.Write("\nValor do salário mínimo: ");
            var salarioMinimo = LerDecimal();

            foreach (var contribuinte in contribuintes)
            {
                decimal impostoRenda = CalculadoraIR.ImpostoRenda(salarioMinimo, contribuinte);
                contribuinte.ContribuinteImpostoRenda.ImpostoRenda = impostoRenda;
            }

            contribuintes = contribuintes.OrderBy(x => x.ContribuinteImpostoRenda.ImpostoRenda)
                            .ThenBy(x => x.Nome).ToList();

            Console.WriteLine();
            foreach (var item in contribuintes)
            {
                var resultados = string.Format("Contribuinte {0}, Imposto de Renda R$ {1}"
                                               , item.Nome, item.ContribuinteImpostoRenda.ImpostoRenda.ToString("0.00"));

                Console.WriteLine(resultados);
            }

            Console.ReadKey();
        }
Пример #2
0
        public void ImpostoRendaTest()
        {
            var rendaBruta        = 5000;
            var salarioMinimo     = 500;
            var numeroDependentes = 5;
            var desconto          = CalculadoraIR.DescontoPorDependente(salarioMinimo, numeroDependentes);
            var rendaLiquida      = CalculadoraIR.RendaLiquida(rendaBruta, desconto);
            var salariosMinimos   = CalculadoraIR.QuantidadeSalariosMinimos(salarioMinimo, rendaLiquida);
            var aliquota          = CalculadoraIR.PercentualAliquota(salariosMinimos);
            var impostoRenda      = CalculadoraIR.ImpostoRenda(rendaLiquida, aliquota);

            Assert.AreEqual(1340.625m, impostoRenda);

            rendaBruta      = 4000;
            desconto        = CalculadoraIR.DescontoPorDependente(salarioMinimo, numeroDependentes);
            rendaLiquida    = CalculadoraIR.RendaLiquida(rendaBruta, desconto);
            salariosMinimos = CalculadoraIR.QuantidadeSalariosMinimos(salarioMinimo, rendaLiquida);
            aliquota        = CalculadoraIR.PercentualAliquota(salariosMinimos);
            impostoRenda    = CalculadoraIR.ImpostoRenda(rendaLiquida, aliquota);
            Assert.AreEqual(1065.62500m, impostoRenda);

            rendaBruta      = 3000;
            desconto        = CalculadoraIR.DescontoPorDependente(salarioMinimo, numeroDependentes);
            rendaLiquida    = CalculadoraIR.RendaLiquida(rendaBruta, desconto);
            salariosMinimos = CalculadoraIR.QuantidadeSalariosMinimos(salarioMinimo, rendaLiquida);
            aliquota        = CalculadoraIR.PercentualAliquota(salariosMinimos);
            impostoRenda    = CalculadoraIR.ImpostoRenda(rendaLiquida, aliquota);
            Assert.AreEqual(646.875M, impostoRenda);

            rendaBruta      = 2000;
            desconto        = CalculadoraIR.DescontoPorDependente(salarioMinimo, numeroDependentes);
            rendaLiquida    = CalculadoraIR.RendaLiquida(rendaBruta, desconto);
            salariosMinimos = CalculadoraIR.QuantidadeSalariosMinimos(salarioMinimo, rendaLiquida);
            aliquota        = CalculadoraIR.PercentualAliquota(salariosMinimos);
            impostoRenda    = CalculadoraIR.ImpostoRenda(rendaLiquida, aliquota);
            Assert.AreEqual(140.625m, impostoRenda);

            rendaBruta      = 1000;
            desconto        = CalculadoraIR.DescontoPorDependente(salarioMinimo, numeroDependentes);
            rendaLiquida    = CalculadoraIR.RendaLiquida(rendaBruta, desconto);
            salariosMinimos = CalculadoraIR.QuantidadeSalariosMinimos(salarioMinimo, rendaLiquida);
            aliquota        = CalculadoraIR.PercentualAliquota(salariosMinimos);
            impostoRenda    = CalculadoraIR.ImpostoRenda(rendaLiquida, aliquota);
            Assert.AreEqual(0m, impostoRenda);
        }