Sophie

Sophie

distrib > Mageia > 5 > i586 > media > core-release > by-pkgid > fff2921ff40d1f832561027dc17323f5 > files > 54

epic5-1.1.9-3.mga5.i586.rpm

#
# EPIC4 ESL regression tests -- New math parser test
# Public Domain -- 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 = 0

alias 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	1
assert ()==[]
assert (1)==1
assert (1==1)
assert ((([1])==1))

#define NOT 		2
assert !1==0
assert !0==1

#define COMP 		3
assert ~2==-3
assert ~0==-1

#define POSTPLUS 	4
assign booya 3
assert booya++==3
assert booya++==4

#define POSTMINUS 	5
assert booya--==5
assert booya--==4

#define UPLUS 		6
assert +3==3
assert +-3==-3

#define UMINUS 		7
assert -3==-3
assert -booya==-3

#define AND 		8
assert (5&4)==4
assert (5&2)==0
assert (5&0)==0

#define XOR 		9
assert (3^5)==6
assert (3^3)==0
assert (3^0)==3

#define OR 		10
assert (5|4)==5
assert (3|0)==3
assert (5|5)==5

#define MUL 		11
assert 5*4==20
assert 5*0==0
assert 0*0==0

#define DIV 		12
assert 5/4==1
assert 20/5==4
assert 5/0==[]
assert 0/0==[]

#define MOD 		13
assert 5%4==1
assert 20%5==0
assert 5%0==[]
assert 3%3==0

#define PLUS 		14
assert 5+4==9
assert 20+5==25
assert 20+-5==15
assert 20+0==[20]
assert 3+3==6

#define MINUS 		15
assert 5-4==1
assert 3-4-5==-6
assert 20--5==25
assert 15-4+8==19

#define SHLEFT 		16
assert 1<<0==1
assert 1<<1==2
assert 1<<2==4
assert 1<<3==8
assert 1<<4==16

#define SHRIGHT 	17
assert 16>>0==16
assert 16>>1==8
assert 16>>2==4
assert 16>>3==2
assert 16>>4==1

#define LES 		18
assert 3<4==1
assert 4<3==0
assert 3<3==0

#define LEQ 		19
assert 3<=4==1
assert 4<=3==0
assert 3<=3==1

#define GRE 		20
assert 3>4==0
assert 4>3==1
assert 3>3==0

#define GEQ 		21
assert 3>=4==0
assert 4>=3==1
assert 3>=3==1

#define DEQ 		22
assert [1]==1
assert booya==[3]
assert booya==3
assert [$booya]==[3]
assert [   -1   ]==-1
assert [   -5   ]==-5
assert [-5]==-5
assert [    -5]==-5
assert [-5    ]==-5
assert [-5    ]==[     -5]
assert [ -5    ]==[     -5   ]

#define NEQ 		23
assert 2!=1
assert 2!=[1]
assert [2]!=[1]
assert booya!=4
assert booya!=[foobar]
assert [   -1   ]!=1
assert [   -5   ]!==5
assert [-5]!=5
assert [    -5]!=5
assert [-5    ]!=5
assert [-5    ]!=[     5]
assert [ -5    ]!=[     5   ]


#define DAND 		24
alias ack {echo ack!;@counter++;@function_return = 1}
@ counter = 0
assert (1&&0)==0
assert (0&&0)==0
assert (1&&1)==1
assert ([]&&1)==0
assert ([booya]&&1)==1
assert (0&&ack())==0
assert (ack()&&ack())==1
assert (ack()&&0)==0
assert (ack()&&1)==1
assert counter==4

#define DOR 		25
@ counter = 0
assert (1||0)==1
assert (0||0)==0
assert (1||1)==1
assert ([]||1)==1
assert ([booya]||1)==1
assert (0||ack())==1
assert (ack()||ack())==1
assert (ack()||0)==1
assert (ack()||1)==1
assert 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]==6
assert @(booya = [foobar])==6
#define STRCAT		54	/* Added for epic */
assert #[This is a test]==4
assert #(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