📄 math
字号:
## EPIC4 ESL regression tests# New math parser test# Copyright 1998 Jeremy Nelson, Distribute freely.## NOTE: If you find a test that is missing, please let me know so# i can add it. Doubly so if you find a test that exposes a bug!#@ misses = 0alias clear { if (misses) {@ [$"[RETURN]"];@ misses = 0} //clear}alias assert { local foo eval @ foo = $* echo Test [$[50]*] [$foo]# eval @ foo = $*# if (foo) { echo Test [$[50]{[$*]}] passed }# { echo Test [$[50]{[$*]}] FAILED! ;@ [$"Failed"];@misses++ }}alias foobar {#define M_INPAR 0#define M_OUTPAR 1assert ()==[]assert (1)==1assert (1==1)assert ((([1])==1))#define NOT 2assert !1==0assert !0==1#define COMP 3assert ~2==-3assert ~0==-1#define POSTPLUS 4assign booya 3assert booya++==3assert booya++==4#define POSTMINUS 5assert booya--==5assert booya--==4#define UPLUS 6assert +3==3assert +-3==-3#define UMINUS 7assert -3==-3assert -booya==-3#define AND 8assert (5&4)==4assert (5&2)==0assert (5&0)==0#define XOR 9assert (3^5)==6assert (3^3)==0assert (3^0)==3#define OR 10assert (5|4)==5assert (3|0)==3assert (5|5)==5#define MUL 11assert 5*4==20assert 5*0==0assert 0*0==0#define DIV 12assert 5/4==1assert 20/5==4assert 5/0==0assert 0/0==0#define MOD 13assert 5%4==1assert 20%5==0assert 5%0==0assert 3%3==0#define PLUS 14assert 5+4==9assert 20+5==25assert 20+-5==15assert 20+0==[20]assert 3+3==6#define MINUS 15assert 5-4==1assert 3-4-5==-6assert 20--5==25assert 15-4+8==19#define SHLEFT 16assert 1<<0==1assert 1<<1==2assert 1<<2==4assert 1<<3==8assert 1<<4==16#define SHRIGHT 17assert 16>>0==16assert 16>>1==8assert 16>>2==4assert 16>>3==2assert 16>>4==1#define LES 18assert 3<4==1assert 4<3==0assert 3<3==0#define LEQ 19assert 3<=4==1assert 4<=3==0assert 3<=3==1#define GRE 20assert 3>4==0assert 4>3==1assert 3>3==0#define GEQ 21assert 3>=4==0assert 4>=3==1assert 3>=3==1#define DEQ 22assert [1]==1assert booya==[3]assert booya==3assert [$booya]==[3]#define NEQ 23assert 2!=1assert 2!=[1]assert [2]!=[1]assert booya!=4assert booya!=[foobar]#define DAND 24alias ack {echo ack!;@counter++;@function_return = 1}@ counter = 0assert (1&&0)==0assert (0&&0)==0assert (1&&1)==1assert ([]&&1)==0assert ([booya]&&1)==1assert (0&&ack())==0assert (ack()&&ack())==1assert (ack()&&0)==0assert (ack()&&1)==1assert counter==4#define DOR 25@ counter = 0assert (1||0)==1assert (0||0)==0assert (1||1)==1assert ([]||1)==1assert ([booya]||1)==1assert (0||ack())==1assert (ack()||ack())==1assert (ack()||0)==1assert (ack()||1)==1assert counter==4#define DXOR 26#define QUEST 27#define COLON 28#define EQ 29#define PLUSEQ 30#define MINUSEQ 31#define MULEQ 32#define DIVEQ 33#define MODEQ 34#define ANDEQ 35#define XOREQ 36#define OREQ 37#define SHLEFTEQ 38#define SHRIGHTEQ 39#define DANDEQ 40#define DOREQ 41#define DXOREQ 42#define COMMA 43#define PREPLUS 45#define PREMINUS 46#define NUM 47#define POWER 50#define POWEREQ 52#define STRLEN 53 /* Added for epic */assert @[foobar]==6assert @(booya = [foobar])==6#define STRCAT 54 /* Added for epic */assert #[This is a test]==4assert #(booya = [This is a test])==4#define STRCATEQ 55 /* Added for epic */#define WORDC 56 /* Added for epic */}foobar## Integer tests##set floating_point_math off#assert 3+4==7#assert 3-4==-1#assert 3+4+4==11##sigh, yes, this is the right value.#assert 3+4-4==3#assert (3+4)-4==3##assert 3*4==12#assert 3/4==0#assert 3%4==3#assert 4%3==1#assert 4/3==1##assert 3##4==34#assert [3]##4==34#assert 3##[4]==34## floating point tests##set floating_point_math on#assert 3.0+4.3==7.3#assert 3.0-4.3==-1.3#assert 3.0+4.3+3.4==10.7###sigh, yes, this is the right value.#assert 3.0+4.3-4.3==3
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -