File Coverage

blib/lib/Math/DifferenceSet/Planar/Schema/Result/DifferenceSet.pm
Criterion Covered Total %
statement 16 16 100.0
branch 2 2 100.0
condition n/a
subroutine 4 4 100.0
pod 1 1 100.0
total 23 23 100.0


line stmt bran cond sub pod time code
1             package Math::DifferenceSet::Planar::Schema::Result::DifferenceSet;
2              
3             =head1 NAME
4              
5             Math::DifferenceSet::Planar::Schema::Result::DifferenceSet -
6             planar difference set database backend result class definition.
7              
8             =cut
9              
10 6     6   3345 use strict;
  6         16  
  6         162  
11 6     6   31 use warnings;
  6         12  
  6         145  
12              
13 6     6   28 use base 'DBIx::Class::Core';
  6         11  
  6         1805  
14              
15             =head1 VERSION
16              
17             This documentation refers to version 0.017 of
18             Math::DifferenceSet::Planar::Schema::Result::DifferenceSet.
19              
20             =cut
21              
22             our $VERSION = '0.017';
23              
24             =head1 TABLE: C
25              
26             =cut
27              
28             __PACKAGE__->table("difference_set");
29              
30             =head1 ACCESSORS
31              
32             =head2 order
33              
34             data_type: 'integer'
35             is_nullable: 0
36              
37             =head2 base
38              
39             data_type: 'integer'
40             is_nullable: 0
41              
42             =head2 exponent
43              
44             data_type: 'integer'
45             is_nullable: 0
46              
47             =head2 modulus
48              
49             data_type: 'integer'
50             is_nullable: 0
51              
52             =head2 n_planes
53              
54             data_type: 'integer'
55             is_nullable: 0
56              
57             =head2 deltas
58              
59             data_type: 'blob'
60             is_nullable: 0
61              
62             =cut
63              
64             __PACKAGE__->add_columns(
65             "order_",
66             { accessor => "order", data_type => "integer", is_nullable => 0 },
67             "base",
68             { data_type => "integer", is_nullable => 0 },
69             "exponent",
70             { data_type => "integer", is_nullable => 0 },
71             "modulus",
72             { data_type => "integer", is_nullable => 0 },
73             "n_planes",
74             { data_type => "integer", is_nullable => 0 },
75             "deltas",
76             { data_type => "blob", is_nullable => 0 },
77             );
78              
79             =head2 elements
80              
81             I is a wrapper for I generating an array of elements
82             values from the deltas raw data. It returns an array reference if
83             deltas is defined, otherwise undef.
84              
85             Unpacking deltas raw data into elements is part of the resultset API,
86             as different implementations may employ different packing mechanisms.
87              
88             =cut
89              
90             sub elements {
91 62     62 1 19517 my ($this) = @_;
92 62         978 my $deltas = $this->deltas;
93 62 100       688 return undef if !defined $deltas;
94 61         106 my $sum = 0;
95 61         250 my @elements = map { $sum += $_ } 0, 1, unpack 'w*', $deltas;
  1556         2113  
96 61         331 return \@elements;
97             }
98              
99             =head1 PRIMARY KEY
100              
101             =over 4
102              
103             =item * L
104              
105             =back
106              
107             =cut
108              
109             __PACKAGE__->set_primary_key("order_");
110              
111             1;
112              
113             =head1 SEE ALSO
114              
115             =over 4
116              
117             =item *
118              
119             L - schema class.
120              
121             =back
122              
123             =head1 AUTHOR
124              
125             Martin Becker, Ebecker-cpan-mp I cozap.comE
126              
127             =head1 COPYRIGHT AND LICENSE
128              
129             Copyright (c) 2019-2022 by Martin Becker, Blaubeuren.
130              
131             This library is free software; you can distribute it and/or modify it
132             under the terms of the Artistic License 2.0 (see the LICENSE file).
133              
134             =head1 DISCLAIMER OF WARRANTY
135              
136             This library is distributed in the hope that it will be useful, but
137             without any warranty; without even the implied warranty of merchantability
138             or fitness for a particular purpose.
139              
140             =cut