public void DiasAlVencimiento_DosFechas_Diferencia() { elResultadoEsperado = 221.00; laInformacion = new LaInformacionDelRendimientoPorDescuento(); laInformacion.fechaDeVencimiento = new DateTime(2016, 10, 10); laInformacion.fechaActual = new DateTime(2016, 3, 3); elResultadoObtenido = new DiasAlVencimiento(laInformacion).DiasTotales(); Assert.AreEqual(elResultadoObtenido, elResultadoEsperado); }
public void ValorTransadoBruto_ConTratamientoFiscal_Test() { elResultadoEsperado = 298378.378378378; laInformacion = new LaInformacionDelRendimientoPorDescuento(); laInformacion.valorFacial = 320000; laInformacion.valorTransadoNeto = 300000; laInformacion.tasaDeImpuesto = 0.08; laInformacion.fechaDeVencimiento = new DateTime(2016, 10, 10); laInformacion.fechaActual = new DateTime(2016, 3, 3); elResultadoObtenido = new ValorTransadoBruto(laInformacion).ObtenerValorTransadoBruto(); Assert.AreEqual(elResultadoObtenido, elResultadoEsperado, 0.000000001); }
private double ObtenerImpuestoSinRedondeo(LaInformacionDelRendimientoPorDescuento laInformacion) { // TODO: 2 PUNTOS if (laInformacion.tieneTratamientoFiscal) { return(new ImpuestoConTratamientoFiscal(laInformacion).CalcularImpuesto()); } else { return(0); } }
public void ObtenerTasaBruta_Tests() { elResultadoEsperado = 11.9679979015017; laInformacion = new LaInformacionDelRendimientoPorDescuento(); laInformacion.valorFacial = 320000; laInformacion.valorTransadoNeto = 300000; laInformacion.tasaDeImpuesto = 0.08; laInformacion.fechaDeVencimiento = new DateTime(2016, 10, 10); laInformacion.fechaActual = new DateTime(2016, 3, 3); diasAlVencimiento = new DiasAlVencimiento(laInformacion).DiasTotales(); elResultadoObtenido = new TasaBruta(laInformacion, diasAlVencimiento).ObtenerTasaBruta(); Assert.AreEqual(elResultadoEsperado, elResultadoObtenido, 0.0000000000001); }
public void RendimientoPorDescuento_ConTratamientoFiscal() { elResultadoEsperado = 21621.6216; laInformacion = new LaInformacionDelRendimientoPorDescuento(); laInformacion.valorFacial = 320000; laInformacion.valorTransadoNeto = 300000; laInformacion.tasaDeImpuesto = 0.08; laInformacion.fechaDeVencimiento = new DateTime(2016, 10, 10); laInformacion.fechaActual = new DateTime(2016, 3, 3); laInformacion.tieneTratamientoFiscal = true; elResultadoObtenido = RendimientoPorDescuento.DeterminarRendimientoPorDescuento(laInformacion); Assert.AreEqual(elResultadoEsperado, elResultadoObtenido); }
public void GeneraRendimientoPorDescuento_NoTieneTratamientoFiscal_SinRedondeo() { elResultadoEsperado = 19999.9999; laInformacion = new LaInformacionDelRendimientoPorDescuento(); laInformacion.valorFacial = 320000; laInformacion.valorTransadoNeto = 300000.0001; laInformacion.tasaDeImpuesto = 0.08; laInformacion.fechaDeVencimiento = new DateTime(2016, 10, 10); laInformacion.fechaActual = new DateTime(2016, 3, 3); laInformacion.tieneTratamientoFiscal = false; elResultadoObtenido = RendimientoPorDescuento.DeterminarRendimientoPorDescuento(laInformacion); Assert.AreEqual(elResultadoEsperado, elResultadoObtenido); }
public void GeneraImpuesto_TieneTratamientoFiscal_RedondeoHaciaArriba() { elResultadoEsperado = 1659.3592; laInformacion = new LaInformacionDelRendimientoPorDescuento(); laInformacion.valorFacial = 320500; laInformacion.valorTransadoNeto = 300000; laInformacion.tasaDeImpuesto = 0.08; laInformacion.fechaDeVencimiento = new DateTime(2016, 10, 10); laInformacion.fechaActual = new DateTime(2016, 3, 3); laInformacion.tieneTratamientoFiscal = true; elResultadoObtenido = Impuesto.DeterminarImpuesto(laInformacion); Assert.AreEqual(elResultadoEsperado, elResultadoObtenido); }
public static double DeterminarImpuesto(LaInformacionDelRendimientoPorDescuento laInformacion) { return(new ImpuestoRedondeado(laInformacion).ObtenerRendimientoPorDescuento()); }
public TasaBruta(LaInformacionDelRendimientoPorDescuento laInformacion, double diasAlVencimiento) { this.tasaDeImpuesto = laInformacion.tasaDeImpuesto; tasaNeta = CalcularTasaNeta(laInformacion, diasAlVencimiento); }
private double CalcularTasaNeta(LaInformacionDelRendimientoPorDescuento laInformacion, double diasAlVencimiento) { return(((laInformacion.valorFacial - laInformacion.valorTransadoNeto) / (laInformacion.valorTransadoNeto * (diasAlVencimiento / 365))) * 100); }
public ImpuestoConTratamientoFiscal(LaInformacionDelRendimientoPorDescuento laInformacion) { // TODO: 2 PUNTOS this.valorTransadoNeto = laInformacion.valorTransadoNeto; valorTransadoBruto = new ValorTransadoBruto(laInformacion).ObtenerValorTransadoBruto(); }
public ImpuestoRedondeado(LaInformacionDelRendimientoPorDescuento laInformacion) { impuesto = ObtenerImpuestoSinRedondeo(laInformacion); }