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 )