TestFormulaHelper.java 2.66 KB
package helper;

import com.yanzuoguang.util.helper.FormulaHelper;
import org.junit.Test;

public class TestFormulaHelper {

    @Test
    public void test() {
        System.out.println(FormulaHelper.calc("120 + 2 * ( a + b * d )", new FormulaHelper.CalcParameter() {
            @Override
            public double getValue(String parameterName) {
                switch (parameterName){
                    case "a":
                        return 5;
                    case "b":
                        return 3;
                    case "d":
                        return 11;
                    default:
                        return 0;
                }
            }
        }));
    }

    @Test
    public void testMul() {
        System.out.println(FormulaHelper.calc("(100-0)-2"));
        System.out.println(FormulaHelper.calc("100-0-2"));
        System.out.println(FormulaHelper.calc("100*2/3+2*5"));

        System.out.println(FormulaHelper.calc("8+3*4"));
        System.out.println(FormulaHelper.calc("(8+4)*3"));
        System.out.println(FormulaHelper.calc(" 8-6/3"));
        System.out.println(FormulaHelper.calc("(8-5)/3"));
        System.out.println(FormulaHelper.calc("(1-2)*(3-4)"));
        System.out.println(FormulaHelper.calc("1+(2+3)/(1+4)"));
        System.out.println(FormulaHelper.calc("1+(2-5)/(2+4)"));

        // System.out.println(FormulaHelper.calc(""));

    }


    @Test
    public void test1() {

        System.out.println(FormulaHelper.calc("= a * 120 + 2 * ( a + b * d )", new FormulaHelper.CalcParameter() {
            @Override
            public double getValue(String parameterName) {
                switch (parameterName){
                    case "a":
                        return 5;
                    case "b":
                        return 3;
                    case "d":
                        return 11;
                    default:
                        return 0;
                }
            }
        }));
    }

    @Test
    public void test3() {
        System.out.println(FormulaHelper.calc("a * 0.006", new FormulaHelper.CalcParameter() {
            @Override
            public double getValue(String parameterName) {
                switch (parameterName){
                    case "a":
                        return 1500;
                    default:
                        return 0;
                }
            }
        }));
    }

    @Test
    public void test2() {
        System.out.println(FormulaHelper.getExcelIndex("aa"));
        System.out.println(FormulaHelper.getExcelIndex("ba"));
        System.out.println(FormulaHelper.getExcelIndex("ab"));
        System.out.println(FormulaHelper.getExcelIndex("a"));
    }
}