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 / table.icn < prev    next >
Text File  |  2001-12-06  |  2KB  |  98 lines

  1. #SRC: JCON
  2.  
  3. # table test
  4.  
  5. procedure main()
  6.    local k, x, y
  7.  
  8.    x := table()
  9.    tdump("initial", x)
  10.    writes("should fail ", image(?x))
  11.    every writes(" ", ">>" | !x | "\n")        # portable with 0 or 1 entries
  12.    x[2] := 3;
  13.    every writes(" ", ">>" | !x | image(?x) | "\n")
  14.    x[4] := 7;
  15.    x["a"] := "A";
  16.    tdump("+2+4+a", x)
  17.  
  18.    every !x := 88
  19.    tdump("!x=88", x)
  20.  
  21.    every x[key(x)] := 99
  22.    tdump("[all]=99", x)
  23.  
  24.    every k := key(x) do
  25.       x[k] := k
  26.    tdump("x[k]=k", x)
  27.  
  28.    /x[1] | write("/1")
  29.    \x[2] | write("\\2")
  30.  
  31.    x := table()
  32.    if member(x) then write("NULL IS MEMBER")
  33.    insert(x)                | write("failed 0")
  34.    insert(x, 1)                | write("failed 1")
  35.    insert(x, 3, )            | write("failed 3")
  36.    insert(x, 5, 55)            | write("failed 5")
  37.    insert(insert(x, 6, 66), 7, 77)    | write("failed 67")
  38.    insert(x, , "null")            | write("failed n")
  39.    if not member(x) then write("NULL IS NOT MEMBER")
  40.    tdump("insert", x)
  41.    delete(x)                | write("failed dn")
  42.    delete(x, 3, 6)            | write("failed d36")    # del only 3
  43.    delete(delete(x, 7), 1)        | write("failed d71")
  44.    tdump("delete", x)
  45.  
  46.    x := table(0)
  47.    write(x[47])
  48.    tdump("t0", x)
  49.    insert(x)                | write("failed 0")
  50.    insert(x, 1)                | write("failed 1")
  51.    insert(x, 3, )            | write("failed 3")
  52.    insert(x, 5, 55)            | write("failed 5")
  53.    insert(insert(x, 6, 66), 7, 77)    | write("failed 67")
  54.    insert(x, , "null")            | write("failed n")
  55.    tdump("t0i", x)
  56.    delete(x)                | write("failed dn")
  57.    delete(x, 3, 6)            | write("failed d36")    # del only 3
  58.    delete(delete(x, 7), 1)        | write("failed d71")
  59.    tdump("t0d", x)
  60.  
  61.    write()
  62.    x := table(7)
  63.    every x[3] <- 19
  64.    every write("k ", key(x))
  65.    every write("v ", !x)
  66.  
  67.    x := table()
  68.    every k := 0 to 4 do
  69.       x[k] := k + 10
  70.    y := copy(x)
  71.    every !x +:= 20
  72.    every !y +:= 40
  73.    tdump("30s", x)
  74.    tdump("50s", y)
  75.  
  76. end
  77.  
  78.  
  79. #  dump a table, assuming that keys are drawn from: &null, 0 - 9, "a" - "e"
  80. #
  81. #  also checks member()
  82.  
  83. procedure tdump(label, T)
  84.    local x
  85.  
  86.    writes(right(label, 10), " :", right(*T, 2), " :")
  87.    every x := &null | (0 to 9) | !"abcde" do
  88.       if x === key(T) then {
  89.          writes(" [", image(x), "]", image(T[x]))
  90.      member(T, x) | writes(":NONMEMBER")
  91.          }
  92.       else {
  93.      member(T, x) & writes(" MEMBER:", image(x))
  94.          }
  95.    write()
  96.    return
  97. end
  98.