;; simple test of `globals' TEST: globals val gap_cost : int val N : int in X[i] = i where 0 <= i < N end RESULT: success TEST: globals val gap_cost : int val N : int in X[i] = i*gap_cost where 0 <= i < N end RESULT: success TEST: globals val gap_cost : int val N : int in X[i] = i*gap_cost() where 0 <= i < N end RESULT: wrong TEST: globals val gap_cost : int val N : int in X[i] = i*gap_cost[i] where 0 <= i < N end RESULT: wrong TEST: globals fun f (int, int) : int in X[i] = f(i,i) where 0 < i <= N end RESULT: success TEST: globals fun f (int, int) : int in X[i] = f(i) where 0 < i <= N end RESULT: wrong TEST: globals matrix M [N, N] : int in X[i] = M[i,i] where 0 < i <= N end RESULT: success TEST: globals matrix M [N, N] : int in X[i] = M[i] where 0 < i <= N end RESULT: wrong ;; parameter functions currently not supported ;; TEST: ;; parameters ;; fun f (2) : int ;; in ;; X[i] = f(i,i) where 0 < i <= N ;; end ;; ;; RESULT: ;; success ;; ;; TEST: ;; parameters ;; fun f (2) : int ;; in ;; X[i] = f(i) where 0 < i <= N ;; end ;; ;; RESULT: ;; wrong ;; simple test of `parameters' TEST: parameters val gap_cost : int val N : int in X[i] = i where 0 <= i < N end RESULT: success TEST: parameters val gap_cost : int val N : int in X[i] = i*gap_cost where 0 <= i < N end RESULT: success TEST: parameters val gap_cost : int val N : int in X[i] = i*gap_cost() where 0 <= i < N end RESULT: wrong TEST: parameters val gap_cost : int val N : int in X[i] = i*gap_cost[i] where 0 <= i < N end RESULT: wrong TEST: parameters matrix M [N,N] : int in X[i] = M[i,i] where 0 < i <= N end RESULT: success TEST: parameters matrix M [N,N] : int in X[i] = M[i] where 0 < i <= N end RESULT: wrong ;; test of mixed 'globals' and 'parameters' TEST: globals val gap_cost : int parameters val N : int in X[i] = i where 0 <= i < N end RESULT: success TEST: globals val N : int parameters val gap_cost : int in X[i] = i where 0 <= i < N end RESULT: success ;; test of redefinition errors TEST: globals val N : int val N : int in X[i] = i where 0 <= i < N end RESULT: redefinition TEST: globals val N : int parameters val N : int in X[i] = i where 0 <= i < N end RESULT: redefinition ;; locals TEST: globals matrix X[500] : int parameters val N : int locals matrix Y[N] : int in Y[i] = i X[i] = 2*Y[i] where 0 <= i < N end RESULT: success TEST: globals matrix X[500] : int matrix Y[500] : int parameters val N : int locals matrix Y[N] : int in Y[i] = i X[i] = 2*Y[i] where 0 <= i < N end RESULT: redefinition TEST: globals matrix X[100] : int parameters val N : int locals matrix Y[N] : int in Y[i,i] = i X[i] = 2*Y[i,i] where 0 <= i < N end RESULT: wrong