File Coverage

vector_test.pl
Criterion Covered Total %
statement 109 109 100.0
branch n/a
condition n/a
subroutine 3 3 100.0
pod n/a
total 112 112 100.0


line stmt bran cond sub pod time code
1             #!/usr/bin/perl
2             #
3             # Testing the Math::VectorReal module
4             #
5             # location of my libraries (I normally set this via PERL5LIB)
6             #use lib '/home/anthony/lib/perl5'; # location of my libraries
7 1     1   964 use FindBin;
  1         1234  
  1         52  
8 1     1   995 use lib "$FindBin::Bin/blib/lib";
  1         838  
  1         8  
9              
10 1     1   974 use Math::VectorReal qw( :all );
  1         3  
  1         3521  
11             #$Math::VectorReal::TRACE = 1; # Tracing of overload operators on/off
12              
13 1         11 print "Stringify output testing (MatrixReal default)\n";
14 1         7 print 'O->stringify => ', O->stringify;
15 1         20 print "\n";
16              
17 1         3 print "Changing default vector to string format\n";
18 1         3 print '$Math::VectorReal::FORMAT = "[ %g %g %g ]";', "\n";
19 1         2 $Math::VectorReal::FORMAT = "[ %g %g %g ]";
20 1         2 print "\n";
21              
22 1         3 print "Axis functions, assign to constants\n";
23 1         5 print ' $o = O => ', $o=O, "\n";
24 1         6 print ' $x = X => ', $x=X, "\n";
25 1         6 print ' $y = Y => ', $y=Y, "\n";
26 1         5 print ' $z = Z => ', $z=Z, "\n";
27 1         4 print "\n";
28              
29 1         3 print "String conversion operation testing\n";
30 1         2 print "Note: this include some automatic stringify concat ('.') operations\n";
31 1         4 print ' "$o" => ', "$o", "\n";
32 1         34 print '""$x =>', " $x", "\n";
33 1         5 print ' $y"" => ', "$y\n";
34 1         5 print ' $z => ', $z, "\n";
35 1         6 print 'vector(1,2,3) => ', vector(1,2,3), "\n";
36 1         4 print "\n";
37              
38 1         2 print "Addition\n";
39 1         12 $a = $x + Y;
40 1         6 print '$a = $x + Y => ', $a, "\n";
41 1         15 $a += $y ;
42 1         6 print '$a += $y => ', $a, "\n";
43 1         2 print "\n";
44              
45 1         2 print "Clone and Addition Tests\n";
46 1         2 $b = $y;
47 1         4 print '$b = $y => ', $b, "\n";
48 1         4 $b += Z;
49 1         5 print '$b += Z => ', $b, "\n";
50 1         4 print ' $y => ', $y, "\n";
51 1         3 print "\n";
52              
53 1         2 print "Subtraction\n";
54 1         4 $b -= $z ;
55 1         5 print '$b -= $z => ', $b, "\n";
56 1         4 $b = $b - Z ;
57 1         6 print '$b = $b - Z => ', $b, "\n";
58 1         2 print "\n";
59              
60              
61 1         2 print "Scalar Multiply\n";
62 1         5 $a = $z * 2;
63 1         5 print '$a = $z * 2 => ', $a, "\n";
64 1         5 $a = 2 * Z;
65 1         7 print '$a = 2 * Z => ', $a, "\n";
66 1         10 $a *= 2.5;
67 1         5 print '$a *= 2.5 => ', $a, "\n";
68 1         3 print "\n";
69              
70 1         2 print "Scalar Divide\n";
71 1         4 $a = $b / 2;
72 1         6 print '$a = $b / 2 => ', $a, "\n";
73 1         4 $a /= 3e14;
74 1         5 print '$a /= 3e14 => ', $a, "\n";
75 1         3 print "\n";
76              
77              
78 1         2 print "Unary - and more subtraction\n";
79 1         4 $b = -$b;
80 1         5 print '$b = -$b => ', $b, "\n";
81 1         3 $b -= Z;
82 1         5 print '$b -= Z => ', $b, "\n";
83 1         4 $b -= $z - -$y;
84 1         7 print '$b -= $z - -$y => ', $b, "\n";
85 1         5 $b = $o - $b;
86 1         6 print '$b = $o - $b => ', $b, "\n";
87 1         3 print "\n";
88              
89              
90 1         2 print "Cross Product\n";
91 1         12 $a = $b x X;
92 1         7 print '$a = $b x X => ', $a, "\n";
93 1         3 $a = $b x $y;
94 1         5 print '$a = $b x $y => ', $a, "\n";
95 1         5 $a = $b x $z;
96 1         5 print '$a = $b x $z => ', $a, "\n";
97 1         3 print "\n";
98              
99              
100 1         2 print "Dot Product / String Concatenation\n";
101 1         570 $a = Z . $b;
102 1         9 print '$a = Z . $b => ', $a, "\n";
103 1         3 $a = $b . -$y;
104 1         6 print '$a = $b . -$y => ', $a, "\n";
105 1         3 $s = $b . "!";
106 1         3 print '$s = $b . "!" => ', $s, "\n";
107 1         4 $s = "!" . $b;
108 1         2 print '$s = "!" . $b => ', $s, "\n";
109 1         3 $a .= $b;
110 1         3 print '$a .= $b => ', $a, "\n";
111 1         2 print "\n";
112              
113 1         1 print "Special Functions (length, norm, plane)\n";
114 1         5 print '$b->length => ', $b->length, "\n";
115 1         5 print '$b->norm => ', $b->norm, "\n";
116 1         9 @a = plane(X,Y,Z);
117 1         10 print '@a = plane(X,Y,Z) => ', "\n @a\n";
118 1         3 print "check output from plane() function\n";
119 1         3 $a = X+Y+Z;
120 1         7 print 'normal => ', $a->norm, "\n";
121 1         5 print 'distance => ', ($a/3)->length, "\n";
122 1         3 print "\n";
123              
124 1         2 print "Are defined constants still OK\n";
125 1         3 print '$o => ', $o, "\n";
126 1         4 print '$x => ', $x, "\n";
127 1         4 print '$y => ', $y, "\n";
128 1         4 print '$z => ', $z, "\n";
129 1         0 print "\n";
130