public void verifyValueForFormula() { var campoCriterio1 = new FieldCriterion("PorcentajeComision"); var campoCriterio2 = new FieldCriterion("MultiplicadorPersitencia"); var expresion = new VariableExpression("PorcentajeComision*MultiplicadorPersitencia*70", new List <FieldCriterion>() { campoCriterio1, campoCriterio2 }); var variable = new Variable(1, "PorcentajeComision", expresion); variable.isCriterion(); variable.setMathResolve(new MathXParserResolve()); var valorformula = variable.resolve(); valorformula.Should().Be(5.6M); }
public void verifyValueForRange() { var operadorMenorQue = new Operator("<"); var operadorMayorIgualQue = new Operator(">="); var campoCriterio = new FieldCriterion("CantidadContratoMix"); var range1 = new Rank(1, operadorMenorQue, 1, 0.0M); var range2 = new Rank(1, operadorMenorQue, 5, 0.8M); var range3 = new Rank(1, operadorMenorQue, 10, 0.9M); var range4 = new Rank(1, operadorMenorQue, 15, 1.0M); var range5 = new Rank(1, operadorMayorIgualQue, 15, 1.2M); range1.isPorcentage(); range1.addFieldCriterion(campoCriterio); range2.isPorcentage(); range2.addFieldCriterion(campoCriterio); range3.isPorcentage(); range3.addFieldCriterion(campoCriterio); range4.isPorcentage(); range4.addFieldCriterion(campoCriterio); range5.isPorcentage(); range5.addFieldCriterion(campoCriterio); var variable = new Variable(1, "PorcentajeComision"); variable.addRanks(new List <Rank>() { range1, range2, range3, range4, range5 }); variable.isRank(); variable.setMathResolve(new MathXParserResolve()); var pcomision = variable.resolve(); pcomision.Should().Be(0.8M); }
public FormulaShould() { var operadorMenorQue = new Operator("<"); var operadorMayorIgualQue = new Operator(">="); var campoCriterio1 = new FieldCriterion("Cantidad_Contratos");//4 var range1 = new Rank(1, operadorMenorQue, 1, 0.5M); range1.isPorcentage(); range1.addFieldCriterion(campoCriterio1); var range2 = new Rank(1, operadorMenorQue, 5, 0.8M); range2.isPorcentage(); range2.addFieldCriterion(campoCriterio1); var range3 = new Rank(1, operadorMenorQue, 10, 0.9M); range3.isPorcentage(); range3.addFieldCriterion(campoCriterio1); var range4 = new Rank(1, operadorMenorQue, 15, 1.0M); range4.isPorcentage(); range4.addFieldCriterion(campoCriterio1); var range5 = new Rank(1, operadorMayorIgualQue, 15, 1.2M); range5.isPorcentage(); range5.addFieldCriterion(campoCriterio1); var PorcentajeComision = new Variable(1, "PorcentajeComision"); PorcentajeComision.isRank(); PorcentajeComision.addRanks(new List <Rank>() { range1, range2, range3, range4, range5 }); var campoCriterio2 = new FieldCriterion("Porcentaje_Persistencia");//0.8 var range21 = new Rank(1, operadorMenorQue, 0.70M, 0.5M); range21.isPorcentage(); range21.addFieldCriterion(campoCriterio2); var range22 = new Rank(1, operadorMenorQue, 0.75M, 0.7M); range22.isPorcentage(); range22.addFieldCriterion(campoCriterio2); var range23 = new Rank(1, operadorMenorQue, 0.85M, 0.9M); range23.isPorcentage(); range23.addFieldCriterion(campoCriterio2); var range24 = new Rank(1, operadorMayorIgualQue, 0.85M, 1.0M); range24.isPorcentage(); range24.addFieldCriterion(campoCriterio2); var PorcentajePersistencia = new Variable(1, "PorcentajePersistencia"); PorcentajePersistencia.isRank(); PorcentajePersistencia.addRanks(new List <Rank>() { range21, range22, range23, range24 }); var campoCriterio31 = new FieldCriterion("Cantidad_Contratos"); //4 var expresion = new VariableExpression("Cantidad_Contratos*0.5", new List <FieldCriterion>() { campoCriterio31 }); var PorcentajeSegundoPago = new Variable(1, "PorcentajeSegundoPago", expresion); PorcentajeSegundoPago.isCriterion(); _formula = new Formula(1, "Calculo de Comision 1", "PorcentajeComision*PorcentajePersistencia*PorcentajeSegundoPago", 1); var _formula2 = new Formula(2, "Calculo de Comision 2", "PorcentajeComision+PorcentajePersistencia+PorcentajeSegundoPago", 2); _formula.addVariable(PorcentajeComision); _formula.addVariable(PorcentajePersistencia); _formula.addVariable(PorcentajeSegundoPago); _formula2.addVariable(PorcentajeComision); _formula2.addVariable(PorcentajePersistencia); _formula2.addVariable(PorcentajeSegundoPago); _Listformula = new List <Formula>() { _formula, _formula2 }; }
public void addFieldCriterion(FieldCriterion fieldCriterion) { this.fieldCriterion = fieldCriterion; }