home *** CD-ROM | disk | FTP | other *** search
/ GEMini Atari / GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso / zip / portfoli / pbas45.lzh / test45.bas < prev    next >
BASIC Source File  |  1991-08-21  |  7KB  |  259 lines

  1.    if pbver < 4.5 then print "Incorrect Version of PBASIC":stop
  2.    start = timer
  3.    def cube(valuex)=valuex*valuex*valuex
  4.    dim ar(100), cr(100)
  5.    dim br(10)
  6.    cls
  7.    restore
  8.    a = -1
  9.    if port then a=romver
  10.    ?"rom Version ";a;"  Free: ";fre(0)
  11.    ?"Running test of PBASIC " pbver " on ";
  12.    if not port then ?"PC" else ?"Portfolio"
  13.    print "Command Tail : " command$
  14.    read a,b : if a <> 1 then print "Read Error":stop
  15.    read a : if a <> 11 then print "Read Error":stop
  16.    read a : if a <> 12 then print "Data Error":stop
  17.  
  18.    y = 11
  19.    if y <> 11 then print "Assignment Error":stop
  20.    for x = 1 to 10
  21.      y = y + 2
  22.    next x
  23.    restore 13
  24.    read a : if a <> 21 then print "Restore Error":stop
  25.    if y = 31 then goto 10 else print "Loop Error":stop
  26.    print "this is never execute" : stop
  27. 10 a = 1
  28.    a = a + 15
  29.    if a <> 16 then print "Addition error":stop
  30.    a = a * 10
  31.    if a <> 160 then print "Multiply error":stop
  32.    a = a / 20
  33.    if a <> 8 then print "divide error":stop
  34.    a = a - 5
  35.    if a <> 3 then print "Subtraction Error":stop
  36.    a = 10
  37.    b = a \ 3
  38.    if b <> 3 then print "Int. Division Error":stop
  39.    b = a % 3
  40.    if b <> 1 then print "Mod Error":stop
  41.    if 2^5 <> 32 then print "Exp Error":stop
  42.    if int(12^2.5) <> int(498.831) then print "Exp Error":stop
  43.    if 2^-1 <> .5 then print "Exp Error":stop
  44.    if cube(3) <> 27 then print "Function Error":stop
  45.  
  46.    if fix(1234567.123)<>1234567 then print "Fix Error":stop
  47.    if int(1234565.123)<>1234565 then print "Int Error":stop
  48.  
  49. 11 data 1,2
  50. 12 data 11,12,13,14,15,16,17,18,19,20
  51. 13 data 21,22,23,24,25,26,27,28,29,30
  52.  
  53.    a = 1.23e+2 : if a<> 123 then print "Real Number error":stop
  54.    a = 1.23e-2 : if a <> .0123 then print "Real Number Error":stop
  55.  
  56.  
  57.    for a1 = 0 to 10
  58.       ar(a1) = a1 : br(a1) = ar(a1)
  59.    next
  60.  
  61.    if abs(-5)<>5 then print "ABS Error":stop
  62.    for a1 = 10 to 0 step -1
  63.       if ar(a1) <> br(a1) then print "Array Error" : stop
  64.    next a1
  65.  
  66.    m = 1
  67.    n = 2
  68.    swap m,n : if m<> 2 then print "Swap Error" :stop
  69.    swap m,n
  70.  
  71.    swap ar(7),br(8) : if br(8) <> 7 then print br(8), "Swap Error":stop
  72.    swap ar(7),br(8)
  73.  
  74.    swap ar(5), m : if m <> 5 then print "Swap Error":stop
  75.    swap m, ar(5) : if m <> 1 then print "Swap Error":stop
  76.    y = 12
  77.    for x = 10 to 1 step -1
  78.       y = y - 2
  79.    next x
  80.    if y = 10 then print "Loop error":stop
  81.    if y >= 0 then print "loop error":stop
  82.    if y < 10 then goto 20
  83.    print "If Error":stop
  84. 20 if y <= -8 then goto 30
  85.    print "If error":stop
  86. 30 if y <> -8 then print "Loop Error":stop
  87.    gosub 100
  88.    if y = -8 then "Gosub error":stop
  89.  
  90.    if &h100 <> 256 then print "Hex error":stop
  91.    if &o377 <> 255 then print "Octal error":stop
  92.    if 15 <> &17 then print "Octal error":stop
  93.  
  94.    if port then def seg=&hb000 else def seg = &hb800
  95.    poke 0,196
  96.    if port then refresh
  97.    if peek(0) <> 196 then print peek(0),"Peek/Poke/Seg Error":stop
  98.    poke 0,82
  99.    if port then refresh
  100.  
  101.    abcde = 12345
  102.    rem abcde = 0
  103.    if abcde <> 12345 then print "Rem error":stop
  104.    'abcde = 1
  105.    if abcde = 1 then print "Rem Error":stop
  106.  
  107.    z = 1+2*3+4/5*6-1
  108.    w = 10.8
  109.    if z <> w then print z,w,"Precedence error":stop
  110.  
  111.    if sqr(100)<>10 then print "SQR Error":stop
  112.  
  113.    cx = csrlin : cy = pos(0)
  114.    locate 5,6
  115.    if csrlin <> 5 then print "Locate Error":stop
  116.    if pos(0) <> 6 then print "Locate Error":stop
  117.    locate cx, cy
  118.  
  119.    gosub 1234: ' string tests
  120.  
  121.       on port+2 goto 2000, 1000 'port tests
  122.       print "On Goto Error":stop
  123. 1000
  124.     ' new features for 4.0
  125.     if deg(rad(deg(rad(45)))) <> 45 then ? "DEG/RAD Error":stop
  126.     if (3 and 1) <> 1 then ?"AND Error":stop
  127.     if (3 or 1) <> 3 then ?"OR Error":stop
  128.     if (10 xor 5) <> 15 then ?"XOR Error":stop
  129.     if (not true) <> false then ?"TRUE/FALSE Error":stop
  130.     if (5 imp 124) <> -2 then ?"IMP Error":stop
  131.     if (126 eqv 23) <> -106 then ?"EQV Error":stop
  132.  
  133.     if tan(pi/4) <> 1 then ? "TAN/PI Error":stop
  134.  
  135.     a$ = "   BOB": if ltrim$(a$)<>"BOB" then ? "LTRIM$ Error":stop
  136.     if rtrim$("X   ") <> "X" then ?"RTRIM$ Error":stop
  137.  
  138.     a=0
  139.     repeat
  140.         incr(a)
  141.     until a=10
  142.     if a<>10 then ?"REPEAT/UNTIL Error":stop
  143.     while a>1
  144.         decr(a)
  145.     wend
  146.     if a<>1 then ?"WHILE/WEND Error":stop
  147.  
  148.  
  149.       print: 'print "End of test - OK"
  150.       print "Test took " timer-start " seconds" : end
  151.       end
  152.  
  153.  
  154. 100 y = 1 : return
  155.     print "Multiline or Return Error":stop
  156.  
  157.  
  158. 2000 'port tests
  159.      status 1
  160.      beep
  161.      status 1
  162.      locate 7,14
  163.      click
  164.      print "1-201-555-1234";
  165.      locate 7,13
  166.      status 0
  167.      box 6,11,8,30,1
  168.      dial "1-201-555-1234"
  169.      box 6,11,8,30,0
  170.      for ct = 48 to 63
  171.        sound ct, 15
  172.      next ct
  173.      locate 4,1
  174.      olddis = getdisplay
  175.      display 2 'static
  176.      vlocate 1,1
  177.      dir = 4:gosub 5000
  178.      dir = 2:gosub 5000
  179.      vx=vcsrlin:vy=vpos(0)
  180.      vlocate 11,12
  181.      if vcsrlin<>11 then print "VCSRLIN Error":stop
  182.      if vpos(0)<>12 then print "VPOS Error":stop
  183.      vlocate vx,vy
  184.      dir = 3:gosub 5000
  185.      dir = 1:gosub 5000
  186.      vlocate 1,1
  187.      display olddis
  188.      goto 1000
  189.  
  190.  
  191. 5000  for xx = 1 to 5
  192.          vmove dir,1
  193.          click
  194.       next xx
  195.       return
  196.  
  197. 9999 print fre(0)
  198.   wait
  199.   return
  200.  
  201.  
  202.  
  203. '
  204. '  This the string test file.  It will be added to 
  205. '  TEST.BAS later.
  206. '
  207. '
  208. 1234
  209.  dim bz(5,5)
  210.  for x = 1 to 5
  211.   for y = 1 to 5
  212.    if bz(x,y)<>0 then print "Array Initialize Error":stop
  213.   next y
  214.  next x
  215.  
  216.  for x = 1 to 5
  217.   for y = 1 to 5
  218.    bz(x,y) = (x-1)*5+y
  219.   next y
  220.  next x
  221.  
  222.  for x = 1 to 5
  223.   for y = 1 to 5
  224.    if bz(x,y) <> (x-1)*5+y then print "Two Dimensional Array Error":stop
  225.   next y
  226.  next x
  227.  
  228.  dim sa$(10)
  229.  print time$;"  ";date$;"  Free ";fre(0)
  230.  sa$(1) = "array 1"
  231.  sa$(2) = "array 2"
  232.  if sa$(1)<>"array 1" then print "string array Error":stop
  233.  s$="BJGleason"
  234.  f$=left$(s$,2)
  235.  if f$<>"BJ" then print "Left$ Error":stop
  236.  m$=mid$(s$,2,2)
  237.  if m$<>"JG" then print "Mid$ Error":stop
  238.  if right$(s$,7)<>"Gleason" then print "Right$ Error":stop
  239.  if instr(s$,"Gle")<>3 then print "Instr Error":stop
  240.  c$ = "123"
  241.  d$ = c$ + "456" + c$
  242.  if d$<>"123456123" then print "String Cat Error":stop
  243.  if val("910")<>910 then print "Val Error":stop
  244.  if asc("1")<>49 then print "ASC Error":stop
  245.  qw$=str$(val(str$(val("66"))+"5")+1)
  246.  if qw$<>"666" then print "String Error":stop
  247.  if port then dial d$
  248.  if bin$(7) <> "111" then print "BIN$ Error":stop
  249.  if ucase$("abc") <> "ABC" then print "UCASE$ Error":stop
  250.  if lcase$("CdC") <> "cdc" then print "LCASE$ Error":stop
  251.  bjt = 123
  252.  bjt$ = "bjt = 345"
  253.  eval bjt$
  254.  if bjt <> 345 then print "Eval Error":stop
  255.  a$ = "BOB"
  256.  a$ = A$ + a$
  257.  if a$<>"BOBBOB" then print "String Addition Error":stop
  258. return
  259. ə