[feedgnuplot] 26/42: expanded test suite

Dima Kogan dkogan-guest at alioth.debian.org
Sun Oct 20 08:04:07 UTC 2013


This is an automated email from the git hooks/post-receive script.

dkogan-guest pushed a commit to tag v1.25
in repository feedgnuplot.

commit deaa85dbd3f518cd0fb15cd356afa634bb546502
Author: Dima Kogan <dima at secretsauce.net>
Date:   Sat Oct 19 01:01:59 2013 -0700

    expanded test suite
---
 t/plots.t |  729 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 718 insertions(+), 11 deletions(-)

diff --git a/t/plots.t b/t/plots.t
index e510306..907a919 100644
--- a/t/plots.t
+++ b/t/plots.t
@@ -1,5 +1,11 @@
 #!/usr/bin/perl
 
+# This tests various features of feedgnuplot. Note that the tests look at actual
+# plot output using the 'dumb' terminal, so any changes in gnuplot itself that
+# change the way the output looks will show up as test failures. Hopefully this
+# will not be a big deal
+
+
 # require a threaded perl for my tests. This block lifted verbatim from the cpantesters wiki
 BEGIN {
   use Config;
@@ -9,12 +15,14 @@ BEGIN {
   }
 }
 
-use Test::More tests => 1;
+use Test::More tests => 16;
 use Test::Script::Run 'is_script_output';
 use File::Temp 'tempfile';
 
-
-tryplot( [], 'seq 5', <<'EOF' );
+tryplot( testname => 'basic line plot',
+         cmd      => 'seq 5',
+         options  => [qw(--lines --points)],
+         refplot  => <<'EOF' );
 

 
     5 ++--+---+--+---+---+---+--+--+A
@@ -57,32 +65,731 @@ tryplot( [], 'seq 5', <<'EOF' );
 
 EOF
 
+tryplot( testname => 'basic lines-only plot',
+         cmd      => 'seq 5',
+         options  => [qw(--lines)],
+         refplot  => <<'EOF' );
+

 
+    5 ++--+---+--+---+---+---+--+--+*
+      +   +   +  +   +   +   +  +  *+
+      |                           * |
+      |                           * |
+  4.5 ++                         * ++
+      |                         *   |
+      |                        *    |
+      |                        *    |
+      |                       *     |
+    4 ++                     *     ++
+      |                     *       |
+      |                    *        |
+      |                   *         |
+  3.5 ++                 *         ++
+      |                 *           |
+      |                *            |
+      |               *             |
+    3 ++             *             ++
+      |             *               |
+      |            *                |
+      |            *                |
+      |           *                 |
+  2.5 ++         *                 ++
+      |         *                   |
+      |         *                   |
+      |        *                    |
+    2 ++      *                    ++
+      |      *                      |
+      |     *                       |
+      |    *                        |
+      |   *                         |
+  1.5 ++  *                        ++
+      |  *                          |
+      | *                           |
+      +*  +   +  +   +   +   +  +   +
+    1 *+--+---+--+---+---+---+--+--++
+      1  1.5  2 2.5  3  3.5  4 4.5  5
 
+EOF
+
+tryplot( testname => 'basic points-only plot',
+         cmd      => 'seq 5',
+         options  => [qw(--points)],
+         refplot  => <<'EOF' );
+

 
+    5 ++--+---+--+---+---+---+--+--+A
+      +   +   +  +   +   +   +  +   +
+      |                             |
+      |                             |
+  4.5 ++                           ++
+      |                             |
+      |                             |
+      |                             |
+      |                             |
+    4 ++                     A     ++
+      |                             |
+      |                             |
+      |                             |
+  3.5 ++                           ++
+      |                             |
+      |                             |
+      |                             |
+    3 ++             A             ++
+      |                             |
+      |                             |
+      |                             |
+      |                             |
+  2.5 ++                           ++
+      |                             |
+      |                             |
+      |                             |
+    2 ++      A                    ++
+      |                             |
+      |                             |
+      |                             |
+      |                             |
+  1.5 ++                           ++
+      |                             |
+      |                             |
+      +   +   +  +   +   +   +  +   +
+    1 A+--+---+--+---+---+---+--+--++
+      1  1.5  2 2.5  3  3.5  4 4.5  5
+
+EOF
 
+tryplot( testname => 'basic line plot with bounds',
+         cmd      => 'seq 5',
+         options  => [qw(--lines --points),
+                      qw(--xmin -10.5 --xmax 4.5 --ymin -0.5 --ymax 5.5)],
+         refplot  => <<'EOF' );
+

+
+    ++---+----+---+---+---+----+---++
+    |+   +    +   +   +   +    +   +|
+    |                               |
+  5 ++                             ++
+    |                               |
+    |                               |
+    |                               *
+    |                               *
+    |                              *|
+  4 ++                             A+
+    |                              *|
+    |                             * |
+    |                             * |
+    |                             * |
+    |                            *  |
+  3 ++                           A ++
+    |                            *  |
+    |                           *   |
+    |                           *   |
+    |                          *    |
+  2 ++                         A   ++
+    |                          *    |
+    |                         *     |
+    |                         *     |
+    |                         *     |
+    |                        *      |
+  1 ++                       A     ++
+    |                               |
+    |                               |
+    |                               |
+    |                               |
+    |                               |
+  0 ++                             ++
+    |                               |
+    |+   +    +   +   +   +    +   +|
+    ++---+----+---+---+---+----+---++
+    -10 -8   -6  -4  -2   0    2   4
+
+EOF
+
+tryplot( testname => 'basic line plot with bounds, square aspect ratio',
+         cmd      => 'seq 5',
+         options  => [qw(--lines --points),
+                      qw(--xmin -10.5 --xmax 4.5 --ymin -0.5 --ymax 5.5 --square)],
+         refplot  => <<'EOF' );
+

+
+
+
+
+
+
+
+
+
+
+
+
+    ++---+----+---+---+---+----+---++
+  5 ++   +    +   +   +   +    +   ++
+    |                               *
+  4 ++                             A+
+    |                             * |
+  3 ++                           A ++
+    |                           *   |
+    |                           *   |
+  2 ++                         A   ++
+    |                         *     |
+  1 ++                       A     ++
+    |                               |
+  0 ++   +    +   +   +   +    +   ++
+    ++---+----+---+---+---+----+---++
+    -10 -8   -6  -4  -2   0    2   4
+
+
+
+
+
+
+
+
+
+
+
+
+EOF
+
+tryplot( testname => 'lines on both axes with labels, legends, titles',
+         cmd      => q{seq 5 | awk '{print 2*$1, $1*$1}'},
+         options  => [qw(--lines --points),
+                      '--legend', '0', 'data 0',
+                      '--title', "Test plot",
+                      qw(--y2 1 --y2label y2 --xlabel x --ylabel y --y2max 30)],
+         refplot  => <<'EOF' );
+

+              Test plot
+                                  y2
+  10 ++-+---+--+--+--+---+--+-+A 30
+     +  +   +  +  +  +   +  + *+
+     |           data 0 **A****|
+     |                       * |
+   9 ++                     *  |
+     |                     *  +B 25
+     |                     *  #|
+     |                    *   #|
+   8 ++                  A   # |
+     |                  *    # |
+     |                 *    #  |
+     |                *    #  ++ 20
+   7 ++               *    #   |
+     |               *    #    |
+     |              *     #    |
+     |             *     B     |
+   6 ++           A     #     ++ 15
+     |           *     #       |
+     |           *    #        |
+     |          *     #        |
+     |         *     #         |
+   5 ++        *    #          |
+     |        *    #          ++ 10
+     |       *    B            |
+     |       *   #             |
+   4 ++     A   #              |
+     |     *   #               |
+     |    *   #               ++ 5
+     |   *   #                 |
+   3 ++  * #B                  |
+     |  *##                    |
+     | *#                      |
+     B* +   +  +  +  +   +  +  +
+   2 A+-+---+--+--+--+---+--+-++ 0
+     1 1.5  2 2.5 3 3.5  4 4.5 5
+                  x
+
+EOF
+
+tryplot( testname => 'lines on both axes with labels, legends, titles; different styles',
+         cmd      => q{seq 5 | awk '{print 2*$1, $1*$1}'},
+         options  => ['--legend', '0', 'data 0',
+                      '--title', "Test plot",
+                      qw(--y2 1 --y2label y2 --xlabel x --ylabel y --y2max 30),
+                      '--curvestyle', '0', 'with lines',
+                      '--curvestyle', '1', 'with points ps 3 pt 7'],
+         refplot  => <<'EOF' );
+

+              Test plot
+                                  y2
+  10 ++-+---+--+--+--+---+--+-+* 30
+     +  +   +  +  +  +   +  + *+
+     |           data 0 *******|
+     |                       * |
+   9 ++                     *  |
+     |                     *  +G 25
+     |                     *   |
+     |                    *    |
+   8 ++                  *     |
+     |                  *      |
+     |                 *       |
+     |                *       ++ 20
+   7 ++               *        |
+     |               *         |
+     |              *          |
+     |             *     G     |
+   6 ++           *           ++ 15
+     |           *             |
+     |           *             |
+     |          *              |
+     |         *               |
+   5 ++        *               |
+     |        *               ++ 10
+     |       *    G            |
+     |       *                 |
+   4 ++     *                  |
+     |     *                   |
+     |    *                   ++ 5
+     |   *                     |
+   3 ++  *  G                  |
+     |  *                      |
+     | *                       |
+     G* +   +  +  +  +   +  +  +
+   2 *+-+---+--+--+--+---+--+-++ 0
+     1 1.5  2 2.5 3 3.5  4 4.5 5
+                  x
+
+EOF
+
+tryplot( testname => 'domain plot',
+         cmd      => q{seq 5 | awk '{print 2*$1, $1*$1}'},
+         options  => [qw(--lines --points), '--domain'],
+         refplot  => <<'EOF' );
+

+
+  25 ++--+---+---+---+--+---+---+--+A
+     +   +   +   +   +  +   +   +  *+
+     |                             *|
+     |                            * |
+     |                            * |
+     |                           *  |
+     |                          *   |
+  20 ++                         *  ++
+     |                         *    |
+     |                        *     |
+     |                        *     |
+     |                       *      |
+     |                       *      |
+     |                      A       |
+  15 ++                    *       ++
+     |                    *         |
+     |                    *         |
+     |                   *          |
+     |                  *           |
+     |                 *            |
+     |                 *            |
+  10 ++               *            ++
+     |               A              |
+     |              *               |
+     |             *                |
+     |           **                 |
+     |          *                   |
+     |         *                    |
+   5 ++       *                    ++
+     |       A                      |
+     |     **                       |
+     |   **                         |
+     |  *                           |
+     |**                            |
+     A   +   +   +   +  +   +   +   +
+   0 ++--+---+---+---+--+---+---+--++
+     2   3   4   5   6  7   8   9   10
+
+EOF
+
+tryplot( testname => 'dataid plot',
+         cmd      => q{seq 5 | awk '{print 2*$1, $1*$1}'},
+         options  => [qw(--lines --points),
+                      qw(--dataid --autolegend)],
+         refplot  => <<'EOF' );
+

 
+  25 ++--+---+---+---+--+---+---+--+E
+     +   +   +   +   +  +   +   +   +
+     |                     2 **A*** |
+     |                     4 ##B### |
+     |                     6 $$C$$$ |
+     |                     8 %%D%%% |
+     |                    10 @@E@@@ |
+  20 ++                            ++
+     |                              |
+     |                              |
+     |                              |
+     |                              |
+     |                              |
+     |                      D       |
+  15 ++                            ++
+     |                              |
+     |                              |
+     |                              |
+     |                              |
+     |                              |
+     |                              |
+  10 ++                            ++
+     |               C              |
+     |                              |
+     |                              |
+     |                              |
+     |                              |
+     |                              |
+   5 ++                            ++
+     |       B                      |
+     |                              |
+     |                              |
+     |                              |
+     |                              |
+     A   +   +   +   +  +   +   +   +
+   0 ++--+---+---+---+--+---+---+--++
+     1  1.5  2  2.5  3 3.5  4  4.5  5
+
+EOF
+
+tryplot( testname => '3d spiral with bounds, labels',
+         cmd      => q{seq 50 | awk '{print 2*cos($1/5), sin($1/5), $1}'},
+         options  => [qw(--lines --points),
+                      qw(--3d --domain --zmin -5 --zmax 45 --zlabel z),
+                     '--extracmds', 'set view 60,30'],
+         refplot  => <<'EOF' );
+

+
+
+
+
+
+
+               A*AA*AA*
+              *        A*
+                         AA
+                           A
+                            A
+                             *
+        +                    A
+    40  |+    A*A*AAA*       A
+        |    A        A*A*   A
+    30  |+ AA             A A
+        |  A               A
+ z  20  |+ AA             A A
+        |   AA*AA*A*AA*A*A   A
+    10  |+       +-          A
+        |       -+ ---       A
+     0  |+     -+   + ---
+        |     -+        +---
+        |   --+           + ---
+        |  -++                +- 1
+        | -+                   0.8
+        |-+                   0.6
+        ++---              - 0.4
+      -21.5 +---          -+ 0.2
+          -1+ + +--      +-0.2
+           -0.50+ +---  +-0.4
+                0.51++-+-0.6
+                   1.5+-1.8
+                      2
+
+
+
+
+
+EOF
+
+tryplot( testname => '3d spiral with bounds, labels, square xy aspect ratio',
+         cmd      => q{seq 50 | awk '{print 2*cos($1/5), sin($1/5), $1}'},
+         options  => [qw(--lines --points),
+                      qw(--3d --domain --zmin -5 --zmax 45 --zlabel z),
+                     '--extracmds', 'set view 60,30', '--square_xy'],
+         refplot  => <<'EOF' );
+

+
+
+
+
+
+
+
+             *AA*
+                 AA*A
+                     A
+          +           A*A
+      40  |+             A
+          |               A
+      30  |+               A
+          | AAAAA*          A
+   z  20  |+AA    AA        A
+          |  AA*    A*A    AA
+          |     AA*AAA*AA*A
+      10  |+             AAA
+       0  |+                A
+          |                 A
+          |    +-           A
+          |   -++---
+          | --+    +---
+          |-++        +---
+          +++--           ---
+         -21.5+---          +- 1
+             -10.5---      + 0.6
+                  0 +---  +  024
+                   0.5  ++-0.4
+                      1.521.8
+
+
+
+
+
+
+
+
+EOF
+
+tryplot( testname => 'Histogram plot',
+         cmd      => q{seq 50 | awk '{print $1*$1}'},
+         options  => [qw(--lines --points),
+                      qw(--histo 0 --binwidth 50 --ymin 0 --curvestyleall), 'with boxes'],
+         refplot  => <<'EOF' );
+

+
+    4 ++--**---+---+---+---+----+--++
+      +   **   +   +   +   +    +   +
+      |   **                        |
+      |   **                        |
+  3.5 ++  **                       ++
+      |   **                        |
+      |   **                        |
+      |   **                        |
+      |   **                        |
+    3 ++  **                       ++
+      |   **                        |
+      |   **                        |
+      |   **                        |
+  2.5 ++  **                       ++
+      |   **                        |
+      |   **                        |
+      |   **                        |
+    2 ++  ****                     ++
+      |   ****                      |
+      |   ****                      |
+      |   ****                      |
+      |   ****                      |
+  1.5 ++  ****                     ++
+      |   ****                      |
+      |   ****                      |
+      |   ****                      |
+    1 ++  ***********************  ++
+      |   ***********************   |
+      |   ***********************   |
+      |   ***********************   |
+      |   ***********************   |
+  0.5 ++  ***********************  ++
+      |   ***********************   |
+      |   ***********************   |
+      +   ***********************   +
+    0 ++--***********************--++
+    -500  0   500 100015002000 25003000
+
+EOF
+
+tryplot( testname => 'Cumulative histogram',
+         cmd      => q{seq 50 | awk '{print $1*$1}'},
+         options  => [qw(--lines --points),
+                      qw(--histo 0 --histstyle cum --binwidth 50 --ymin 0 --curvestyleall), 'with boxes'],
+         refplot  => <<'EOF' );
+

+
+  50 ++--+----+---+----+---+---**--++
+     +   +    +   +    +   +  ***   +
+     |                       ****   |
+     |                     ******   |
+     |                    *******   |
+     |                    *******   |
+     |                  *********   |
+  40 ++                **********  ++
+     |                ***********   |
+     |               ************   |
+     |              *************   |
+     |             **************   |
+     |             **************   |
+     |            ***************   |
+  30 ++          ****************  ++
+     |          *****************   |
+     |          *****************   |
+     |         ******************   |
+     |         ******************   |
+     |        *******************   |
+     |       ********************   |
+  20 ++      ********************  ++
+     |      *********************   |
+     |      *********************   |
+     |     **********************   |
+     |     **********************   |
+     |     **********************   |
+     |    ***********************   |
+  10 ++   ***********************  ++
+     |    ***********************   |
+     |    ***********************   |
+     |    ***********************   |
+     |   ************************   |
+     |   ************************   |
+     +   ************************   +
+   0 ++--************************--++
+   -500  0   500 1000 15002000 25003000
+
+EOF
+
+tryplot( testname => 'Circles',
+         cmd      => q{seq 5 | awk '{print $1,$1,$1/10}'},
+         options  => [qw(--circles --domain)],
+         refplot  => <<'EOF' );
+

+
+    5 ++-+--+--+--+--+--+--+--*--+-**
+      +  +  +  +  +  +  +  +  *  + *+
+      |                       *    *|
+      |                       ******|
+  4.5 ++                           ++
+      |                             |
+      |                             |
+      |                    *        |
+      |                  ****       |
+    4 ++                 *  **     ++
+      |                  *  *       |
+      |                  ****       |
+      |                             |
+  3.5 ++                           ++
+      |                             |
+      |              *              |
+      |            ****             |
+    3 ++           *  **           ++
+      |            *  *             |
+      |            ****             |
+      |                             |
+      |                             |
+  2.5 ++                           ++
+      |                             |
+      |                             |
+      |        *                    |
+    2 ++      ***                  ++
+      |       **                    |
+      |                             |
+      |                             |
+      |                             |
+  1.5 ++                           ++
+      |                             |
+      |                             |
+      +  *  +  +  +  +  +  +  +  +  +
+    1 ++***-+--+--+--+--+--+--+--+-++
+     0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5
+
+EOF
+
+tryplot( testname => 'Error bars (using extraValuesPerPoint)',
+         cmd      => q{seq 5 | awk '{print $1,$1,$1/10}'},
+         options  => [qw(--domain),
+                      qw(--extraValuesPerPoint 1 --curvestyle 0), 'with errorbars'],
+         refplot  => <<'EOF' );
+

+
+  5.5 ++--+---+--+---+---+---+--+--***
+      +   +   +  +   +   +   +  +   *
+      |                             *
+    5 ++                           +A
+      |                             *
+      |                             *
+      |                             *
+  4.5 ++                           ***
+      |                     ***     |
+      |                      *      |
+    4 ++                     A     ++
+      |                      *      |
+      |                      *      |
+      |                     ***     |
+  3.5 ++                           ++
+      |             ***             |
+      |              *              |
+    3 ++             A             ++
+      |              *              |
+      |              *              |
+      |             ***             |
+  2.5 ++                           ++
+      |                             |
+      |      ***                    |
+    2 ++      A                    ++
+      |       *                     |
+      |      ***                    |
+      |                             |
+  1.5 ++                           ++
+      |                             |
+      |                             |
+    1*A*                           ++
+     ***                            |
+      |                             |
+      +   +   +  +   +   +   +  +   +
+  0.5 ++--+---+--+---+---+---+--+--++
+      1  1.5  2 2.5  3  3.5  4 4.5  5
+
+EOF
+
+tryplot( testname => 'Monotonicity check',
+         cmd      => q{seq 10 | awk '{print (NR-1)%5,NR}'},
+         options  => [qw(--lines --points --domain --monotonic)],
+         refplot  => <<'EOF' );
+

+
+   10 ++--+---+--+---+---+---+--+--+A
+      +   +   +  +   +   +   +  +  *+
+      |                           * |
+      |                           * |
+  9.5 ++                         * ++
+      |                         *   |
+      |                        *    |
+      |                        *    |
+      |                       *     |
+    9 ++                     A     ++
+      |                     *       |
+      |                    *        |
+      |                   *         |
+  8.5 ++                 *         ++
+      |                 *           |
+      |                *            |
+      |               *             |
+    8 ++             A             ++
+      |             *               |
+      |            *                |
+      |            *                |
+      |           *                 |
+  7.5 ++         *                 ++
+      |         *                   |
+      |         *                   |
+      |        *                    |
+    7 ++      A                    ++
+      |      *                      |
+      |     *                       |
+      |    *                        |
+      |   *                         |
+  6.5 ++  *                        ++
+      |  *                          |
+      | *                           |
+      +*  +   +  +   +   +   +  +   +
+    6 A+--+---+--+---+---+---+--+--++
+      0  0.5  1 1.5  2  2.5  3 3.5  4
+
+EOF
 
 sub tryplot
 {
-  my $extraoptions = shift;
-  my $incmd        = shift;
-  my $ref          = shift;
+  my %args = @_;
 
   my ($fh, $input_filename) = tempfile( UNLINK => 1);
-  open IN, '-|', $incmd;
+  open IN, '-|', $args{cmd};
   print $fh <IN>;
   close IN;
   close $fh;
 
-  my @options = (qw(--lines --points --exit),
+  my @options = ('--exit',
                  '--extracmds', 'unset grid',
                  '--terminal', 'dumb 40,40',
                  $input_filename);
 
-  unshift @options, @$extraoptions;
+  unshift @options, @{$args{options}};
 
   is_script_output( 'feedgnuplot', \@options,
-                    [$ref =~ /(.*)\n/g], [],
-                    'basic line plot');
+                    [$args{refplot} =~ /(.*)\n/g], [],
+                    $args{testname});
 }

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/feedgnuplot.git



More information about the debian-science-commits mailing list