File Coverage

blib/lib/PGPLOTx/Constants.pm
Criterion Covered Total %
statement 23 23 100.0
branch 4 6 66.6
condition 8 12 66.6
subroutine 8 8 100.0
pod n/a
total 43 49 87.7


line stmt bran cond sub pod time code
1             package PGPLOTx::Constants;
2              
3             # ABSTRACT: Constants for use with PGPLOT
4              
5 2     2   322450 use strict;
  2         4  
  2         72  
6 2     2   8 use warnings;
  2         4  
  2         115  
7              
8 2     2   1035 use CXC::Exporter::Util ':all';
  2         17763  
  2         291  
9 2     2   387 use parent 'Exporter::Tiny';
  2         222  
  2         13  
10              
11             #<<<
12             our $VERSION = '0.01'; # TRIAL
13             #>>>
14              
15             install_CONSTANTS( {
16              
17             ARROWHEAD_FILL_STYLES => {
18             SOLID => 1,
19             FILLED => 1,
20             OUTLINE => 2,
21             },
22              
23             COLORS => {
24             BACKGROUND => 0,
25             BLACK => 0,
26             FOREGROUND => 1,
27             WHITE => 1,
28             RED => 2,
29             GREEN => 3,
30             BLUE => 4,
31             CYAN => 5,
32             MAGENTA => 6,
33             YELLOW => 7,
34             ORANGE => 8,
35             GREEN_YELLOW => 9,
36             GREEN_CYAN => 10,
37             BLUE_CYAN => 11,
38             BLUE_MAGENTA => 12,
39             RED_MAGENTA => 13,
40             DARK_GRAY => 14,
41             LIGHT_GRAY => 15,
42             DARKGRAY => 14,
43             LIGHTGRAY => 15,
44             },
45              
46             AREA_FILL_STYLES => {
47             SOLID => 1,
48             FILLED => 1,
49             OUTLINE => 2,
50             HATCHED => 3,
51             CROSS_HATCHED => 4,
52             },
53              
54             FONTS => {
55             NORMAL => 1,
56             ROMAN => 2,
57             ITALIC => 3,
58             SCRIPT => 4,
59             },
60              
61             LINE_STYLES => {
62             FULL => 1,
63             DASHED => 2,
64             DOT_DASH_DOT_DASH => 3,
65             DOTTED => 4,
66             DASH_DOT_DOT_DOT => 5,
67             },
68              
69             PLOT_UNITS => {
70             NORMALIZED_DEVICE_COORDINATES => 0,
71             NDC => 0,
72             INCHES => 1,
73             IN => 1,
74             MILLIMETERS => 2,
75             MM => 2,
76             PIXELS => 3,
77             WORLD_COORDINATES => 4,
78             WC => 4,
79             },
80              
81             SYMBOLS => {
82             DOICOSAGON => -22,
83             HENICOSAGON => -21,
84             ICOSAGON => -20,
85             ENNEADECAGON => -19,
86             OCTADECAGON => -18,
87             HEPTADECAGON => -17,
88             HEXADECAGON => -16,
89             PENTADECAGON => -15,
90             TETRADECAGON => -14,
91             TRIDECAGON => -13,
92             DODECAGON => -12,
93             HENDECAGON => -11,
94             DECAGON => -10,
95             NONAGON => -9,
96             ENNEAGON => -9,
97             OCTAGON => -8,
98             HEPTAGON => -7,
99             HEXAGON => -6,
100             PENTAGON => -5,
101             DIAMOND => -4,
102             TRIANGLE => -3,
103             DOT0 => -2,
104             DOT1 => -1,
105             OPENSQUARE => 0,
106             DOT => 1,
107             PLUS => 2,
108             ASTERISK => 3,
109             OPENCIRCLE => 4,
110             CROSS => 5,
111             OPENSQUARE1 => 6,
112             OPENTRIANGLE => 7,
113             EARTH => 8,
114             SUN => 9,
115             CURVESQUARE => 10,
116             OPENDIAMOND => 11,
117             OPENSTAR => 12,
118             TRIANGLE1 => 13,
119             OPENPLUS => 14,
120             STARDAVID => 15,
121             SQUARE => 16,
122             CIRCLE => 17,
123             STAR => 18,
124             BIGOSQUARE => 19,
125             OPENCIRC0 => 20,
126             OPENCIRC1 => 21,
127             OPENCIRC2 => 22,
128             OPENCIRC3 => 23,
129             OPENCIRC4 => 24,
130             OPENCIRC5 => 25,
131             OPENCIRC6 => 26,
132             OPENCIRC7 => 27,
133             BACKARROW => 28,
134             FWDARROW => 29,
135             UPARROW => 30,
136             DOWNARROW => 31
137             },
138              
139             XAXIS_OPTIONS => { map { ( "XAXIS_OPT_$_" => $_ ) } qw( A B C G I L N P M T S ) },
140              
141             YAXIS_OPTIONS => { map { ( "YAXIS_OPT_$_" => $_ ) } qw( A B C G I L N P M T S V ) },
142             } );
143              
144             install_EXPORTS;
145              
146             sub _exporter_validate_opts {
147 22     22   351446 my ( $class, $globals ) = @_;
148              
149 22 50 66     156 if ( exists $globals->{as} && !ref $globals->{as} && $globals->{as} eq 'lc' ) {
      66        
150 20     20   943 $globals->{as} = sub { lc $_[0] }
151 1         5 }
152             }
153              
154             sub _exporter_merge_opts {
155 11     11   156597 my ( $class, $tag_opts, $global_opts, @stuff ) = @_;
156              
157 11 100       59 $tag_opts = {} unless ref( $tag_opts ) eq q(HASH);
158 11 50 66     49 if ( exists $tag_opts->{-as} && !ref $tag_opts->{-as} && $tag_opts->{-as} eq 'lc' ) {
      66        
159 1     20   2 $tag_opts = { %{$tag_opts}, -as => sub { lc $_[0] } };
  1         16  
  20         860  
160             }
161              
162 11         53 $class->SUPER::_exporter_merge_opts( $tag_opts, $global_opts, @stuff );
163             }
164              
165             1;
166              
167             #
168             # This file is part of PGPLOTx-Constants
169             #
170             # This software is Copyright (c) 2026 by Smithsonian Astrophysical Observatory.
171             #
172             # This is free software, licensed under:
173             #
174             # The GNU General Public License, Version 3, June 2007
175             #
176              
177             __END__