print("Testing function calls:")
print("abs")
abs(-1)
abs(0)
abs(1)
abs(123456789123456789123456789)
abs(-123456789123456789123456789)

print("Adams")
Adams(1,[1],A1)
Adams(2,[1],A1)
Adams(3,[1],A1)
Adams(2,[0,0,0,1],F4)
setdefault(E6)
Adams(2,[1,0,0,0,0,0])
Adams(1,[1],T1)

print("adjoint")
adjoint(A1)
adjoint(A2)
setdefault(E6)
adjoint
adjoint(G2)
adjoint(T2)

print("alt_tensor")
alt_tensor(1,[1,0],A2)
alt_tensor(2,[0,1],A2)
setdefault(A2)
alt_tensor(3,[1,0])
alt_tensor(4,[1,0])
alt_tensor(4,[2],A1)
alt_tensor(0,[1],A1)
alt_tensor(2,[1,0,0,0],A2A2)

print("branch")
branch([1,0],A1,[[0],[1]],A2)
branch([0,1],A2,[[1,0],[1,1]],G2)
setdefault(D4)
branch([1,1,0,0],A1A1A1A1,[[1,1,0,0],[1,1,1,1],[0,1,1,0],[0,1,0,1]])
setdefault(F4)
branch([1,0,0,0],A1G2,[[4,1,0],[4,1,1],[4,0,1],[2,1,0]])
branch([1],T1,[[1]],A1)
branch([1,1],T2,id(2),G2)

print("break")

v=null(3)
for i=0 to 3
do
  for j=1 to 5
  do
    for k=-18 to -16
    do
      if k==-17 then v[3]={ break(k) } fi; 0
    od
  ; if j==2 then v[2]={ break(j) } fi; 0
  od
; if i==2 then v[1]={ break(i) } fi; 0
od; v

print("Cartan")
Cartan(G2)
Cartan(T3)
Cartan(A2E8G2)
setdefault(A2)
Cartan
Cartan(A1)
Cartan(T0)
setdefault(T3A2T2F4)
Cartan
Cartan([1],[1],A1)
setdefault(G2E6)
Cartan([1,0,1,0,0,0,0,0],[0,0,1,0,0,0,0,0])
Cartan([1,1,1,1],[0,1,2,2],A1B3T2)

print("Cartan_type")
Cartan_type([[1,2,2,3,2,1],[0,1,0,0,0,0]],E6)
setdefault(D4)
Cartan_type([[1,0,0,0],[0,0,1,0],[0,0,0,1],[1,2,1,1]])
Cartan_type(null(0,0),T1)

print("center")
center(A1)
center(A2)
setdefault(E8)
center
center(D6)
center(T3)

print("cent_roots")
cent_roots([1,2,3,4,4],A4)
setdefault(G2)
cent_roots([1,2,2])
cent_roots([1,3],A1)
cent_roots([[2,2,3,3,5],[1,2,3,3,4]],A4)
setdefault(F4)
cent_roots([[1,3,2,5,3],[1,3,2,1,4]])

print("centr_type")
centr_type([1,2,3,3],A3)
centr_type([[1,2,3,3]],A3)
setdefault(A4)
centr_type([1,2,3,4,4])
setdefault(A2)
centr_type([[1,2,2]])
centr_type([[1,3,2,5,3],[1,3,2,1,4]],F4)

print("collect")
collect(X[1,0]+X[0,1]+X[0,0],A2,[[1,0],[-1,1]],G2)
setdefault(A1)
collect(X[0]+2X[1]+X[2],A1,[[1]])
collect(branch([1,1],T2,id(2),G2),T2,id(2),G2)

print("n_cols")
n_cols([[]])
n_cols(null(2,0))
n_cols(null(0,3))
n_cols([[1,-100,2],[2,-1,0]])

print("n_comp")
n_comp(T0)
n_comp(T5)
n_comp(A3)
n_comp(T6A1B2C3D4E6E7E8G2A1A1)
setdefault(A1G2G2F4G2G2A1)
n_comp

print("contragr")
contragr([],T0)
contragr([1],T1)
contragr([1,0],A2)
setdefault(B3)
contragr([1,0,0])

print("decomp")
decomp(3X[0]+4X[1]+2X[2]+1X[3]+2X[4],A1)
setdefault(F4)
decomp(2X[1,0,0,0]+3X[0,0,0,1]+10X[0,0,0,0])
setdefault(B3G2)
decomp(X[1,0,0,0,0]+X[0,1,0,0,0]+X[0,0,0,1,0]+X[0,0,0,0,1]+5X[0,0,0,0,0])
decomp(0X[0],A1)
v_decomp(-X[0],A1)
decomp(0X[-1],A1)
decomp(dom_char([3,1],G2),G2)

print("dim")
dim([0,1,0],B3)
setdefault(E8)
dim([0,0,1,0,0,0,0,0])
setdefault(G2F4G2)
dim([0,0,0,0,0,1,1,0])
setdefault(G2F4G2T2)
dim([0,0,0,0,0,1,1,0,234,-19])

print("det_Cartan")
det_Cartan(T0)
det_Cartan(T3)
det_Cartan(A1)
det_Cartan(G2F4)
setdefault(E6)
det_Cartan

print("diag")
diag(null(0,0))
diag([[1]])
diag([[1,1]])
diag([[]])
diag([[1,2],[3,4],[5,6]])

print("diagram")
diagram(T0)
diagram(T3)
diagram(A1)
setdefault(B4)
diagram
diagram(A2D4F4G2)
setdefault(E8E8)
diagram

print("dim")
dim(A1)
dim(T5)
dim(E8)
dim(T1A1G2T1)
setdefault(T1A2E8E8)
dim

print("dominant")
dominant([0,0],G2)
dominant([-3,2],A1A1)
setdefault(F4E6)
dominant([-2,1,0,0,0,0,1,2,-1,0])
dominant([-1,-1,-1,-1,-1,-1,-10,100],T1E6T1)

print("dom_weights")
dom_weights([0],A1)
dom_weights([1],A1)
dom_weights([2],A1)
setdefault(E8)
dom_weights(1+null(7))
dom_weights([1],T1)

print("eval")
eval(print("eval"))

print("exponents")
exponents(A4)
setdefault(E8)
exponents
exponents(T0A3D4T5G2)

print("factor")
factor(0)
factor(-1)
factor(1)
factor(123456789)

print("fundam")
fundam(null(0,1),A1)
fundam([[1,0],[0,1],[1,1]],A2)
setdefault(B2)
fundam([[1,0],[1,1]])
fundam([[1,0],[0,1]],A1A1)
fundam(null(0,0),T0)
fundam([[1,1,0],[0,0,1]],D3T3)

print("high_root")
high_root(A1T1)
setdefault(E8)
high_root
high_root(F4)

print("i_Cartan")
i_Cartan(T0)
i_Cartan(T3)
i_Cartan(E7)
setdefault(F4)
i_Cartan
i_Cartan(D4G2B3)

print("inprod")
inprod([],[],T2)
setdefault(A2)
inprod([1,2],[2,1])
m=i_Cartan(F4)

for i=1 to 4 do for j=1 to 4 do print(inprod(m[i],m[j],F4)) od od
inprod([2,1,1,2],[3,2,2,1],G2A2T1)

print("length")
length([],T0)
length([],T4)
length([1],A1)
length([2,2],A4)
length([1,2],A2T2)
length([1,2,1,2,1,2],A2T2)
setdefault(C3)
length([1,2,3,1])
length([1,4,6,9],E7G2)

print("Lie_code")
Lie_code(T0)
Lie_code(D5)
setdefault(G2)
Lie_code

print("Lie_group")
Lie_group(0,0)
Lie_group(2,2)
Lie_group(3,2)
Lie_group(6,4)

print("Lie_rank")
Lie_rank(C5)
setdefault(E6)
Lie_rank
Lie_rank(T0)
Lie_rank(A2T2D4F4G2E8T100)

print("long_word")
long_word(T0)
long_word(T3)
long_word(A1)
setdefault(F4)
long_word
long_word(F4G2T3)

print("l_reduce")
l_reduce([2],[1,2,1],A2)
l_reduce([],[1,2,1],A2)
setdefault(A3A3)
l_reduce([1,4],[1,2,3,2,1,3,4,5,6,5,4,6])
l_reduce([1,5],[1,2,3,2,1,3,5,6,7,6,5,7],A7)
l_reduce([4,5],[1,2,3,6,3,4],A2G2C2T6)

print("lr_reduce")
lr_reduce([1],[1,2,3],[3],D3)
setdefault(G2A2T5F4A1)
lr_reduce([2,5,3,9],[2,5,3,9,1,2,4,2,7,6,4,9,8,3,4,7,2],[1])
lr_reduce([],[],[],T7)
lr_reduce([],[1,2,1],[],A2)

print("mat_vec")
mat_vec(null(0),1)
mat_vec(null(1),1)
mat_vec([1,2,3,4,5,6],1)
mat_vec([1,2,3,4,5,6],2)
mat_vec([1,2,3,4,5,6],3)
mat_vec([1,2,3,4,5,6],6)

print("dom_char")
dom_char([2],A1)
setdefault(F4)
dom_char([1,0,0,0])
dom_char([0,1,1,0],G2G2)
dom_char([1,1,1,1,1,1,1,1,1,1,1,1,1],A1A1A1A1A1A1A1A1A1A1A1A1A1)
dom_char([],[],T0)
setdefault(G2)
dom_char([2,2],[1,0])
dom_char([1,2,10],G2T1)
dom_char([1,2,10],[1,1,10],G2T1)

print("next_part")
next_part([3,1,1,1,0,0])
next_part([3])
next_part([1,1,1])
next_part([])

print("next_perm")
next_perm([])
next_perm([0])
next_perm([0,0,0])
next_perm([3,2,1])
next_perm([-10,4,4,10,-10])

print("norm")
norm([2,1],B2)
setdefault(B2)
norm([1,0])
norm([1,1],A1A1)
norm([1,1],G2T1)

print("n_pos_roots")
n_pos_roots(T0)
n_pos_roots(T3)
n_pos_roots(B3)
setdefault(E7)
n_pos_roots
n_pos_roots(C3D4)
n_pos_roots(C3D4T5)

print("orbit")
orbit(50,[1],[[2]])
orbit([1,0],[[0,1],[-1,0]])
orbit([0,1,0],[[0,-1,0],[1,0,0],[0,0,0],[0,0,0],[0,0,-1],[0,1,0]])

print("partitions")
partitions(4)
partitions(0)

print("plethysm")
plethysm([2],[1],A1)
plethysm([1,1],[1],A1)
setdefault(A2)
plethysm([2,1],[1,0])
plethysm([3,2],[1,0,0],A3)

print("pos_roots")
pos_roots(T0)
pos_roots(T3)
pos_roots(G2)
setdefault(E6)
pos_roots
pos_roots(A2B2)

print("p_tensor")
p_tensor(3,[1,0,0],A3)
setdefault(B2)
p_tensor(2,[1,1])
p_tensor(2,2X[0,0,0]+X[1,0,0],C3)
setdefault(G2)
p_tensor(2,2X[0,0]+X[1,0])
p_tensor(2,[1,1],A1A1)
setdefault(A1A2)
p_tensor(2,X[0,1,1]+X[1,0,1])

print("reduce")
reduce([1,2,1,2,1],A2)
reduce([],T1)
setdefault(G2F4T100)
reduce([1,3,2,4,1,3,2,4,2,3,1,4,2,3,6,5,6,5,1])

print("reflection")
reflection([1,0],A2)
setdefault(G2)
reflection([1,0])
reflection([1,0],A1A1)

print("n_rows")
n_rows([[]])
n_rows([[1,2,3],[4,5,6]])
n_rows(null(5,0))

print("r_reduce")
r_reduce([1,2,1],[2],A2)
r_reduce([1,2,1],[],A2)
setdefault(A3A3)
r_reduce([6,4,5,6,5,4,3,1,2,3,2,1],[4,1])
r_reduce([7,5,6,7,6,5,3,1,2,3,2,1],[1,5],A7)
r_reduce([4,3,6,3,2,1],[4,5],C2G2A2T6)

print("setdefault")
setdefault(B2A1T1A1)
setdefault

print("size")
size([])
size([1,2,3,4])

print("sort")
sort([])
sort([1])
sort([2,1])
sort([5,5,3,2,3,1,2,5])
sort([[]])
sort([[1,3,2],[1,3,2],[3,1,2],[2,1,3],[3,2,1],[1,3,2]])
sort(null(3,0))
sort(null(0,3))

print("spectrum")
spectrum(X[1],[1,3],A1)
setdefault(G2)
spectrum([1,1],[1,0,3])
spectrum([1,1],[1,0,3],A1A1)
spectrum([0,0,0,0],[6,2,8,3,19],F4)

print("sym_char")
sym_char([])
sym_char([1])
sym_char([1,1])
sym_char([2])
sym_char([3,2,1])
sym_char([1,0])
sym_char([3,1,1])

print("sym_orbit")
sym_orbit([])
sym_orbit([1,2,1,2])
sym_orbit([1,1,1,1,1,1,1,2])

print("sym_tensor")
sym_tensor(1,[],T0)
sym_tensor(1,[1,0,0,0,0,0,0,0],E8)
setdefault(F4)
sym_tensor(2,[0,1,0,0])
sym_tensor(3,[1,0],A2)
setdefault(C3)
sym_tensor(4,[0,1,0])
sym_tensor(2,2X[0,0]+X[0,1],G2)
setdefault(G2)
sym_tensor(2,2X[0,0]+X[0,1])
sym_tensor(2,X[1,0]+X[0,1],A1A1)

print("tensor")
tensor([],[],T0)
tensor([11],[18],A1)
setdefault(B4)
tensor([1,0,1,0],[0,0,1,2])
tensor([1,0],[0,1],G2)
setdefault(A3)
tensor([1,0,0],[0,1,0])
setdefault(F4)
tensor(10X[1,0,0,0]-5X[0,1,0,0],5X[0,0,0,0]+3X[0,0,0,1])
tensor(2X[0,0,1]+X[0,1,2],-X[0,0,3]+3X[1,0,1]+X[1,1,0],B3)
setdefault(C3)
tensor(2X[0,0,1]+X[0,1,2],-X[0,0,3]+3X[1,0,1]+X[1,1,0])
tensor(X[0,0]+2X[0,1],3X[0,0]+X[1,0]+0X[1,1],B2)
tensor(4X[0,0]+X[1,0],X[1,0]+X[0,1],A1A1)
tensor(0X[0,0]+2X[1,0]-X[0,1],X[1,1]-X[2,1]+X[1,1],A2)
tensor([1,1],[0,2],[1,0],G2)
setdefault(E6)
tensor([1,1,0,0,0,0],[0,0,0,1,0,0],[1,0,0,1,0,0])

print("v_decomp")
v_decomp(X[3,0,0]+2X[2,1,0]+X[2,0,1]+8X[2,0,0]+2X[1,2,0]+
X[1,1,1]-5X[1,1,0]+2X[1,0,2]+6X[1,0,1]-21X[1,0,0]+2X[0,2,1]+
4X[0,2,0]+12X[0,1,0]+2X[0,0,3]+2X[0,0,2]-11X[0,0,1]+16X[0,0,0],C3)
setdefault(A1)
v_decomp(-2X[2]+X[1]-2X[0])

print("vec_mat")
vec_mat(null(0,0))
vec_mat(null(2,0))
vec_mat(null(0,2))
vec_mat(null(2,2))
vec_mat([[1,2,3,4],[5,6,7,8],[9,10,11,12]])

print("void")
void(2*3)
void(void(void(void(void(2*3)))))
void(print("Dit was void"))

print("W_action")
W_action([1,0],[2],A2)
W_action([1,0],[1],A2)
setdefault(E7)
W_action([1,1,1,1,1,1,1],long_word)
W_action([2,345,863,-724],[4,2,3,1,3,1,3,2,4,3,1,2,3,2,4,2,4,2,3,1,3,2],F4)
W_action([-8,17,1000],[],T3)
W_action([],[],T0)
setdefault(G2A1T3)
W_action([0,1,1,-8,17,1000],[2,3,2,3,1,2,1,3])

print("W_action")
W_action([],T0)
W_action([],T3)
W_action([1,2,3,2],A1A2)
setdefault(T4D4E8F4)
W_action([2,3,4,3,2,1,2,3,5,6,7,8,9,10,11,12,
          11,10,9,8,7,8,9,8,7,6,13,14,15,16])
W_action([],A1B2C2D3T6)

print("W_orbit")
W_orbit([1,0],G2)
setdefault(A3)
W_orbit([0,1,0])
W_orbit([1,0,0,0],G2A2)
W_orbit([1,1,0,0],F4)
setdefault(E8)
W_orbit([0,0,0,0,0,0,0,1])
W_orbit([],T0)
W_orbit([56,-1000,0],T3)
setdefault(T2A2F4)
W_orbit([1,1,1,0,0,0,90,-81])

print("W_orbit_size")
W_orbit_size([1,0,0,0,0,0,0,0],E8)
setdefault(F4)
W_orbit_size([1,1,2,0])
W_orbit_size([1,0,0,0],G2A2)
W_orbit_size([],T0)
W_orbit_size([100,-92],T2)
setdefault(F4G2T2E8)
W_orbit_size([1,0,0,1,0,0,1,0,0,0,0,0,0,0,-89,1000])

print("W_order")
W_order(T0)
W_order(T3)
W_order(E7)
setdefault(D10)
W_order
W_order(G2A2T5E8E8E8E8E8E8)

print("W_rt_action")
W_rt_action([],[],T3)
W_rt_action([1,0],[2],A2)
setdefault(G2G2T3)
W_rt_action([1,100,-89,0],[1,3])

print("W_rt_orbit")
W_rt_orbit([1,0,0],A3)
W_rt_orbit([],T0)
setdefault(G2A1T3)
W_rt_orbit([-4,100,-91])

print("W_word")
W_word([-1,-2,-3,-4,-5],T5)
W_word([-1,-4,-1,-1,4,-5],E6)
setdefault(F4A1T2)
W_word([-3,9,12,100,-91,4,6])
W_word(id(3),T3)
W_word([[0,0,-1,1],[1,-1,-1,1],[1,-1,0,1],[1,0,-1,0]],D4)
setdefault(G2A3T1)
W_word([[1,-1,0,0,0,0],[3,-2,0,0,0,0],[0,0,0,0,-1,0],\
[0,0,-1,1,-1,0],[0,0,-1,0,0,0],[0,0,0,0,0,1]])
