03-mod.t 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #!perl -T
  2. use 5.006;
  3. use strict;
  4. use warnings;
  5. use Test::More;
  6. plan tests => 4;
  7. use Sidef;
  8. my $o = 'Sidef::Types::Number::Number';
  9. my $m = $o->new(5);
  10. my $x = ($o->new(100)->fac->add($m));
  11. my $y = $o->new(23);
  12. {
  13. my $r = $o->new('1234.45')->mod($o->new('43.56'));
  14. is($r->as_frac->get_value, '1477/100');
  15. }
  16. {
  17. my $r = $o->new('-1234.45')->mod($o->new('-43.56'));
  18. is($r->as_frac->get_value, '-1477/100');
  19. }
  20. {
  21. my $r = $o->new('1234.45')->mod($o->new('-43.56'));
  22. is($r->as_frac->get_value, '-2879/100');
  23. }
  24. {
  25. my $r = $o->new('-1234.45')->mod($o->new('43.56'));
  26. is($r->as_frac->get_value, '2879/100');
  27. }
  28. ##################################################
  29. # extreme
  30. #~ my $inf = $o->inf;
  31. #~ my $nan = $o->nan;
  32. #~ my $ninf = $o->ninf;
  33. #~ is($x->mod($inf), $x);
  34. #~ is($x->neg->mod($inf), $inf);
  35. #~ is($x->mod($ninf), $ninf);
  36. #~ is($x->neg->mod($ninf), $x->neg);
  37. #~ is($inf->mod($x), $nan);
  38. #~ is($ninf->mod($x), $nan);
  39. #~ is($inf->mod($inf), $nan);
  40. #~ is($ninf->mod($inf), $nan);
  41. #~ is($ninf->mod($ninf), $nan);
  42. #~ is($inf->mod($nan), $nan);
  43. #~ is($ninf->mod($nan), $nan);
  44. #~ is($nan->mod($inf), $nan);
  45. #~ is($x->mod($o->new(0)), $nan);
  46. #~ is($y->neg->mod($o->new(0)), $nan);