⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testparser.java

📁 JAVA 数学程序库 提供常规的数值计算程序包
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package jmathlibtests.core.interpreter;

import jmathlib.tools.junit.framework.*;
import jmathlib.core.interpreter.*;
import jmathlibtests.*;

public class testParser extends TestCase {
	protected Interpreter ml;
	
    public testParser(String name) {
		super(name);
	}
	public static void main (String[] args) {
	    jmathlib.tools.junit.textui.TestRunner.run (suite());
	}
	protected void setUp() {
		ml = new Interpreter(true);
	}

	public static Test suite() {
		return new TestSuite(testParser.class);
	}

	/************* simple expressions ****************************************/
    public void testAdd01() {
        ml.executeExpression("a=1+1;");
		assertEquals(2.0, ml.getScalarValueRe("a"), 0.001);
	}
    public void testAdd02() {
        ml.executeExpression("a=3.45+2.234;");
		assertEquals(5.684, ml.getScalarValueRe("a"), 0.001);
	}
    public void testAdd03() {
        ml.executeExpression("ones(4)");
		assertTrue(true);
	}

    public void testAdd04() {
        ml.executeExpression("ones(4)");
		assertTrue(true);
	}

	/************* priorities ************************************************/
    public void testPriority01() {
        ml.executeExpression("a=2+3*4");
		assertEquals(14.0, ml.getScalarValueRe("a"), 0.001);
	}
    public void testPriority02() {
        ml.executeExpression("a=2*3+4");
		assertEquals(10.0, ml.getScalarValueRe("a"), 0.001);
	}

    public void testPriority03() {
        ml.executeExpression("a=1/2-1+9");
		assertEquals(8.5, ml.getScalarValueRe("a"), 0.001);
	}
    
    public void testPriority04() {
        ml.executeExpression("a=1+2*3+4*2");
		assertEquals(15.0, ml.getScalarValueRe("a"), 0.001);
	}

    public void testPriority05() {
        ml.executeExpression("a=1+2*3*4+5");
		assertEquals(30.0, ml.getScalarValueRe("a"), 0.001);
	}

    public void testPriority06() {
        ml.executeExpression("a=1+2*3+4*5+6");
		assertEquals(33.0, ml.getScalarValueRe("a"), 0.001);
	}

    public void testPriority07() {
        ml.executeExpression("a=ones((2)-1)");
		assertEquals(1.0, ml.getScalarValueRe("a"), 0.001);
	}

    public void testPriority08() {
        ml.executeExpression("{a=11;}b=22;");
		assertEquals(11.0, ml.getScalarValueRe("a"), 0.001);
		assertEquals(22.0, ml.getScalarValueRe("b"), 0.001);
	}

    public void testPriority09() {
        ml.executeExpression("a=33;{b=44;}c=55;");
		assertEquals(33.0, ml.getScalarValueRe("a"), 0.001);
		assertEquals(44.0, ml.getScalarValueRe("b"), 0.001);
		assertEquals(55.0, ml.getScalarValueRe("c"), 0.001);
	}

    public void testPriority10() {
        ml.executeExpression("a=66,{b=77,};c=88,");
		assertEquals(66.0, ml.getScalarValueRe("a"), 0.001);
		assertEquals(77.0, ml.getScalarValueRe("b"), 0.001);
		assertEquals(88.0, ml.getScalarValueRe("c"), 0.001);
	}

    public void testPriority11() {
        ml.executeExpression("a=2*(3+4)");
		assertEquals(14.0, ml.getScalarValueRe("a"), 0.001);
	}

    public void testPriority12() {
        ml.executeExpression("a=(2+4)*3");
		assertEquals(18.0, ml.getScalarValueRe("a"), 0.001);
	}

    public void testPriority13() {
        ml.executeExpression("a=(1+2)*(3+4)");
		assertEquals(21.0, ml.getScalarValueRe("a"), 0.001);
	}												

    public void testPriority14() {
        ml.executeExpression("a=(1+3)^2");
		assertEquals(16.0, Math.abs(ml.getScalarValueRe("a")), 0.001);
	}												
    public void testPriority14b() {
        ml.executeExpression("a=(1+3).^2");
        assertEquals(16.0, Math.abs(ml.getScalarValueRe("a")), 0.001);
    }                                               
    public void testPriority15() {
        ml.executeExpression("a=2^(1+3)");
		assertEquals(16.0, Math.abs(ml.getScalarValueRe("a")), 0.001);
	}												
    public void testPriority16() {
        ml.executeExpression("a=2-3+5");
		assertEquals(4.0, ml.getScalarValueRe("a"), 0.001);
	}												

    public void testPriority100() {
        ml.executeExpression("2+3*4");
        assertEquals(14.0, ml.getScalarValueRe("ans"), 0.001);
    }

    public void testPriority101() {
        ml.executeExpression("2<3");
        assertEquals(true, ml.getScalarValueBoolean("ans"));
    }

    public void testPriority102() {
        ml.executeExpression("2<3+4");
        assertEquals(true, ml.getScalarValueBoolean("ans"));
    }

    public void testPriority103() {
        ml.executeExpression("2>3+4");
        assertEquals(false, ml.getScalarValueBoolean("ans"));
    }

    public void testPriority104() {
        ml.executeExpression("2>3||1<7");
        assertEquals(true, ml.getScalarValueBoolean("ans"));
    }

    public void testPriority105() {
        ml.executeExpression("2>3||1>7");
        assertEquals(false, ml.getScalarValueBoolean("ans"));
    }

    public void testPriority106() {
        ml.executeExpression("2<3||1>7");
        assertEquals(true, ml.getScalarValueBoolean("ans"));
    }
    
    public void testPriority107a() {
        ml.executeExpression("3&&2==3||1>7");
        assertEquals(false, ml.getScalarValueBoolean("ans"));
    }

    public void testPriority107b() {
        ml.executeExpression("3&&2==2||1>7");
        assertEquals(true, ml.getScalarValueBoolean("ans"));
    }

    public void testPriority108() {
        ml.executeExpression("5!=5||1>7");
        assertEquals(false, ml.getScalarValueBoolean("ans"));
    }

    public void testPriority109() {
        ml.executeExpression("7!=5||1>7");
        assertEquals(true, ml.getScalarValueBoolean("ans"));
    }

    public void testPriority110() {
        ml.executeExpression("8>=7||4!=5");
        assertEquals(true, ml.getScalarValueBoolean("ans"));
    }

    public void testPriority111() {
        ml.executeExpression("5>=7||5!=5");
        assertEquals(false, ml.getScalarValueBoolean("ans"));
    }


	/************* whitespace sensitivity ************************************/
	/** are whitespaces treated differently ? */
    public void testWhitespace01() {
        ml.executeExpression(" a = 2 + 3 ");
		assertEquals(5.0, ml.getScalarValueRe("a"), 0.001);
	}
    public void testWhitespace02() {
        ml.executeExpression("a = 2 +4");
		assertEquals(6.0, ml.getScalarValueRe("a"), 0.001);
	}
    public void testWhitespace03() {
        ml.executeExpression("a = 2+ 5");
		assertEquals(7.0, ml.getScalarValueRe("a"), 0.001);
	}
    public void testWhitespace04() {
        ml.executeExpression("a =2 + 6");
		assertEquals(8.0, ml.getScalarValueRe("a"), 0.001);
	}
    public void testWhitespace05() {
        ml.executeExpression("a= 2 + 7");
		assertEquals(9.0, ml.getScalarValueRe("a"), 0.001);
	}
    public void testWhitespace06() {
        ml.executeExpression("a= 2 +3");
		assertEquals(5.0, ml.getScalarValueRe("a"), 0.001);
	}
    public void testWhitespace07() {
        ml.executeExpression("a= 3+ 3");
		assertEquals(6.0, ml.getScalarValueRe("a"), 0.001);
	}
    public void testWhitespace08() {
        ml.executeExpression("a= 4+3");
		assertEquals(7.0, ml.getScalarValueRe("a"), 0.001);
	}
    public void testWhitespace09() {
        ml.executeExpression("a=5+3");
		assertEquals(8.0, ml.getScalarValueRe("a"), 0.001);
	}
    public void testWhitespace10() {
        ml.executeExpression(" a = 6 + 3");
		assertEquals(9.0, ml.getScalarValueRe("a"), 0.001);
	}

    public void testWhitespace11() {
        ml.executeExpression(" a = min (2,3)");
		assertEquals(2.0, ml.getScalarValueRe("a"), 0.001);
	}

    public void testWhitespace12() {
        ml.executeExpression(" a = min   ( 4 , 3 ) ");
		assertEquals(3.0, ml.getScalarValueRe("a"), 0.001);
	}

    public void testWhitespace13() {
        ml.executeExpression(" a = min   ( max(-1   , 2) , 3 ) ");
		assertEquals(2.0, ml.getScalarValueRe("a"), 0.001);
	}

    public void testWhitespace14() {
        ml.executeExpression(" a = max   (min(1-2, 4) , 2 ) ");
		assertEquals(2.0, ml.getScalarValueRe("a"), 0.001);
	}

    public void testWhitespace15() {
        ml.executeExpression(" a = min   ( 4 , 3 ) + 5 ");
		assertEquals(8.0, ml.getScalarValueRe("a"), 0.001);
	}

	/************* assignments ****************************************/
    public void testAssign01() {
        ml.executeExpression("a=1;");
		assertEquals(1.0, ml.getScalarValueRe("a"), 0.001);
	}
    public void testAssign02() {
        ml.executeExpression("a=2;");
		assertEquals(2.0, ml.getScalarValueRe("a"), 0.001);
	}
    public void testAssign04() {
        ml.executeExpression("a=123;b=456;");
		assertEquals(123.0, ml.getScalarValueRe("a"), 0.001);
		assertEquals(456.0, ml.getScalarValueRe("b"), 0.001);
	}

   /************* sign ****************************************/
    public void testSign01a() {
        ml.executeExpression("a=2;");
        ml.executeExpression("b=-a;");
		assertEquals(-2.0, ml.getScalarValueRe("b"), 0.001);	
	}

    public void testSign01b() {
        ml.executeExpression("a=2;");
        ml.executeExpression("b=+a;");
        assertEquals(2.0, ml.getScalarValueRe("b"), 0.001);    
    }

    public void testSign01c() {
        ml.executeExpression("a=+2;");
        ml.executeExpression("b=-a;");
        assertEquals(-2.0, ml.getScalarValueRe("b"), 0.001);    
    }

    public void testSign01d() {
        ml.executeExpression("a=-22;");
        ml.executeExpression("b=-a;");
        assertEquals(22.0, ml.getScalarValueRe("b"), 0.001);    
    }

    public void testSign02() {
        ml.executeExpression("a=2;");
        ml.executeExpression("b=(7)-a;");
		assertEquals(5.0, ml.getScalarValueRe("b"), 0.001);	
	}
    
    public void testSign03() {
        ml.executeExpression("a=2;");
        ml.executeExpression("b=(-a)+5;");
		assertEquals(3.0, ml.getScalarValueRe("b"), 0.001);	
	}
    
    public void testSign04() {
        ml.executeExpression("a=(-6);");
        assertEquals(-6.0, ml.getScalarValueRe("a"), 0.001);	
	}
    
    public void testSign05() {
        ml.executeExpression("a=(3)-8;");
        assertEquals(-5.0, ml.getScalarValueRe("a"), 0.001);	
	}
    
    public void testSign06() {
        ml.executeExpression("a=(+2)-3;");
        assertEquals(-1.0, ml.getScalarValueRe("a"), 0.001);	
	}
    
    /************* matrix ****************************************/
    public void testMatrix01() {
        double[][] dr = {{1.0, 2.0, 1.0},{3.0, 4.0, 5.0}};
		ml.executeExpression("d=[1,2,1\n3,4,5]");
 		assertTrue(Compare.ArrayEquals(dr, ml.getArrayValueRe("d")));
	}

    public void testMatrix02() {
        double[][] dr = {{1.0, 2.0, 3.0},{3.0, 4.0, 5.0}};



		ml.executeExpression("d=[1 2 3\n3,4,5]");
 		assertTrue(Compare.ArrayEquals(dr, ml.getArrayValueRe("d")));

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -