Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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
            };
        }
Beispiel #4
0
 public void addFieldCriterion(FieldCriterion fieldCriterion)
 {
     this.fieldCriterion = fieldCriterion;
 }