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(); }
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); }