mirror of
https://github.com/kennethreitz/context.git
synced 2026-06-05 23:00:17 +00:00
183 lines
3.1 KiB
Plaintext
183 lines
3.1 KiB
Plaintext
/*
|
|
* @progname st_number.li
|
|
* @version 1.0
|
|
* @author Perry Rapp
|
|
* @category self-test
|
|
* @output none
|
|
* @description
|
|
*
|
|
* validate numeric functions
|
|
*
|
|
*/
|
|
|
|
char_encoding("ASCII")
|
|
|
|
require("lifelines-reports.version:1.3")
|
|
option("explicitvars") /* Disallow use of undefined variables */
|
|
include("st_aux")
|
|
|
|
/* entry point in case not invoked via st_all.ll */
|
|
proc main()
|
|
{
|
|
call testNums()
|
|
}
|
|
|
|
/*
|
|
test some numeric functions
|
|
*/
|
|
proc testNums()
|
|
{
|
|
set(testok, 0)
|
|
set(testfail, 0)
|
|
|
|
set(one,1)
|
|
set(two,add(one,one))
|
|
if (ne(two,2)) {
|
|
call reportfail("1+1 FAILED")
|
|
}
|
|
else { incr(testok) }
|
|
|
|
if (eq(two,one)) {
|
|
call reportfail("1==2 FAILED")
|
|
}
|
|
else { incr(testok) }
|
|
|
|
if (ne(add(two,two,two,two,two),10)) {
|
|
call reportfail("2+2+2+2+2 FAILED")
|
|
}
|
|
else { incr(testok) }
|
|
|
|
if (ne(sub(two,one),1)) {
|
|
call reportfail("2-1 FAILED")
|
|
}
|
|
else { incr(testok) }
|
|
|
|
if (ne(sub(890,30),860)) {
|
|
call reportfail("890-30 FAILED")
|
|
}
|
|
else { incr(testok) }
|
|
|
|
if (ne(mul(3,4),12)) {
|
|
call reportfail("3*4 FAILED")
|
|
}
|
|
else { incr(testok) }
|
|
|
|
if (ne(mul(3,-4),-12)) {
|
|
call reportfail("3*(-4) FAILED")
|
|
}
|
|
else { incr(testok) }
|
|
|
|
if (ne(mul(-3,-4),12)) {
|
|
call reportfail("(-3)*(-4) FAILED")
|
|
}
|
|
else { incr(testok) }
|
|
|
|
if (ne(mul(.5,.5),.25)) {
|
|
call reportfail(".5*.5 FAILED")
|
|
}
|
|
else { incr(testok) }
|
|
|
|
if (ne(mul(2,.5),1)) {
|
|
call reportfail("2*.5 FAILED")
|
|
}
|
|
else { incr(testok) }
|
|
|
|
if (gt(.5, .7)) {
|
|
call reportfail(".5>.7 FAILED")
|
|
}
|
|
else { incr(testok) }
|
|
|
|
if (lt(-.4,-.5)) {
|
|
call reportfail("-.4<-.5 FAILED")
|
|
}
|
|
else { incr(testok) }
|
|
|
|
if (ge(15,18)) {
|
|
call reportfail("15>=18 FAILED")
|
|
}
|
|
else { incr(testok) }
|
|
|
|
if (le(-.4,-.5)) {
|
|
call reportfail("-.4<=-.5 FAILED")
|
|
}
|
|
else { incr(testok) }
|
|
|
|
if (not(le(-.4,-.4))) {
|
|
call reportfail("-.4<=-.4 FAILED")
|
|
}
|
|
else { incr(testok) }
|
|
|
|
if (not(le(-1,-.4))) {
|
|
call reportfail("-1<=-.4 FAILED")
|
|
}
|
|
else { incr(testok) }
|
|
|
|
if (not(le(-1.1,-1))) {
|
|
call reportfail("-1.1<=-1 FAILED")
|
|
}
|
|
else { incr(testok) }
|
|
|
|
if (ne(div(20, 4), 5)) {
|
|
call reportfail("20/4==5 FAILED")
|
|
}
|
|
else { incr(testok) }
|
|
|
|
if (ne(mod(22, 7), 1)) {
|
|
call reportfail("22 % 7==1 FAILED")
|
|
}
|
|
else { incr(testok) }
|
|
|
|
if (ne(exp(2, 10), 1024)) {
|
|
call reportfail("2 ^10 ==1024 FAILED")
|
|
}
|
|
else { incr(testok) }
|
|
|
|
if (ne(exp(.5, 2), .25)) {
|
|
call reportfail(".5 ^2 ==.25 FAILED")
|
|
}
|
|
else { incr(testok) }
|
|
|
|
set(bubba,34)
|
|
incr(bubba)
|
|
if (ne(bubba,35)) {
|
|
call reportfail("incr(34) == 35 FAILED")
|
|
}
|
|
else { incr(testok) }
|
|
|
|
set(bubba,45)
|
|
decr(bubba)
|
|
if (ne(bubba,44)) {
|
|
call reportfail("decr(45) == 44 FAILED")
|
|
}
|
|
else { incr(testok) }
|
|
|
|
set(bubba,45.3)
|
|
decr(bubba)
|
|
if (ne(bubba,44.3)) {
|
|
call reportfail("decr(45.3) == 44.3 FAILED")
|
|
}
|
|
else { incr(testok) }
|
|
|
|
set(bubba,34.3)
|
|
incr(bubba)
|
|
if (ne(bubba,35.3)) {
|
|
call reportfail("incr(34.3) == 35.3 FAILED")
|
|
}
|
|
else { incr(testok) }
|
|
|
|
set(bubba,45.6)
|
|
decr(bubba)
|
|
if (ne(bubba,44.6)) {
|
|
call reportfail("decr(45.6) == 44.6 FAILED")
|
|
}
|
|
else { incr(testok) }
|
|
|
|
if (ne(neg(52), -52)) {
|
|
call reportfail("neg(52) == -52 FAILED")
|
|
}
|
|
else { incr(testok) }
|
|
|
|
call reportSubsection("number tests")
|
|
}
|
|
|