#!perl -w -I..
#______________________________________________________________________
# Symbolic algebra.
# PhilipRBrenan@yahoo.com, 2004, Perl License.
#______________________________________________________________________
use Math::Algebra::Symbols;
use Test::Simple tests => 21;
($a, $b, $x, $y, $i, $one) = symbols(qw(a b x y i 1));
ok( ($i ^ 1) == 0);
ok( ($i ^ $i) == 1);
ok( $i x 1 == 1);
ok( $i x $i == 0);
ok( $one x 1 == 0);
ok( !$i == $i);
ok( abs $i == 1);
ok( re $i == 0);
ok( im $i == 1);
ok( re $one == 1);
ok( im $one == 0);
ok( ($i+1) x ($i-1) == 2);
ok( (1+$i ^ -1+$i) == 0);
ok( ~($x+$y) == ~$x + ~$y);
ok( ~($x*$y) == ~$x * ~$y);
ok( ~($x**2) == (~$x)** 2);
ok( abs($x+$y*$i) == sqrt($x**2+$y**2));
ok( !($x+$y*$i) == ($x+$y*$i) / sqrt($x**2+$y**2));
ok( abs(!($x+$y*$i)) == sqrt($x**2/($x**2+$y**2)+$y**2/($x**2+$y**2)));
ok( abs(($a+$i*sqrt(1-$a*$a))*($b+$i*sqrt(1-$b*$b))) == 1);
ok( abs($a+$i*$b)*abs($x+$i*$y) == abs(($a+$i*$b)*($x+$i*$y)));
syntax highlighted by Code2HTML, v. 0.9.1