accumulator_factory_oo.t 711 B

123456789101112131415161718192021222324252627282930313233343536
  1. #!perl -T
  2. use utf8;
  3. use 5.006;
  4. use strict;
  5. use warnings;
  6. use Test::More;
  7. plan tests => 3;
  8. use Sidef;
  9. my $code = <<'EOT';
  10. class Accumulator(sum) {
  11. method add(num) {
  12. sum += num;
  13. }
  14. }
  15. EOT
  16. my $sidef = Sidef->new(name => 'accumulator_factory_oo');
  17. my $acc = $sidef->execute_code($code);
  18. my $obj = $acc->call(Sidef::Types::Number::Number->new(1));
  19. my $r1 = $obj->add(Sidef::Types::Number::Number->new(5));
  20. my $tmp = $acc->call(Sidef::Types::Number::Number->new(42)); # this should not reset any previous accumulator
  21. my $r2 = $obj->add(Sidef::Types::Number::Number->new(4));
  22. my $r3 = $tmp->add(Sidef::Types::Number::Number->new("3"));
  23. is("$r1", "6");
  24. is("$r2", "10");
  25. is("$r3", "45");