1package Test::ANTLR::Runtime::BitSet; 2 3use Test::More; 4 5use Moose; 6 7BEGIN { extends 'My::Test::Class' } 8 9sub constructor : Tests(3) { 10 my ($self) = @_; 11 my $class = $self->class; 12 13 can_ok $class, 'new'; 14 ok my $bs = $class->new(); 15 isa_ok $bs, $class; 16} 17 18sub constructor_bits : Tests(5) { 19 my ($self) = @_; 20 my $bs = $self->class->new({ bits => '001' }); 21 ok !$bs->member(0); 22 ok !$bs->member(1); 23 ok $bs->member(2); 24 ok !$bs->member(3); 25 is "$bs", '{2}'; 26} 27 28sub constructor_number : Tests(2) { 29 my ($self) = @_; 30 my $bs = $self->class->new({ number => 0x10 }); 31 ok $bs->member(4); 32 is "$bs", '{4}'; 33} 34 35sub constructor_words64 : Tests(2) { 36 my ($self) = @_; 37 my $bs = $self->class->new( 38 { words64 => [ '0x0000004000000001', '0x1000000000800000' ] }); 39 is "$bs", '{0,38,87,124}'; 40} 41 42sub of : Tests(2) { 43 my ($self) = @_; 44 my $bs = $self->class->of(0x10); 45 ok $bs->member(16) ; 46 is "$bs", '{16}' ; 47} 48 49sub operator_to_string : Tests(1) { 50 my ($self) = @_; 51 my $bs = $self->class->new(); 52 is "$bs", '{}'; 53} 54 55sub add : Tests(1) { 56 my ($self) = @_; 57 my $bs = $self->class->new(); 58 $bs->add(2); 59 $bs->add(7); 60 is "$bs", '{2,7}'; 61} 62 63sub remove : Tests(2) { 64 my ($self) = @_; 65 my $bs = $self->class->new(); 66 $bs->add(3); 67 $bs->add(12); 68 is "$bs", '{3,12}'; 69 $bs->remove(3); 70 is "$bs", '{12}'; 71} 72 73sub operator_or : Tests(1) { 74 my ($self) = @_; 75 my $bs = $self->class->of(4); 76 $bs |= $self->class->of(5); 77 is "$bs", '{4,5}'; 78} 79 80no Moose; 81__PACKAGE__->meta->make_immutable(inline_constructor => 0); 821; 83