|
Lines 21-26
use Modern::Perl;
Link Here
|
| 21 |
|
21 |
|
| 22 |
use Test::More tests => 1; |
22 |
use Test::More tests => 1; |
| 23 |
|
23 |
|
|
|
24 |
use Benchmark; |
| 25 |
|
| 24 |
use Koha::IssuingRules; |
26 |
use Koha::IssuingRules; |
| 25 |
|
27 |
|
| 26 |
use t::lib::TestBuilder; |
28 |
use t::lib::TestBuilder; |
|
Lines 31-37
$schema->storage->txn_begin;
Link Here
|
| 31 |
my $builder = t::lib::TestBuilder->new; |
33 |
my $builder = t::lib::TestBuilder->new; |
| 32 |
|
34 |
|
| 33 |
subtest 'get_effective_issuing_rule' => sub { |
35 |
subtest 'get_effective_issuing_rule' => sub { |
| 34 |
plan tests => 1; |
36 |
plan tests => 2; |
| 35 |
|
37 |
|
| 36 |
my $patron = $builder->build({ source => 'Borrower' }); |
38 |
my $patron = $builder->build({ source => 'Borrower' }); |
| 37 |
my $item = $builder->build({ source => 'Item' }); |
39 |
my $item = $builder->build({ source => 'Item' }); |
|
Lines 158-163
subtest 'get_effective_issuing_rule' => sub {
Link Here
|
| 158 |
ok(_row_match($rule, $branchcode, $categorycode, $itemtype), 'When I attempt to get effective issuing rule,' |
160 |
ok(_row_match($rule, $branchcode, $categorycode, $itemtype), 'When I attempt to get effective issuing rule,' |
| 159 |
.' then the above one is returned.'); |
161 |
.' then the above one is returned.'); |
| 160 |
}; |
162 |
}; |
|
|
163 |
|
| 164 |
subtest 'Performance' => sub { |
| 165 |
plan tests => 4; |
| 166 |
|
| 167 |
my $worst_case = timethis(500, |
| 168 |
sub { Koha::IssuingRules->get_effective_issuing_rule({ |
| 169 |
branchcode => 'nonexistent', |
| 170 |
categorycode => 'nonexistent', |
| 171 |
itemtype => 'nonexistent', |
| 172 |
}); |
| 173 |
} |
| 174 |
); |
| 175 |
my $mid_case = timethis(500, |
| 176 |
sub { Koha::IssuingRules->get_effective_issuing_rule({ |
| 177 |
branchcode => $branchcode, |
| 178 |
categorycode => 'nonexistent', |
| 179 |
itemtype => 'nonexistent', |
| 180 |
}); |
| 181 |
} |
| 182 |
); |
| 183 |
my $sec_best_case = timethis(500, |
| 184 |
sub { Koha::IssuingRules->get_effective_issuing_rule({ |
| 185 |
branchcode => $branchcode, |
| 186 |
categorycode => $categorycode, |
| 187 |
itemtype => 'nonexistent', |
| 188 |
}); |
| 189 |
} |
| 190 |
); |
| 191 |
my $best_case = timethis(500, |
| 192 |
sub { Koha::IssuingRules->get_effective_issuing_rule({ |
| 193 |
branchcode => $branchcode, |
| 194 |
categorycode => $categorycode, |
| 195 |
itemtype => $itemtype, |
| 196 |
}); |
| 197 |
} |
| 198 |
); |
| 199 |
ok($worst_case, 'In worst case, get_effective_issuing_rule finds matching' |
| 200 |
.' rule '.sprintf('%.2f', $worst_case->iters/$worst_case->cpu_a) |
| 201 |
.' times per second.'); |
| 202 |
ok($mid_case, 'In mid case, get_effective_issuing_rule finds matching' |
| 203 |
.' rule '.sprintf('%.2f', $mid_case->iters/$mid_case->cpu_a) |
| 204 |
.' times per second.'); |
| 205 |
ok($sec_best_case, 'In second best case, get_effective_issuing_rule finds matching' |
| 206 |
.' rule '.sprintf('%.2f', $sec_best_case->iters/$sec_best_case->cpu_a) |
| 207 |
.' times per second.'); |
| 208 |
ok($best_case, 'In best case, get_effective_issuing_rule finds matching' |
| 209 |
.' rule '.sprintf('%.2f', $best_case->iters/$best_case->cpu_a) |
| 210 |
.' times per second.'); |
| 211 |
}; |
| 161 |
}; |
212 |
}; |
| 162 |
|
213 |
|
| 163 |
sub _row_match { |
214 |
sub _row_match { |
| 164 |
- |
|
|