Changeset 4130 for trunk/ProjectFortress/tests
- Timestamp:
- 09/05/09 14:21:41 (3 months ago)
- Location:
- trunk/ProjectFortress/tests
- Files:
-
- 38 modified
-
ArrayListQuick.fss (modified) (3 diffs)
-
BadBounds.fss (modified) (3 diffs)
-
EqualityOverloadBug.fss (modified) (1 diff)
-
Exception.fss (modified) (2 diffs)
-
ExceptionScoping.fss (modified) (1 diff)
-
HeapTest.fss (modified) (5 diffs)
-
ListTest.fss (modified) (2 diffs)
-
MapTest.fss (modified) (3 diffs)
-
ObjectToStringTest.fss (modified) (1 diff)
-
PureListQuick.fss (modified) (3 diffs)
-
RangePrototype.fss (modified) (4 diffs)
-
Region.fss (modified) (1 diff)
-
SetTest.fss (modified) (1 diff)
-
SkipListTest.fss (modified) (3 diffs)
-
TransactionalArrayShakedown.fss (modified) (1 diff)
-
WordCountSmall.fss (modified) (1 diff)
-
array3test.fss (modified) (1 diff)
-
asifTest.fss (modified) (2 diffs)
-
atomicList.fss (modified) (2 diffs)
-
booleanGuard.fss (modified) (1 diff)
-
deepHierarchy.fss (modified) (1 diff)
-
extendAny.fss (modified) (1 diff)
-
extendException.fss (modified) (1 diff)
-
fmTest2.fss (modified) (3 diffs)
-
fmTest3.fss (modified) (3 diffs)
-
intPrim.fss (modified) (1 diff)
-
longPrim.fss (modified) (1 diff)
-
maybeTest.fss (modified) (2 diffs)
-
naiveSeq.fss (modified) (1 diff)
-
naturalsTest.fss (modified) (2 diffs)
-
nestedInst.fss (modified) (2 diffs)
-
realArith.fss (modified) (2 diffs)
-
spuriousSelf.fss (modified) (1 diff)
-
subArray.fss (modified) (5 diffs)
-
testRR32.fss (modified) (2 diffs)
-
testRecImport.fss (modified) (2 diffs)
-
whileTest.fss (modified) (1 diff)
-
zeno.fss (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ProjectFortress/tests/ArrayListQuick.fss
r3550 r4130 22 22 assertStr[\T\](a:ZZ32, b:ZZ32, s:String, l: List[\T\]) = 23 23 if a=/=b then 24 fail(a "=/=" b ": " s l.asString ())24 fail(a "=/=" b ": " s l.asString) 25 25 end 26 26 27 27 assertStr[\T\](a:Boolean, s:String, l: List[\T\]) = 28 28 if NOT a then 29 fail("Failed assertion: " s l.asString ())29 fail("Failed assertion: " s l.asString) 30 30 end 31 31 32 32 assertStr[\T\](a:Boolean, s:String, l: List[\T\], r: List[\T\]) = 33 33 if NOT a then 34 fail("Failed assertion: " s l.asString () " and " r.asString())34 fail("Failed assertion: " s l.asString " and " r.asString) 35 35 end 36 36 … … 64 64 ll : List[\ZZ32\] := l 65 65 for i <- seq(0#sz) do 66 (e,ll0) = ll.extractLeft ().get()66 (e,ll0) = ll.extractLeft.get 67 67 assertStr(e,i,"extractLeft wrong in ",ll) 68 assertStr(ll.left ().get(),i,"left wrong in ",ll)68 assertStr(ll.left.get,i,"left wrong in ",ll) 69 69 ll := ll0 70 70 end 71 assertStr(ll.isEmpty ()," not empty after extractLeft(); it's ",ll)71 assertStr(ll.isEmpty," not empty after extractLeft; it's ",ll) 72 72 ll := l 73 73 for i <- seq(1#sz) do 74 (ll0,e) = ll.extractRight ().get()74 (ll0,e) = ll.extractRight.get 75 75 assertStr(e,sz-i,"extractRight wrong in ",ll) 76 assertStr(ll.right ().get(),sz-i,"right wrong in ",ll)76 assertStr(ll.right.get,sz-i,"right wrong in ",ll) 77 77 ll := ll0 78 78 end 79 assertStr(ll.isEmpty ()," not empty after extractRight(); it's ",ll)79 assertStr(ll.isEmpty," not empty after extractRight; it's ",ll) 80 80 end 81 81 … … 126 126 chkPop(ivli,0,i,2) 127 127 print(".") 128 rli=li.reverse ()128 rli=li.reverse 129 129 for j <- 0#i do 130 130 print(".") -
trunk/ProjectFortress/tests/BadBounds.fss
r3550 r4130 22 22 3 4 23 23 5 6] 24 println ("b lower bounds " b.bounds ().lower())25 println ("b upper bounds " b.bounds ().upper())26 println ("b.bounds = " b.bounds ())24 println ("b lower bounds " b.bounds.lower ) 25 println ("b upper bounds " b.bounds.upper ) 26 println ("b.bounds = " b.bounds) 27 27 28 28 bShifted = b.bounds ≫ (2,5) … … 33 33 assert(bShifted ≪ (2,5), b.bounds) 34 34 35 for (i,j) <- b.indices ()do35 for (i,j) <- b.indices do 36 36 println("b[" i "," j "] = " b[i,j]) 37 37 end 38 38 39 for (i,j) <- sequential(b.indices ()) do39 for (i,j) <- sequential(b.indices) do 40 40 println("b[" i "," j "] = " b[i,j]) 41 41 end … … 54 54 assert(cShifted ≪ (2, 5, 8), c.bounds) 55 55 56 for (i,j,k) <- c.indices ()do56 for (i,j,k) <- c.indices do 57 57 println ("c[" i "," j "," k "] = " c[i,j,k] ) 58 58 end 59 for (i,j,k) <- sequential(c.indices ()) do59 for (i,j,k) <- sequential(c.indices) do 60 60 println ("c[" i "," j "," k "] = " c[i,j,k] ) 61 61 end 62 println ("c lower bounds " c.bounds ().lower())63 println ("c upper bounds " c.bounds ().upper())64 println ("c.bounds = " c.bounds ())62 println ("c lower bounds " c.bounds.lower ) 63 println ("c upper bounds " c.bounds.upper ) 64 println ("c.bounds = " c.bounds) 65 65 66 66 end -
trunk/ProjectFortress/tests/EqualityOverloadBug.fss
r3550 r4130 20 20 21 21 object Bar extends Equality[\Bar\] 22 asString():Bar = "Bar"22 getter asString():Bar = "Bar" 23 23 opr =(self, _:Bar): Boolean = do println("OK Bar"); true end 24 24 end -
trunk/ProjectFortress/tests/Exception.fss
r3550 r4130 20 20 21 21 object Scooby extends CheckedException 22 asString(): String = "ScoobyDoobyDoo"22 getter asString(): String = "ScoobyDoobyDoo" 23 23 end 24 24 25 25 object Shaggy extends CheckedException 26 asString(): String = "RuhRohRaggy"26 getter asString(): String = "RuhRohRaggy" 27 27 end 28 28 … … 113 113 Shaggy => x := e 114 114 end 115 assert(x.asString (), "RuhRohRaggy", "Test5: Improper binding of exception");115 assert(x.asString, "RuhRohRaggy", "Test5: Improper binding of exception"); 116 116 end 117 117 -
trunk/ProjectFortress/tests/ExceptionScoping.fss
r3550 r4130 35 35 try 36 36 try 37 Nothing[\ZZ32\].get ()37 Nothing[\ZZ32\].get 38 38 catch x 39 39 FailCalled => fail("Caught FailCalled!!") -
trunk/ProjectFortress/tests/HeapTest.fss
r3550 r4130 22 22 23 23 checkFull(h0: Heap[\ZZ32,ZZ32\], n:ZZ32): () = 24 if h0.isEmpty ()then24 if h0.isEmpty then 25 25 if NOT (n=0) then fail("empty with n=/=0") end 26 26 else 27 27 flags : Array[\Boolean,ZZ32\] = array[\Boolean\](n).fill(false) 28 (k:ZZ32, v:ZZ32, h:Heap[\ZZ32,ZZ32\]) := h0.extractMinimum().get ()28 (k:ZZ32, v:ZZ32, h:Heap[\ZZ32,ZZ32\]) := h0.extractMinimum().get 29 29 k_prev : ZZ32 := k 30 30 expected: ZZ32 := 1 31 31 flags[v] := true 32 32 failed : Boolean := false 33 while NOT h.isEmpty ()AND expected <= n do34 (k,v,h) := h.extractMinimum().get ()33 while NOT h.isEmpty AND expected <= n do 34 (k,v,h) := h.extractMinimum().get 35 35 if k < k_prev then 36 36 println("FAIL: Keys " k_prev " and " k " out of order.") … … 44 44 expected += 1 45 45 end 46 if NOT h.isEmpty ()then46 if NOT h.isEmpty then 47 47 println("FAIL: Too many elements.") 48 48 failed := true … … 55 55 expected := 0 56 56 println(h.asDebugString) 57 while NOT h.isEmpty ()AND expected <= n do58 (k,v,h) := h.extractMinimum().get ()57 while NOT h.isEmpty AND expected <= n do 58 (k,v,h) := h.extractMinimum().get 59 59 println(expected ": min = (" k "," v ")") 60 60 println(h.asDebugString) … … 87 87 assert(n,sz," size versus computed size") 88 88 if (sz > 0) then 89 (mn_k, mn_v) = h.minimum ().get()90 assert(mn,mn_k," computed minimum versus .minimum ()")89 (mn_k, mn_v) = h.minimum.get 90 assert(mn,mn_k," computed minimum versus .minimum") 91 91 end 92 92 end … … 137 137 slgs = s lg s 138 138 print(s "\t" slgs) 139 testHeap(s,lazy[\ZZ32,ZZ32\],(0#s).indexValuePairs ())139 testHeap(s,lazy[\ZZ32,ZZ32\],(0#s).indexValuePairs) 140 140 testHeap(s,lazy[\ZZ32,ZZ32\],(0#s).map[\(ZZ32,ZZ32)\](spread)) 141 testHeap(s,pairing[\ZZ32,ZZ32\],(0#s).indexValuePairs ())141 testHeap(s,pairing[\ZZ32,ZZ32\],(0#s).indexValuePairs) 142 142 testHeap(s,pairing[\ZZ32,ZZ32\],(0#s).map[\(ZZ32,ZZ32)\](spread)) 143 143 println() -
trunk/ProjectFortress/tests/ListTest.fss
r3645 r4130 28 28 29 29 assert(|list'|,3," |list'|") 30 assert(list'.left ().get(),3," list'.left()")30 assert(list'.left.get,3," list'.left") 31 31 assert(list'.drop(1),<|5 asif ZZ32,7|>," list'.drop(1)") 32 32 assert((list'.drop(1))[1], 7," list'.drop(1)[1]") … … 35 35 assert(BIG AND [e <- list''] e IN l, true, 36 36 l, " doesn't contain all of ", list'') 37 assert(l.indexOf(8).get (),3,l,".indexOf(8)")38 assert(list'.isEmpty (), false, list', ".isEmpty()")37 assert(l.indexOf(8).get,3,l,".indexOf(8)") 38 assert(list'.isEmpty, false, list', ".isEmpty") 39 39 assert(l.filter(fiveOrMore).map[\ZZ32\](fn x => 10 x), 40 40 <|50 asif ZZ32,70,80,60|>,"filter . map") -
trunk/ProjectFortress/tests/MapTest.fss
r3546 r4130 43 43 perm : ZZ32[5] = [ 3 4 1 0 2 ] 44 44 expect : String[5] = [("" "Nathi") "Peter" "Emily" "David" "Elias"] 45 for (v,k) <- seq(expect.indexValuePairs ()) do45 for (v,k) <- seq(expect.indexValuePairs) do 46 46 init(k,v) 47 47 end … … 54 54 db''={("" "David") asif String|->3 asif ZZ32, "Elias"|->4, "Peter"|->1, "Nathi"|->0, "Emily"|->2} 55 55 check(db'') 56 db' = {[\String,ZZ32\] k|->v | (v,k) <- expect.indexValuePairs ()}56 db' = {[\String,ZZ32\] k|->v | (v,k) <- expect.indexValuePairs } 57 57 check(db') 58 58 db : Map[\String,ZZ32\] = {[\String,ZZ32\] expect[i]|->i | i <- perm } … … 60 60 db0 = db UNION db' (*'*) 61 61 check(db0) 62 db1 = BIG UNION [(v,k) <- expect.indexValuePairs ()] { k asif String|-> v asif ZZ32 }62 db1 = BIG UNION [(v,k) <- expect.indexValuePairs] { k asif String|-> v asif ZZ32 } 63 63 check(db1) 64 db2 = BIG UPLUS [(v,k) <- expect.indexValuePairs ()] { k asif String |-> v asif ZZ32 }64 db2 = BIG UPLUS [(v,k) <- expect.indexValuePairs] { k asif String |-> v asif ZZ32 } 65 65 check(db2) 66 db3 = BIG UNION [i <- expect.indices ()] { expect[v] asif String |-> v asif ZZ32 | v <- 0:i }66 db3 = BIG UNION [i <- expect.indices] { expect[v] asif String |-> v asif ZZ32 | v <- 0:i } 67 67 check(db3) 68 68 assert(db.member("Empty"),Nothing[\ZZ32\],"absent member") 69 69 assert(db.member("Empty",77),77,"absent member with default 77") 70 for (v,k) <- expect.indexValuePairs ()do70 for (v,k) <- expect.indexValuePairs do 71 71 assert(db.member(k),Just[\ZZ32\](v),"present member") 72 72 assert(db[k],v,"present member") -
trunk/ProjectFortress/tests/ObjectToStringTest.fss
r3550 r4130 30 30 run() : () = do 31 31 r = object end 32 println(r.asString ())33 println(Foo(17,"Hello there").asString ())34 println(Fue[\ZZ32\](17,"Hello there").asString ())35 println(Bar(17,"Hello there").asString ())32 println(r.asString) 33 println(Foo(17,"Hello there").asString) 34 println(Fue[\ZZ32\](17,"Hello there").asString) 35 println(Bar(17,"Hello there").asString) 36 36 end 37 37 -
trunk/ProjectFortress/tests/PureListQuick.fss
r3550 r4130 22 22 assertStr[\T\](a:ZZ32, b:ZZ32, s:String, l: List[\T\]) = 23 23 if a=/=b then 24 fail(a "=/=" b ": " s l.asString ())24 fail(a "=/=" b ": " s l.asString) 25 25 end 26 26 27 27 assertStr[\T\](a:Boolean, s:String, l: List[\T\]) = 28 28 if NOT a then 29 fail("Failed assertion: " s l.asString ())29 fail("Failed assertion: " s l.asString) 30 30 end 31 31 32 32 assertStr[\T\](a:Boolean, s:String, l: List[\T\], r: List[\T\]) = 33 33 if NOT a then 34 fail("Failed assertion: " s l.asString () " and " r.asString())34 fail("Failed assertion: " s l.asString " and " r.asString) 35 35 end 36 36 … … 64 64 ll : List[\ZZ32\] := l 65 65 for i <- seq(0#sz) do 66 (e,ll0) = ll.extractLeft ().get()66 (e,ll0) = ll.extractLeft.get 67 67 assertStr(e,i,"extractLeft wrong in ",ll) 68 assertStr(ll.left ().get(),i,"left wrong in ",ll)68 assertStr(ll.left.get,i,"left wrong in ",ll) 69 69 ll := ll0 70 70 end 71 assertStr(ll.isEmpty ()," not empty after extractLeft(); it's ",ll)71 assertStr(ll.isEmpty," not empty after extractLeft; it's ",ll) 72 72 ll := l 73 73 for i <- seq(1#sz) do 74 (ll0,e) = ll.extractRight ().get()74 (ll0,e) = ll.extractRight.get 75 75 assertStr(e,sz-i,"extractRight wrong in ",ll) 76 assertStr(ll.right ().get(),sz-i,"right wrong in ",ll)76 assertStr(ll.right.get,sz-i,"right wrong in ",ll) 77 77 ll := ll0 78 78 end 79 assertStr(ll.isEmpty ()," not empty after extractRight(); it's ",ll)79 assertStr(ll.isEmpty," not empty after extractRight; it's ",ll) 80 80 end 81 81 … … 126 126 chkPop(ivli,0,i,2) 127 127 print(".") 128 rli=li.reverse ()128 rli=li.reverse 129 129 for j <- 0#i do 130 130 print(".") -
trunk/ProjectFortress/tests/RangePrototype.fss
r3550 r4130 323 323 assert(dumpShow(r),dumpShow(rr)) 324 324 end 325 for r <- pairFulls, (i1,i2) <- r.bounds ()do325 for r <- pairFulls, (i1,i2) <- r.bounds do 326 326 assert(r[i1,i2] IN r, true, r,"[",i1,",",i2,"] = ",r[i1,i2]," not in") 327 327 end … … 455 455 end 456 456 print("\nunlike ne") 457 for (i,rs) <- testScalarRangess.indexValuePairs (), ss <- testScalarRangess[0#i], r <- rs, s <- ss do457 for (i,rs) <- testScalarRangess.indexValuePairs, ss <- testScalarRangess[0#i], r <- rs, s <- ss do 458 458 assert(r=s, false, r, "=", s) 459 459 assert(s=r, false, s, "=", r) … … 461 461 end 462 462 print("\ncommutativity of equality") 463 for rs <- testScalarRangess, (i,t) <- rs.indexValuePairs (), u <- rs[#i] do463 for rs <- testScalarRangess, (i,t) <- rs.indexValuePairs, u <- rs[#i] do 464 464 eq = (t=u) 465 465 if eq =/= (u=t) then … … 502 502 print("\nempty indexed") 503 503 compactScalarRanges = <| c | r <- fullScalarRanges, 504 c <- if r.stride ()=1 then <|r,r.bounds()|> else <|r.bounds()|> end |>504 c <- if r.stride=1 then <|r,r.bounds|> else <|r.bounds|> end |> 505 505 for i <- compactScalarRanges, i.isEmpty, j <- testScalarRanges do 506 506 s = i.narrowToRange(j) -
trunk/ProjectFortress/tests/Region.fss
r3550 r4130 29 29 all[6] := "Howdy" 30 30 assert(region(all).isLocalTo(Global)) 31 for (i,v) <- all.indexValuePairs ()do31 for (i,v) <- all.indexValuePairs do 32 32 assert(all.region(i).isLocalTo(region(all))) 33 33 assert(region(v).isLocalTo(Global)) -
trunk/ProjectFortress/tests/SetTest.fss
r3550 r4130 67 67 sets: (Set[\ZZ32\])[4] = [b c d e] 68 68 69 for s <- sets, (i,v') <- s.indexValuePairs ()do69 for s <- sets, (i,v') <- s.indexValuePairs do 70 70 assert(i+1,v'," indexValuePairs wrong for ",s) 71 71 end -
trunk/ProjectFortress/tests/SkipListTest.fss
r3550 r4130 37 37 database1 := add(database1, "Paul", 7) 38 38 39 println(database1.asString ())39 println(database1.asString) 40 40 println(|database1|) 41 41 … … 47 47 database2 := add(database2, "Smeagol", 73) 48 48 49 println(database2.asString ())49 println(database2.asString) 50 50 println(|database2|) 51 51 52 println(database1.merge(database2).asString ())52 println(database1.merge(database2).asString) 53 53 54 println(database1.asString ())54 println(database1.asString) 55 55 56 56 database1 := remove(database1, "Emily") 57 println(database1.asString ())57 println(database1.asString) 58 58 database1 := remove(database1, "David") 59 println(database1.asString ())59 println(database1.asString) 60 60 database1 := remove(database1, "Nathi") 61 println(database1.asString ())61 println(database1.asString) 62 62 database1 := remove(database1, "Paul") 63 println(database1.asString ())63 println(database1.asString) 64 64 database1 := remove(database1, "John") 65 println(database1.asString ())65 println(database1.asString) 66 66 database1 := remove(database1, "Cathy") 67 println(database1.asString ())67 println(database1.asString) 68 68 println(|database1|) 69 69 … … 76 76 init("David", 3) 77 77 init("David", 3) 78 println(database.asString ())78 println(database.asString) 79 79 println(database.getSize()) 80 80 remove("David") 81 81 remove("David") 82 82 remove("David") 83 println(database.asString ())83 println(database.asString) 84 84 println(database.getSize()) 85 85 remove("David") 86 86 remove("David") 87 87 remove("David") 88 println(database.asString ())88 println(database.asString) 89 89 println(database.getSize()) 90 90 *) -
trunk/ProjectFortress/tests/TransactionalArrayShakedown.fss
r3550 r4130 37 37 fail(i " !!! " v) 38 38 end 39 pre = SUM [(i,v)<-a.indexValuePairs ()] body(i,v)39 pre = SUM [(i,v)<-a.indexValuePairs] body(i,v) 40 40 println(pre " pre and " (1000-pre) " post") 41 41 end -
trunk/ProjectFortress/tests/WordCountSmall.fss
r3664 r4130 49 49 var start:ZZ32 := 0 50 50 51 while (current < s.size ()) do51 while (current < s.size) do 52 52 if isDelimiter(s[current]) then 53 53 count := count - 1 -
trunk/ProjectFortress/tests/array3test.fss
r3550 r4130 24 24 17 18 19 20 25 25 21 22 23 24 ] 26 cstr = c.asString ()26 cstr = c.asString 27 27 assert(c.bounds, (0,0,0)#(3,4,2), "Bounds of c wrong") 28 28 cexpect = "[0#3,0#4,0#2]\n[ 1 2 3 4\n 5 6 7 8\n 9 10 11 12 ;;\n 13 14 15 16\n 17 18 19 20\n 21 22 23 24 ]" 29 assert(cstr,cexpect,"asString ()of Array3")29 assert(cstr,cexpect,"asString of Array3") 30 30 assert(c,c,"equality on Array3") 31 31 end -
trunk/ProjectFortress/tests/asifTest.fss
r3550 r4130 38 38 39 39 object Bar extends Foo 40 asString(): String = "Bar"40 getter asString(): String = "Bar" 41 41 passFoo(): Boolean = false 42 42 passBar(): Boolean = true … … 46 46 47 47 object Baz extends Foo 48 asString(): String = "Baz"48 getter asString(): String = "Baz" 49 49 passFoo(): Boolean = false 50 50 passQuux(): Boolean = false -
trunk/ProjectFortress/tests/atomicList.fss
r3550 r4130 20 20 21 21 trait List[\E\] comprises {Elem[\E\], Empty[\E\]} 22 getter isEmpty():Boolean 23 getter asString():() 22 24 car():E 23 25 cdr():List[\E\] 24 26 cons(x:E):List[\E\] 25 isEmpty():Boolean26 asString():()27 27 count():ZZ32 28 28 end … … 31 31 32 32 object Empty[\E\] extends List[\E\] 33 getter asString() = " Empty" 34 getter isEmpty() = true 33 35 car():E = throw ListError("Empty List has no car") 34 36 cdr():List[\E\] = throw ListError(" Empty List has no cdr") 35 37 cons(z:E) = Elem[\E\](z, self) 36 asString() = " Empty"37 isEmpty() = true38 38 count() = 0 39 39 end 40 40 41 41 object Elem[\E\](val:E, rest:List[\E\]) extends List[\E\] 42 getter asString() = " " val ", " rest.asString 43 getter isEmpty() = false 42 44 car():E = val 43 45 cdr():List[\E\] = rest 44 46 cons(z:E) = Elem[\E\](z,self) 45 asString() = " " val ", " rest.asString()46 isEmpty() = false47 47 count() = 1 + cdr().count() 48 48 end -
trunk/ProjectFortress/tests/booleanGuard.fss
r3550 r4130 27 27 assert(b,a.filter(fn (x)=>x>2)," x>2") 28 28 d = <| x | x <- a, false |> 29 assert(d.isEmpty (), "not isEmpty false")29 assert(d.isEmpty, "not isEmpty false") 30 30 e = <| 17 | _ <- true |> 31 31 assert(e,<|17|>,"true =/= <|17|>") -
trunk/ProjectFortress/tests/deepHierarchy.fss
r3550 r4130 49 49 50 50 object D0[\E\]() extends { Finger[\E\] } 51 asString() = "0"51 getter asString() = "0" 52 52 end 53 53 -
trunk/ProjectFortress/tests/extendAny.fss
r3550 r4130 23 23 24 24 object Infinity extends Any 25 asString()="Infinity"25 getter asString()="Infinity" 26 26 end 27 27 -
trunk/ProjectFortress/tests/extendException.fss
r3550 r4130 22 22 23 23 object Infinity extends Exception 24 asString() = "Infinity"24 getter asString() = "Infinity" 25 25 end 26 26 -
trunk/ProjectFortress/tests/fmTest2.fss
r3550 r4130 24 24 object rat(i:ZZ32, j:ZZ32) 25 25 26 getter asString():String = "(" i ", " j ")" 26 27 (* Not sure why, but "self.i" fails below *) 27 28 opr OPLUS(self, other:rat):rat = rat(i OPLUS other.i, j OPLUS other.j) … … 30 31 (* this next is not called, but it makes for a tricky overloading *) 31 32 opr OTIMES(other:ZZ32, self):rat = rat(self.i OTIMES other, self.j OTIMES other) 32 asString():String = "(" i ", " j ")"33 33 area():ZZ32 = i OTIMES j 34 34 end … … 36 36 run():()=do 37 37 a:rat = rat(1,0) 38 println a.asString ()38 println a.asString 39 39 40 40 b:rat = rat(0,1) 41 println b.asString ()41 println b.asString 42 42 43 43 c = a OPLUS b 44 println c.asString ()44 println c.asString 45 45 46 46 d = c OTIMES (2 OTIMES 2) 47 println d.asString ()47 println d.asString 48 48 49 49 end -
trunk/ProjectFortress/tests/fmTest3.fss
r3550 r4130 24 24 object rat[\T\](i:ZZ32, j:ZZ32) 25 25 26 getter asString():String = "(" i ", " j ")" 26 27 (* Not sure why, but "self.i" fails below *) 27 28 opr OPLUS(self, other:rat[\T\]):rat[\T\] = rat[\T\](i OPLUS other.i, j OPLUS other.j) … … 30 31 (* this next is not called, but it makes for a tricky overloading *) 31 32 opr OTIMES(other:ZZ32, self):rat[\T\] = rat[\T\](self.i OTIMES other, self.j OTIMES other) 32 asString():String = "(" i ", " j ")"33 33 area():ZZ32 = i OTIMES j 34 34 end … … 38 38 run():()=do 39 39 a:rat[\S\] = rat[\S\](1,0) 40 println a.asString ()40 println a.asString 41 41 42 42 b:rat[\S\] = rat[\S\](0,1) 43 println b.asString ()43 println b.asString 44 44 45 45 c = a OPLUS b 46 println c.asString ()46 println c.asString 47 47 48 48 d = c OTIMES (2 OTIMES 2) 49 println d.asString ()49 println d.asString 50 50 51 51 end -
trunk/ProjectFortress/tests/intPrim.fss
r3550 r4130 25 25 run() = do 26 26 a:ZZ32 = 0 27 tstEq("Minimum", a.minimum () - 1, a.maximum())28 tstEq("Maximum", a.maximum () + 1, a.minimum())27 tstEq("Minimum", a.minimum - 1, a.maximum) 28 tstEq("Maximum", a.maximum + 1, a.minimum) 29 29 tstEq("Add", 124867 + -(234597), -109730 ) 30 30 tstEq("Sub", 124867 - 234597, -109730 ) -
trunk/ProjectFortress/tests/longPrim.fss
r3550 r4130 25 25 run() = do 26 26 a:ZZ64 = 0 27 tstEq("Minimum", a.minimum () - 1, a.maximum())28 tstEq("Maximum", a.maximum () + 1, a.minimum())27 tstEq("Minimum", a.minimum - 1, a.maximum) 28 tstEq("Maximum", a.maximum + 1, a.minimum) 29 29 tstEq("Add", widen(124867) + -(234597), widen(-109730) ) 30 30 tstEq("Sub", widen(124867) - 234597, widen(-109730) ) -
trunk/ProjectFortress/tests/maybeTest.fss
r3550 r4130 23 23 b = Just[\Boolean\](true) 24 24 println(b) 25 assert(NOT a.holds (), "Nothing holds()")26 assert(b.holds (),"NOT b.holds()")27 if a then fail("Nothing holds ()in if") end25 assert(NOT a.holds, "Nothing holds") 26 assert(b.holds,"NOT b.holds") 27 if a then fail("Nothing holds in if") end 28 28 if b then () else fail("b holds in if") end 29 29 if r <- b then assert(r,"NOT r <- b (single clause)") end 30 30 if r <- b then assert(r,"NOT r <- b") else fail("r<-b does not hold") end 31 assert(b.get (),"NOT b.get()")31 assert(b.get,"NOT b.get") 32 32 assert(a, Nothing[\ZZ32\], "nothing =/= nothing") 33 33 deny(a, b, "nothing = just") … … 50 50 end 51 51 assert(times,1," WRONG number of times.") 52 assert(a.asString (),"Nothing","Nothing.asString()")53 assert(b.asString (),"Just(true)", "Just(true).asString()")52 assert(a.asString,"Nothing","Nothing.asString") 53 assert(b.asString,"Just(true)", "Just(true).asString") 54 54 end 55 55 -
trunk/ProjectFortress/tests/naiveSeq.fss
r3550 r4130 28 28 object NewRange(lo:ZZ32,sz:ZZ32) extends Generator[\ZZ32\] 29 29 getter size() = sz 30 getter asString() = "[" lo "#" sz "]" 30 31 opr |self| : ZZ32 = sz 31 asString() = "[" lo "#" sz "]"32 32 generate[\R\](r:Reduction[\R\], m:ZZ32->R): R = 33 33 if sz < 1 then -
trunk/ProjectFortress/tests/naturalsTest.fss
r3550 r4130 23 23 b = Just[\Boolean\](true) 24 24 println(b) 25 assert(NOT a.holds (), "Nothing holds()")26 assert(b.holds (),"NOT b.holds()")27 if a then fail("Nothing holds ()in if") end25 assert(NOT a.holds, "Nothing holds") 26 assert(b.holds,"NOT b.holds") 27 if a then fail("Nothing holds in if") end 28 28 if b then () else fail("b holds in if") end 29 29 if r <- b then assert(r,"NOT r <- b (single clause)") end 30 30 if r <- b then assert(r,"NOT r <- b") else fail("r<-b does not hold") end 31 assert(b.get (),"NOT b.get()")31 assert(b.get,"NOT b.get") 32 32 assert(a, Nothing[\ZZ32\], "nothing =/= nothing") 33 33 deny(a, b, "nothing = just") … … 50 50 end 51 51 assert(times,1," WRONG number of times.") 52 assert(a.asString (),"Nothing","Nothing.asString()")53 assert(b.asString (),"Just(true)", "Just(true).asString()")52 assert(a.asString,"Nothing","Nothing.asString") 53 assert(b.asString,"Just(true)", "Just(true).asString") 54 54 end 55 55 -
trunk/ProjectFortress/tests/nestedInst.fss
r3550 r4130 28 28 29 29 object D1[\E\]() extends { D14[\E\] } 30 asString()="1"30 getter asString()="1" 31 31 end 32 32 … … 34 34 println("Starting instantiation") 35 35 e = D1[\ZZ32\]() 36 println(e.asString ())36 println(e.asString) 37 37 () 38 38 end -
trunk/ProjectFortress/tests/realArith.fss
r3550 r4130 35 35 assert(x MIN z, x) 36 36 assert(x MAX z, z) 37 assert((x MIN NaN).isNaN (), true)38 assert((x MAX NaN).isNaN (), true)37 assert((x MIN NaN).isNaN, true) 38 assert((x MAX NaN).isNaN, true) 39 39 assert(-x, -14) 40 40 assert(x + y, 28) … … 80 80 assert(|/ -4.5 \|, -4) 81 81 assert(truncate (-4.5), -4) 82 assert(x.isNaN (), false)83 assert(x.isInfinite (), false)84 assert(infinity.isInfinite (), true)85 assert(x.isNumber (), true)86 assert(x.isFinite (), true)87 assert(infinity.isFinite (), false)82 assert(x.isNaN, false) 83 assert(x.isInfinite, false) 84 assert(infinity.isInfinite, true) 85 assert(x.isNumber, true) 86 assert(x.isFinite, true) 87 assert(infinity.isFinite, false) 88 88 assert(Just(7.0), Just(7.0)) 89 89 assert(Just(z), Just(z)) 90 90 (* If we do not give explicit type instantiation below, it fails... *) 91 assert(x.check (), Just[\RR64\](x))92 assert(infinity.check (), Nothing[\RR64\])93 assert(NaN.check (), Nothing[\RR64\])91 assert(x.check, Just[\RR64\](x)) 92 assert(infinity.check, Nothing[\RR64\]) 93 assert(NaN.check, Nothing[\RR64\]) 94 94 95 assert(x.check_star (), Just[\RR64\](x))96 assert(infinity.check_star (), Just[\RR64\](infinity))97 assert(NaN.check_star (), Nothing[\RR64\])95 assert(x.check_star, Just[\RR64\](x)) 96 assert(infinity.check_star, Just[\RR64\](infinity)) 97 assert(NaN.check_star, Nothing[\RR64\]) 98 98 99 99 (* We want to implement hexadecimal literals. *) 100 assert((x / x).rawBits (), 4607182418800017408)100 assert((x / x).rawBits, 4607182418800017408) 101 101 assert(x MINNUM z, x) 102 102 assert(x MAXNUM z, z) -
trunk/ProjectFortress/tests/spuriousSelf.fss
r3550 r4130 32 32 33 33 trait List[\E\] extends { Indexed[\E,ZZ32\] } excludes { Number, HasRank } 34 getter bounds(): Range[\ZZ32\] = 0#s ize()34 getter bounds(): Range[\ZZ32\] = 0#self.size 35 35 36 36 (************************************************************* -
trunk/ProjectFortress/tests/subArray.fss
r3550 r4130 23 23 lo = b.left.get - a.bounds.lower 24 24 s = b.stride 25 for (i,v) <- a.indexValuePairs ()do25 for (i,v) <- a.indexValuePairs do 26 26 assert(s i + lo, v, "a[", i, "]", a, b) 27 27 end … … 30 30 eqToRange2(a:Array[\ZZ32,(ZZ32,ZZ32)\], b:Range[\(ZZ32,ZZ32)\]): () = do 31 31 assert(|a|, |b|, "Size mismatch",a,b) 32 (lo1, lo2) = b.lower ()33 for (i,v) <- a.indexValuePairs ()do32 (lo1, lo2) = b.lower 33 for (i,v) <- a.indexValuePairs do 34 34 (x,y) = i 35 35 assert(v, 3 (x + lo1) + y + lo2, "a[",x,",",y,"]") … … 39 39 eqToRange3(a:Array[\ZZ32,(ZZ32,ZZ32,ZZ32)\], b:Range[\(ZZ32,ZZ32,ZZ32)\]): () = do 40 40 assert(|a|, |b|, "Size mismatch",a,b) 41 (lo1, lo2, lo3) = b.lower ()42 for (i,v) <- a.indexValuePairs ()do41 (lo1, lo2, lo3) = b.lower 42 for (i,v) <- a.indexValuePairs do 43 43 (x,y,z) = i 44 44 assert(v, 2 (2 (z + lo3) + x + lo1) + y + lo2, "a[",x,",",y,",",z,"]",a,b) … … 74 74 75 75 a2 : ZZ32[3,3] = [0 1 2 ; 3 4 5; 6 7 8] 76 eqToRange2(a2,a2.indices ())77 eqToRange2(a2[#],a2.indices ())76 eqToRange2(a2,a2.indices) 77 eqToRange2(a2[#],a2.indices) 78 78 a2' = a2[(0,1)#(2,2)] (*'*) 79 79 eqToRange2(a2',(0,1)#(2,2)) (*'*) … … 92 92 93 93 a3 : ZZ32[2,2,2] = [0 1; 2 3;; 4 5 ; 6 7] 94 eqToRange3(a3,a3.indices ())95 eqToRange3(a3[:],a3.indices ())94 eqToRange3(a3,a3.indices) 95 eqToRange3(a3[:],a3.indices) 96 96 eqToRange3(a3[(0,0,1)#(2,1,1)],(0,0,1)#(2,1,1)) 97 97 eqToRange3(a3[#(2,1,2)],(0,0,0)#(2,1,2)) -
trunk/ProjectFortress/tests/testRR32.fss
r3550 r4130 46 46 assert(x MIN z, x) 47 47 assert(x MAX z, z) 48 assert((x MIN NaN).isNaN (), true)49 assert((x MAX NaN).isNaN (), true)48 assert((x MIN NaN).isNaN, true) 49 assert((x MAX NaN).isNaN, true) 50 50 assert(-x, narrow(-14.0)) 51 51 assert(x + y, sum) … … 80 80 assert(|/ w \|, nfour) 81 81 assert(truncate w, nfour) 82 assert(x.isNaN (), false)83 assert(x.isInfinite (), false)84 assert(infinity.isInfinite (), true)85 assert(x.isNumber (), true)86 assert(x.isFinite (), true)87 assert(infinity.isFinite (), false)82 assert(x.isNaN, false) 83 assert(x.isInfinite, false) 84 assert(infinity.isInfinite, true) 85 assert(x.isNumber, true) 86 assert(x.isFinite, true) 87 assert(infinity.isFinite, false) 88 88 assert(Just(v), Just(v)) 89 89 assert(Just(z), Just(z)) 90 90 (* If we do not give explicit type instantiation below, it fails... *) 91 assert(x.check (), Just[\RR32\](x))92 assert(infinity.check (), Nothing[\RR32\])93 assert(NaN.check (), Nothing[\RR32\])91 assert(x.check, Just[\RR32\](x)) 92 assert(infinity.check, Nothing[\RR32\]) 93 assert(NaN.check, Nothing[\RR32\]) 94 94 95 assert(x.check_star (), Just[\RR32\](x))96 assert(infinity.check_star (), Just[\RR32\](infinity))97 assert(NaN.check_star (), Nothing[\RR32\])95 assert(x.check_star, Just[\RR32\](x)) 96 assert(infinity.check_star, Just[\RR32\](infinity)) 97 assert(NaN.check_star, Nothing[\RR32\]) 98 98 99 99 (* We want to implement hexadecimal literals. *) 100 assert((x / x).rawBits (), 1065353216)100 assert((x / x).rawBits, 1065353216) 101 101 assert(x MINNUM z, x) 102 102 assert(x MAXNUM z, z) -
trunk/ProjectFortress/tests/testRecImport.fss
r3550 r4130 22 22 23 23 object MyOdd extends Odd 24 getter asString():String = "MyOdd" 24 25 anEven():Even = MyEven 25 asString():String = "MyOdd"26 26 end 27 27 28 28 object MyEven extends Even 29 getter asString():String = "MyEven" 29 30 anOdd():Odd = MyOdd 30 asString():String = "MyEven"31 31 end 32 32 … … 38 38 assert(even(-8),"even(-8)") 39 39 assert(NOT odd(-8),"odd(-8)") 40 assert(MyOdd.asString (),"MyOdd", "MyOdd")41 assert(MyEven.asString (),"MyEven", "MyEven")42 assert(MyEven.anOdd().asString (),"MyOdd", "MyEven.anOdd")43 assert(MyEven.anOdd().anEven().asString (),"MyEven", "MyEven.anOdd.anEven")40 assert(MyOdd.asString,"MyOdd", "MyOdd") 41 assert(MyEven.asString,"MyEven", "MyEven") 42 assert(MyEven.anOdd().asString,"MyOdd", "MyEven.anOdd") 43 assert(MyEven.anOdd().anEven().asString,"MyEven", "MyEven.anOdd.anEven") 44 44 end 45 45 -
trunk/ProjectFortress/tests/whileTest.fss
r3550 r4130 21 21 22 22 neqOrMaybe(a: ReadableArray[\ZZ32,ZZ32\], i:ZZ32): Maybe[\(ZZ32,ZZ32)\] = 23 if i NOTIN a.bounds ()OR: a[i] =/= i+7 then23 if i NOTIN a.bounds OR: a[i] =/= i+7 then 24 24 Nothing[\(ZZ32,ZZ32)\] 25 25 else -
trunk/ProjectFortress/tests/zeno.fss
r3550 r4130 99 99 showHist():() = do 100 100 mx = BIG MAX histogram 101 indexFieldWidth : ZZ32 = BIG MAX [(i,v) <- histogram.indexValuePairs (), v=/=0] |"" i| - 1101 indexFieldWidth : ZZ32 = BIG MAX [(i,v) <- histogram.indexValuePairs, v=/=0] |"" i| - 1 102 102 valueFieldWidth : ZZ32 = |"" mx| - 1 103 103 println("mx = " mx) 104 104 histogramLength = 75 - indexFieldWidth - valueFieldWidth 105 for (i,v) <- sequential(histogram.indexValuePairs ()), v =/= 0 do105 for (i,v) <- sequential(histogram.indexValuePairs), v =/= 0 do 106 106 iAsString = "" i 107 107 print(prepad(indexFieldWidth, iAsString) ": ")

