| package Test::ANTLR::Runtime::BitSet; |
| |
| use Test::More; |
| |
| use Moose; |
| |
| BEGIN { extends 'My::Test::Class' } |
| |
| sub constructor : Tests(3) { |
| my ($self) = @_; |
| my $class = $self->class; |
| |
| can_ok $class, 'new'; |
| ok my $bs = $class->new(); |
| isa_ok $bs, $class; |
| } |
| |
| sub constructor_bits : Tests(5) { |
| my ($self) = @_; |
| my $bs = $self->class->new({ bits => '001' }); |
| ok !$bs->member(0); |
| ok !$bs->member(1); |
| ok $bs->member(2); |
| ok !$bs->member(3); |
| is "$bs", '{2}'; |
| } |
| |
| sub constructor_number : Tests(2) { |
| my ($self) = @_; |
| my $bs = $self->class->new({ number => 0x10 }); |
| ok $bs->member(4); |
| is "$bs", '{4}'; |
| } |
| |
| sub constructor_words64 : Tests(2) { |
| my ($self) = @_; |
| my $bs = $self->class->new( |
| { words64 => [ '0x0000004000000001', '0x1000000000800000' ] }); |
| is "$bs", '{0,38,87,124}'; |
| } |
| |
| sub of : Tests(2) { |
| my ($self) = @_; |
| my $bs = $self->class->of(0x10); |
| ok $bs->member(16) ; |
| is "$bs", '{16}' ; |
| } |
| |
| sub operator_to_string : Tests(1) { |
| my ($self) = @_; |
| my $bs = $self->class->new(); |
| is "$bs", '{}'; |
| } |
| |
| sub add : Tests(1) { |
| my ($self) = @_; |
| my $bs = $self->class->new(); |
| $bs->add(2); |
| $bs->add(7); |
| is "$bs", '{2,7}'; |
| } |
| |
| sub remove : Tests(2) { |
| my ($self) = @_; |
| my $bs = $self->class->new(); |
| $bs->add(3); |
| $bs->add(12); |
| is "$bs", '{3,12}'; |
| $bs->remove(3); |
| is "$bs", '{12}'; |
| } |
| |
| sub operator_or : Tests(1) { |
| my ($self) = @_; |
| my $bs = $self->class->of(4); |
| $bs |= $self->class->of(5); |
| is "$bs", '{4,5}'; |
| } |
| |
| no Moose; |
| __PACKAGE__->meta->make_immutable(inline_constructor => 0); |
| 1; |