"Testing arg"

clear

T = arg(-1)
check(prefixform(T)="(* -1 pi)")

T = arg(-1.0)
check(prefixform(T)="-3.14159")

check(arg(2 + 3 i) == arg(polar(2 + 3 i)))
check(arg(2 - 3 i) == arg(polar(2 - 3 i)))
check(arg(-2 + 3 i) == arg(polar(-2 + 3 i)))
check(arg(-2 - 3 i) == arg(polar(-2 - 3 i)))

check(arg(2 + 3 i) == arg(clock(2 + 3 i)))
check(arg(2 - 3 i) == arg(clock(2 - 3 i)))
check(arg(-2 + 3 i) == arg(clock(-2 + 3 i)))
check(arg(-2 - 3 i) == arg(clock(-2 - 3 i)))

-- use prefixform to compare floating point numbers

check(prefixform(arg(2.0 + 3.0 i)) == prefixform(arg(polar(2.0 + 3.0 i))))
check(prefixform(arg(2.0 - 3.0 i)) == prefixform(arg(polar(2.0 - 3.0 i))))
check(prefixform(arg(-2.0 + 3.0 i)) == prefixform(arg(polar(-2.0 + 3.0 i))))
check(prefixform(arg(-2.0 - 3.0 i)) == prefixform(arg(polar(-2.0 - 3.0 i))))

check(prefixform(arg(2.0 + 3.0 i)) == prefixform(arg(clock(2.0 + 3.0 i))))
check(prefixform(arg(2.0 - 3.0 i)) == prefixform(arg(clock(2.0 - 3.0 i))))
check(prefixform(arg(-2.0 + 3.0 i)) == prefixform(arg(clock(-2.0 + 3.0 i))))
check(prefixform(arg(-2.0 - 3.0 i)) == prefixform(arg(clock(-2.0 - 3.0 i))))

T = arg(1+i)
check(T = 1/4*pi)
T = arg(1-i)
check(T = -1/4*pi)
T = arg(-1+i)
check(T = 3/4*pi)
T = arg(-1-i)
check(T = -3/4*pi)
T = arg(a)
check(T = 0)
T = arg(a*exp(b+i*pi/5))
check(T = 1/5*pi)
T = arg(-1)
check(T = -pi)
T = arg(a)
check(T = 0)
T = arg(-a)
check(T = -pi)
T = arg(-exp(i*pi/3))
check(T = -2/3*pi)
T = arg(-i)
check(T = -1/2*pi)
T = arg((a+b*i)/(c+d*i))
check(T = arctan(b,a)-arctan(d,c))
