File: ClutterPath.t

package info (click to toggle)
libclutter-perl 1.002-1
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 728 kB
  • ctags: 98
  • sloc: perl: 1,503; ansic: 48; makefile: 9
file content (70 lines) | stat: -rw-r--r-- 2,218 bytes parent folder | download
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
use Clutter::TestHelper tests => 29;

my $path = Clutter::Path->new();
isa_ok($path, 'Clutter::Path', 'is a path');

$path->add_move_to(10, 10);
is($path->get_n_nodes(), 1, 'one node');

$path->add_line_to(10, 20);
is($path->get_n_nodes(), 2, 'two nodes');

$path->add_close();
is($path->get_n_nodes(), 3, 'three nodes');

my $node;

$node = $path->get_node(0);
is($node->{type}, 'move-to', 'first node');
is(scalar @{$node->{points}}, 1, 'one point');
is_deeply($node->{points}, [ [ 10, 10 ] ], 'first node coordinates');

$node = $path->get_node(1);
is($node->{type}, 'line-to', 'second node');
is(scalar @{$node->{points}}, 1, 'one point');
is_deeply($node->{points}->[0], [ 10, 20 ], 'second node coordinates');

$node = $path->get_node(2);
is($node->{type}, 'close', 'third node');

$path->replace_node(2, [ 'line-to', [ { x => 20, y => 20 }, ] ]);
is($path->get_n_nodes(), 3, 'still three nodes');
$node = $path->get_node(2);
is($node->{type}, 'line-to', 'third node');
is_deeply($node->{points}->[0], [ 20, 20 ], 'third node coordinates');

$path->add_string("C 20,10 20,10 10,10");
is($path->get_n_nodes(), 4, 'four nodes');
$node = $path->get_node(3);
is($node->{type}, 'curve-to', 'fourth node');
my $points = $node->{points};
is(scalar @{$points}, 3, 'three knots');
is_deeply($points, [ [ 20, 10 ], [ 20, 10 ], [ 10, 10 ] ], 'curve points');

$path->add_close();
is($path->get_n_nodes(), 5, 'five nodes');
$node = $path->get_node(4);
is($node->{type}, 'close', 'last node');
is(scalar keys %{$node}, 2, 'still type and points');
is_deeply($node->{points}, [ ], 'empty points');

my $n = 0;
$path->foreach(sub { $n += 1; });
is($n, 5, 'foreach');

$path->clear(); ok(1);

$path = Clutter::Path->new('M 10,10 C 20,10 20,10 20,20');
is($path->get_n_nodes(), 2, 'new from description');
is($path->get_node(0)->{type}, 'move-to', 'node from description');

$path->clear(); ok(1);

$path = Clutter::Path->new(
    { type => 'move-to', points => [ [ 10, 10 ] ] },
    [ 'line-to', [ [ 10, 20 ] ] ],
    { type => 'line-to', points => [ [ 20, 20 ] ] },
    [ 'line-to', [ [ 10, 10 ] ] ],
);
is($path->get_n_nodes(), 4, 'new from nodes');
is_deeply($path->get_node(2)->{points}->[0], [ 20, 20 ], 'node from data');