public void IndicadorMasCuentaPorValor() { Indicador indicadorTest = new Indicador(); indicadorTest.Formula = "cuenta * 10"; indicadorTest.Nombre = "ind"; Cuenta cuenta = new Cuenta(); cuenta.Nombre = "cuenta"; cuenta.Valor = 50; Indicador indicador2 = new Indicador(); indicador2.Formula = "ind + 25"; Empresa empresa = new Empresa(); Balance bal = new Balance(); bal.Empresa = empresa; bal.Periodo = 2017; bal.Cuentas.Add(cuenta); empresa.Balances.Add(bal); List <ComponenteOperando> lista = new List <ComponenteOperando>(); lista.Add(cuenta); lista.Add(indicadorTest); int periodo = 2017; double result = indicador2.ObtenerValor(empresa, periodo, lista); Assert.AreEqual(result, 525); }
public void SumaSoloCuenta() { Indicador indicadorTest = new Indicador(); indicadorTest.Formula = "18 + terd"; indicadorTest.Nombre = "ind"; Cuenta cuenta = new Cuenta(); cuenta.Nombre = "terd"; cuenta.Valor = 50; Empresa empresa = new Empresa(); Balance bal = new Balance(); bal.Empresa = empresa; bal.Periodo = 2017; bal.Cuentas.Add(cuenta); empresa.Balances.Add(bal); List <ComponenteOperando> lista = new List <ComponenteOperando>(); lista.Add(cuenta); lista.Add(indicadorTest); int periodo = 2017; double result = indicadorTest.ObtenerValor(empresa, periodo, lista); Assert.AreEqual(result, 68); }
public double EvaluarIndicadorParaEmpresa(int idIndicador, string cuit, int periodo, List <Indicador> indicadoresDelUsuario) { //Obtengo el indicador y empresa solicitada Indicador indicador = GetById(idIndicador); EmpresasService empSv = new EmpresasService(db); Empresa empresa = empSv.GetByCUIT(cuit); //Aplico el indicador, es decir, hay que parsear la formula List <ComponenteOperando> listaOperandos = new List <ComponenteOperando>(); listaOperandos.AddRange(db.Operandos.OfType <Cuenta>()); listaOperandos.AddRange(indicadoresDelUsuario); double valorTrasAplicarIndicador = indicador.ObtenerValor(empresa, periodo, listaOperandos); return(valorTrasAplicarIndicador); }