aboutsummaryrefslogtreecommitdiff
path: root/Perl/t
diff options
context:
space:
mode:
Diffstat (limited to 'Perl/t')
-rw-r--r--Perl/t/Text.t57
-rw-r--r--Perl/t/Transformations.t96
2 files changed, 153 insertions, 0 deletions
diff --git a/Perl/t/Text.t b/Perl/t/Text.t
new file mode 100644
index 0000000..5494e85
--- /dev/null
+++ b/Perl/t/Text.t
@@ -0,0 +1,57 @@
+#!/usr/bin/perl -w
+
+#
+# $Id: Text.t,v 1.1 2003-10-02 09:14:23 mertz Exp $
+# Author: Christophe Mertz
+#
+
+# testing all the import
+
+BEGIN {
+ if (!eval q{
+ use Test::More qw(no_plan);
+ 1;
+ }) {
+ print "# tests only work properly with installed Test::More module\n";
+ print "1..1\n";
+ print "ok 1\n";
+ exit;
+ }
+ if (!eval q{
+ use Tk::Zinc;
+ 1;
+ }) {
+ print "unable to load Tk::Zinc";
+ print "1..1\n";
+ print "ok 1\n";
+ exit;
+ }
+ if (!eval q{
+ MainWindow->new();
+ 1;
+ }) {
+ print "# tests only work properly when it is possible to create a mainwindow in your env\n";
+ print "1..1\n";
+ print "ok 1\n";
+ exit;
+ }
+}
+
+
+$mw = MainWindow->new();
+$zinc = $mw->Zinc(-width => 100, -height => 100);
+
+like ($zinc, qr/^Tk::Zinc=HASH/ , "zinc has been created");
+
+# following a mail in zinc@tls.cena.fr (23 sept 2003) by A. Lemort
+# we verify that the -width attribute of text items is converted as an integer
+my $text = $zinc->add('text', 1, -position => [10,10], -text => "text");
+
+&ok ($zinc->itemconfigure($text, -width => 10.1) or 1, "setting width to 10.1");
+&is ($zinc->itemcget($text, -width), 10, "width attribute was converted to an integer");
+&ok ($zinc->itemconfigure($text, -width => 9.9) or 1, "setting width to 10.9");
+&is ($zinc->itemcget($text, -width), 9, "width attribute was converted to lower integer");
+
+
+
+diag("############## text items test");
diff --git a/Perl/t/Transformations.t b/Perl/t/Transformations.t
new file mode 100644
index 0000000..8a86d8a
--- /dev/null
+++ b/Perl/t/Transformations.t
@@ -0,0 +1,96 @@
+#!/usr/bin/perl -w
+
+#
+# $Id: Transformations.t,v 1.1 2003-10-02 09:14:23 mertz Exp $
+# Author: Christophe Mertz
+#
+
+# testing all the import
+
+BEGIN {
+ if (!eval q{
+ use Test::More qw(no_plan);
+ 1;
+ }) {
+ print "# tests only work properly with installed Test::More module\n";
+ print "1..1\n";
+ print "ok 1\n";
+ exit;
+ }
+ if (!eval q{
+ use Tk::Zinc;
+ 1;
+ }) {
+ print "unable to load Tk::Zinc";
+ print "1..1\n";
+ print "ok 1\n";
+ exit;
+ }
+ if (!eval q{
+ MainWindow->new();
+ 1;
+ }) {
+ print "# tests only work properly when it is possible to create a mainwindow in your env\n";
+ print "1..1\n";
+ print "ok 1\n";
+ exit;
+ }
+}
+
+
+$mw = MainWindow->new();
+$zinc = $mw->Zinc(-width => 100, -height => 100);
+
+like ($zinc, qr/^Tk::Zinc=HASH/ , "zinc has been created");
+
+my $g = $zinc->add('group',1);
+$zinc->scale($g,2,2);
+my $rect1 = $zinc->add('rectangle', $g, [10,10,40,40]);
+
+# todo : add a test for the to-come method to get a transform!
+
+is_deeply([ $zinc->coords($rect1) ],
+ [ [10,10], [40, 40] ],
+ "coords are not modified by the group transform!");
+
+is_deeply([
+ $zinc->transform(1, $g, [100, 100, 300, 500] )
+ ],
+ [ 50, 50, 150, 250 ],
+ "transform from window coordinates to group");
+
+is_deeply([
+ $zinc->transform($g, 1, [$zinc->coords($rect1)] )
+ ],
+ [ [20,20], [80, 80] ],
+ "transform to window coordinates");
+
+
+# question suggested by D. Etienne (30 sept 2003):
+# is it possible to get the window coordinate of a transformed item?
+# the answer is of course yes and it is verified here.
+my $rect2 = $zinc->add('rectangle', 1, [10,10,40,40]);
+
+# applying a transform to the rectangle:
+$zinc->scale($rect2, 2,2);
+
+# todo : add a test for the to-come method to get a transform!
+
+is_deeply([ $zinc->coords($rect1) ],
+ [ [10,10], [40, 40] ],
+ "coords are not modified by the item transform!");
+
+is_deeply([
+ $zinc->transform(1, $rect2, [100, 100, 300, 500] )
+ ],
+ [ 50, 50, 150, 250 ],
+ "transform window coordinates with same transform than rect2 ");
+is_deeply([
+ $zinc->transform($rect2, 1, [$zinc->coords($rect2)] )
+ ],
+ [ [20,20], [80, 80] ],
+ "transform rect2 coordinates to window coordinates");
+
+
+
+diag("############## transformations test");