home *** CD-ROM | disk | FTP | other *** search
/ ftp.cs.arizona.edu / ftp.cs.arizona.edu.tar / ftp.cs.arizona.edu / icon / historic / v941.tgz / icon.v941src.tar / icon.v941src / tests / general / large.icn < prev    next >
Text File  |  2000-07-29  |  990b  |  38 lines

  1. invocable "+", "-", "*", "/", "%", "iand", "ior", "ixor", "<", "=" , "^"
  2. invocable "ishift"
  3.  
  4. procedure main ()
  5.    if not(&features == "large integers") then
  6.       stop("large integers not supported")
  7.  
  8.    big :=  111111111111111111111
  9.    med1 := "2222222222"
  10.    med2 := "3333333333"
  11.    small := 4
  12.  
  13.    every optest ("+" | "-" | "*" | "/" | "%" |"iand"|"ior"|"ixor"|"<"|"=",
  14.       big | -big | small | -small, 
  15.       big | -big | small | -small)
  16.    every optest ("+" | "-" | "*" | "/" | "%" |"iand"|"ior"|"ixor"|"<"|"=",
  17.       big | med1 | -med1,
  18.       med1 | med2 | -med2)
  19.  
  20.    every optest ("^", big | -big | small | -small, 2 | 5)
  21.    every optest ("^", 2 | 3, 10 | 30 )
  22.    every optest ("ishift", big |-big | med1 | -med1 | small, 1 | 8 | -1 | -39)
  23.  
  24.    &trace := -1
  25.    every i := 10 | 30 | 70 | 100 do {
  26.       write(2 ^ i)
  27.       write(2 ^ i || ":" || image(2 ^ i))
  28.       foo(2 ^ i)
  29.       }
  30. end
  31.  
  32. procedure optest (op, a, b)
  33.     write (a, " ", op, " ", b, " = ", op(a,b)|"none")
  34. end
  35.  
  36. procedure foo(x)
  37. end
  38.