File Coverage

blib/lib/CXC/Astro/Regions/CFITSIO/Types.pm
Criterion Covered Total %
statement 23 23 100.0
branch n/a
condition n/a
subroutine 8 8 100.0
pod n/a
total 31 31 100.0


line stmt bran cond sub pod time code
1             package CXC::Astro::Regions::CFITSIO::Types;
2              
3             # ABSTRACT: Types for CFITSIO Regions
4              
5 3     3   217631 use v5.20;
  3         10  
6 3     3   10 use warnings;
  3         14  
  3         211  
7              
8             our $VERSION = '0.03';
9              
10 3     3   1736 use Types::Standard qw( Enum Bool Num Str StrMatch );
  3         376445  
  3         32  
11 3     3   11524 use Types::Common::Numeric qw( PositiveNum );
  3         82725  
  3         35  
12              
13 3     3   4570 use Type::Utils -all;
  3         19698  
  3         39  
14 3     3   9194 use Regexp::Common qw( number );
  3         8285  
  3         13  
15             use Type::Library
16 3         25 -base,
17             -extends => [ 'Types::Common::Numeric', 'Types::Common::String', 'Types::Standard' ],
18             -declare => qw(
19             Angle
20             Length
21             PositionAsNum
22             Vertex
23             XPosition
24             YPosition
25 3     3   9930 );
  3         6  
26              
27 3     3   275488 use CXC::Types::Astro::Coords 'Sexagesimal';
  3         988477  
  3         36  
28              
29             declare PositionAsNum,
30             as StrMatch [qr{\A (?: $RE{num}{real} [d]?) \z}x];
31              
32              
33             declare XPosition, as PositionAsNum | Sexagesimal [ -ra, -sep ];
34             declare YPosition, as PositionAsNum | Sexagesimal [ -dec, -sep ];
35             declare Vertex, as Tuple [ XPosition, YPosition ];
36              
37             declare Length, as StrMatch [qr/\A$RE{num}{real} (['"dp])?\z/x];
38              
39             declare Angle, as Num;
40              
41             1;
42              
43             #
44             # This file is part of CXC-Astro-Regions
45             #
46             # This software is Copyright (c) 2023 by Smithsonian Astrophysical Observatory.
47             #
48             # This is free software, licensed under:
49             #
50             # The GNU General Public License, Version 3, June 2007
51             #
52              
53             __END__