示例#1
0
文件: Calculos.cs 项目: calvarezg/TSM
 public static double GenereElImpuesto(DatosDeRendimiento losDatos)
 {
     // TODO: Arreglar
     if (losDatos.TieneTratamientoFiscal)
     {
         return(new ImpuestoRedondeado(losDatos).ConCuatroDecimales());
     }
     else
     {
         return(0);
     }
 }
示例#2
0
        public void EnDias_DosFechas_DiferenciaEnDias()
        {
            elResultadoEsperado = 221;

            losDatos = new DatosDeRendimiento
            {
                FechaDeVencimiento = new DateTime(2016, 10, 10),
                FechaActual        = new DateTime(2016, 3, 3)
            };
            elResultadoObtenido = new PlazoDeVencimiento(losDatos).EnDias();

            Assert.AreEqual(elResultadoEsperado, elResultadoObtenido);
        }
示例#3
0
        public void ComoUnNumero_CalculaValorTransadoBrutoConTratamiento()
        {
            elResultadoEsperado = 298378.378378378;

            losDatos = new DatosDeRendimiento
            {
                ValorFacial        = 320000,
                ValorTransadoNeto  = 300000,
                TasaDeImpuesto     = 0.08,
                FechaDeVencimiento = new DateTime(2016, 10, 10),
                FechaActual        = new DateTime(2016, 3, 3)
            };
            elResultadoObtenido = new ValorTransadoBruto(losDatos).ComoNumero();

            Assert.AreEqual(elResultadoEsperado, elResultadoObtenido, 9);
        }
示例#4
0
        public void ComoNumero_ValoresDeEntrada_ImpuestoCorrecto()
        {
            elResultadoEsperado = 1621.6216216216562;

            losDatos = new DatosDeRendimiento
            {
                ValorFacial            = 320000,
                ValorTransadoNeto      = 300000,
                TasaDeImpuesto         = 0.08,
                FechaDeVencimiento     = new DateTime(2016, 10, 10),
                FechaActual            = new DateTime(2016, 3, 3),
                TieneTratamientoFiscal = true
            };
            elResultadoObtenido = new Impuesto(losDatos).ComoNumero();

            Assert.AreEqual(elResultadoEsperado, elResultadoObtenido);
        }
示例#5
0
        public void GenereElImpuesto_NoTieneTratamientoFiscal_EsCero()
        {
            elResultadoEsperado = 0;

            losDatos = new DatosDeRendimiento
            {
                ValorFacial            = 320500,
                ValorTransadoNeto      = 300000,
                TasaDeImpuesto         = 0.08,
                FechaDeVencimiento     = new DateTime(2016, 10, 10),
                FechaActual            = new DateTime(2016, 3, 3),
                TieneTratamientoFiscal = false
            };
            elResultadoObtenido = Calculos.GenereElImpuesto(losDatos);

            Assert.AreEqual(elResultadoEsperado, elResultadoObtenido);
        }
示例#6
0
        public void GenereElImpuesto_TieneTratamientoFiscalYSeRedondea_RedondeoHaciaArriba()
        {
            elResultadoEsperado = 1659.3592;

            losDatos = new DatosDeRendimiento
            {
                ValorFacial            = 320500,
                ValorTransadoNeto      = 300000,
                TasaDeImpuesto         = 0.08,
                FechaDeVencimiento     = new DateTime(2016, 10, 10),
                FechaActual            = new DateTime(2016, 3, 3),
                TieneTratamientoFiscal = true
            };
            elResultadoObtenido = Calculos.GenereElImpuesto(losDatos);

            Assert.AreEqual(elResultadoEsperado, elResultadoObtenido);
        }
示例#7
0
        public void ConCuatroDecimales_ValoresDeEntrada_ImpuestoRedondeadoA4Decimales()
        {
            elResultadoEsperado = 1621.6216;

            losDatos = new DatosDeRendimiento
            {
                ValorFacial            = 320000,
                ValorTransadoNeto      = 300000,
                TasaDeImpuesto         = 0.08,
                FechaDeVencimiento     = new DateTime(2016, 10, 10),
                FechaActual            = new DateTime(2016, 3, 3),
                TieneTratamientoFiscal = true
            };
            elResultadoObtenido = new ImpuestoRedondeado(losDatos).ConCuatroDecimales();

            Assert.AreEqual(elResultadoEsperado, elResultadoObtenido);
        }
示例#8
0
        public void GenereElRendimientosPorDescuento_NoTieneTratamientoFiscal_SinRedondeo()
        {
            elResultadoEsperado = 19999.9999;

            losDatos = new DatosDeRendimiento
            {
                ValorFacial            = 320000,
                ValorTransadoNeto      = 300000.0001,
                TasaDeImpuesto         = 0.08,
                FechaDeVencimiento     = new DateTime(2016, 10, 10),
                FechaActual            = new DateTime(2016, 3, 3),
                TieneTratamientoFiscal = false
            };
            elResultadoObtenido = new RendimientoPorDescuentoRedondeado(losDatos).ConCuatroDecimales();

            Assert.AreEqual(elResultadoEsperado, elResultadoObtenido);
        }
示例#9
0
        public void GenereElRendimientosPorDescuento_TieneTratamientoFiscalYSeDebeRedondear_RedondeaHaciaAbajo()
        {
            elResultadoEsperado = 22159.3592;

            losDatos = new DatosDeRendimiento
            {
                ValorFacial            = 320500,
                ValorTransadoNeto      = 300000,
                TasaDeImpuesto         = 0.08,
                FechaDeVencimiento     = new DateTime(2016, 10, 10),
                FechaActual            = new DateTime(2016, 3, 3),
                TieneTratamientoFiscal = true
            };
            elResultadoObtenido = new RendimientoPorDescuentoRedondeado(losDatos).ConCuatroDecimales();

            Assert.AreEqual(elResultadoEsperado, elResultadoObtenido);
        }
示例#10
0
        public void ComoNumero_SinTratamientoFiscal_RendimientoPorDescuentoCorrecto()
        {
            elResultadoEsperado = 19999.999899999995;

            losDatos = new DatosDeRendimiento
            {
                ValorFacial            = 320000.0,
                ValorTransadoNeto      = 300000.0001,
                TasaDeImpuesto         = 0.08,
                FechaDeVencimiento     = new DateTime(2016, 10, 10),
                FechaActual            = new DateTime(2016, 3, 3),
                TieneTratamientoFiscal = false
            };
            elResultadoObtenido = new RendimientoPorDescuento(losDatos).ComoNumero();

            Assert.AreEqual(elResultadoEsperado, elResultadoObtenido);
        }
示例#11
0
 public ImpuestoRedondeado(DatosDeRendimiento losDatos)
 {
     elImpuesto = new Impuesto(losDatos).ComoNumero();
 }
示例#12
0
 public Impuesto(DatosDeRendimiento losDatos)
 {
     elValorTransadoNeto  = losDatos.ValorTransadoNeto;
     elValorTransadoBruto = new ValorTransadoBruto(losDatos).ComoNumero();
 }
示例#13
0
 public RendimientoPorDescuento(DatosDeRendimiento losDatos)
 {
     elValorFacial        = losDatos.ValorFacial;
     elValorTransadoBruto = losDatos.ValorTransadoBruto;
 }
示例#14
0
 public static double GenereElImpuesto(DatosDeRendimiento losDatos)
 {
     return(losDatos.Impuesto);
 }