Acme-BeyondPerl-ToSQL
view release on metacpan or search on metacpan
lib/Acme/BeyondPerl/ToSQL.pm view on Meta::CPAN
}
my $OPs = {
'+' => sub { shift->add(@_) },
'-' => sub { shift->sub(@_) },
'*' => sub { shift->mul(@_) },
'/' => sub { shift->div(@_) },
'%' => sub { shift->mod(@_) },
'**' => sub { shift->pow(@_) },
'log' => sub { shift->log(@_) },
'sqrt' => sub { shift->sqrt(@_)},
'abs' => sub { shift->abs(@_) },
'cos' => sub { shift->cos(@_) },
'sin' => sub { shift->sin(@_) },
'exp' => sub { shift->exp(@_) },
'atan2'=> sub { shift->atan2(@_) },
'<<' => sub { shift->lshift(@_) },
'>>' => sub { shift->rshift(@_) },
'&' => sub { shift->and(@_) },
'|' => sub { shift->or(@_) },
lib/Acme/BeyondPerl/ToSQL.pm view on Meta::CPAN
sub pow {
my ($x, $y) = _get_args(@_);
_calc_by_rdbm("SELECT pow($x, $y)");
}
sub abs {
my ($x) = _get_args(@_);
_calc_by_rdbm("SELECT abs($x)");
}
sub log {
my ($x) = _get_args(@_);
_calc_by_rdbm("SELECT ln($x)");
}
sub exp {
my ($x) = _get_args(@_);
_calc_by_rdbm("SELECT exp($x)");
}
sub sqrt {
t/01-base.t view on Meta::CPAN
# is(17 ^ 5, 20, 'XOR');
is(0 | 1, 1, '|');
is(0 | 0, 0, '|');
is(!1, '');
is(1 . 4, "14");
is(1 x 4, "1111");
like(123, qr/^\d+$/, "regexp");
=pod
ok(abs(log(10) - 2.302) < 0.01);
ok(abs(sqrt(2) - 1.414) < 0.01);
ok(abs(exp(3) - 20.085) < 0.01);
ok(sin(3.141592) < 0.01);
ok(abs(cos(3.141592) + 1) < 0.01);
ok(abs(atan2(1,1) * 4 - 3.1415) < 0.01);
=cut
( run in 1.031 second using v1.01-cache-2.11-cpan-49f99fa48dc )