File: imagend.t

package info (click to toggle)
pdl 1%3A2.4.7%2Bdfsg-2
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 10,128 kB
  • ctags: 5,821
  • sloc: perl: 26,328; fortran: 13,113; ansic: 9,378; makefile: 71; sh: 50; sed: 6
file content (90 lines) | stat: -rw-r--r-- 1,839 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
use PDL;
use PDL::ImageND;
use PDL::NiceSlice;

kill INT,$$ if $ENV{UNDER_DEBUGGER}; # Useful for debugging.

sub ok {
        my $no = shift ;
        my $result = shift ;
        print "not " unless $result ;
        print "ok $no\n" ;
}

print "1..7\n";

# Right answer

my $ans = pdl(
 [ 3,  9, 15, 21, 27, 33, 39, 45, 51, 27],
 [ 3,  9, 15, 21, 27, 33, 39, 45, 51, 27],
 [ 3,  9, 15, 21, 27, 33, 39, 45, 51, 27]
);

my $a = xvals zeroes 10,3;

my $b = pdl [1,2],[2,1];

my $c=convolve ($a, $b);

ok( 1, int(at(sum($c-$ans)))==0 );


$a = zeroes(6,6); 

my $ta;

($ta = $a(4,:)) .= 1;
($ta = $a(5,:)) .= 1;
($ta = $a(1,2)) .= 1;
($ta = $a(0,4)) .= 1;
($ta = $a(2,0)) .= 1;

$b = pdl( [-1,0],[0,1] );


my $ans_e = pdl(
	     [ 0,  0,  1, -1,  0,  0],
	     [-1,  0,  0, -1,  0,  0],
	     [ 0,  1,  0, -1,  0,  0],
	     [ 0,  0,  0, -1,  0,  0],
	     [ 1,  0,  0, -1,  0,  0],
	     [ 0,  0,  0, -1,  0,  0]
	);
$c = convolveND($a,$b,{m=>'d',b=>'e'});
ok( 2, all( abs($c - $ans_e) < 1e-15 ) );

$c = convolveND($a,$b,{m=>'f',b=>'e'});
ok( 3, all( abs($c - $ans_e) < 1e-15 ) );

$ans_p = pdl(
	     [ 0,  0,  1, -1,  0,  1],
	     [-1,  0,  0, -1,  0,  1],
	     [ 0,  1,  0, -1,  0,  1],
	     [ 0,  0,  0, -1,  0,  0],
	     [ 1,  0,  0, -1,  0,  1],
	     [ 0, -1,  0, -1,  0,  1]
	);
$c = convolveND($a,$b,{m=>'d',b=>'p'});
ok( 4, all( abs($c - $ans_p) < 1e-15 ) );

$c = convolveND($a,$b,{m=>'f',b=>'p'});
ok( 5, all( abs($c - $ans_p) < 1e-15 ) );


$ans_t = pdl(
	     [ 0,  0,  1, -1,  0,  1],
	     [-1,  0,  0, -1,  0,  1],
	     [ 0,  1,  0, -1,  0,  1],
	     [ 0,  0,  0, -1,  0,  1],
	     [ 1,  0,  0, -1,  0,  1],
	     [ 0,  0,  0,  0,  1,  1]
	);
$c = convolveND($a,$b,{m=>'d',b=>'t'});
ok( 6, all( abs($c - $ans_t) < 1e-15 ) );

$c = convolveND($a,$b,{m=>'f',b=>'t'});
ok( 7, all( abs($c - $ans_t) < 1e-15 ) );