1324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverpackage Test::ANTLR::Runtime::BitSet; 2324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 3324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruveruse Test::More; 4324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 5324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruveruse Moose; 6324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 7324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverBEGIN { extends 'My::Test::Class' } 8324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 9324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruversub constructor : Tests(3) { 10324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver my ($self) = @_; 11324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver my $class = $self->class; 12324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 13324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver can_ok $class, 'new'; 14324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver ok my $bs = $class->new(); 15324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver isa_ok $bs, $class; 16324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver} 17324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 18324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruversub constructor_bits : Tests(5) { 19324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver my ($self) = @_; 20324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver my $bs = $self->class->new({ bits => '001' }); 21324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver ok !$bs->member(0); 22324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver ok !$bs->member(1); 23324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver ok $bs->member(2); 24324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver ok !$bs->member(3); 25324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver is "$bs", '{2}'; 26324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver} 27324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 28324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruversub constructor_number : Tests(2) { 29324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver my ($self) = @_; 30324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver my $bs = $self->class->new({ number => 0x10 }); 31324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver ok $bs->member(4); 32324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver is "$bs", '{4}'; 33324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver} 34324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 35324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruversub constructor_words64 : Tests(2) { 36324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver my ($self) = @_; 37324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver my $bs = $self->class->new( 38324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver { words64 => [ '0x0000004000000001', '0x1000000000800000' ] }); 39324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver is "$bs", '{0,38,87,124}'; 40324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver} 41324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 42324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruversub of : Tests(2) { 43324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver my ($self) = @_; 44324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver my $bs = $self->class->of(0x10); 45324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver ok $bs->member(16) ; 46324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver is "$bs", '{16}' ; 47324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver} 48324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 49324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruversub operator_to_string : Tests(1) { 50324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver my ($self) = @_; 51324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver my $bs = $self->class->new(); 52324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver is "$bs", '{}'; 53324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver} 54324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 55324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruversub add : Tests(1) { 56324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver my ($self) = @_; 57324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver my $bs = $self->class->new(); 58324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver $bs->add(2); 59324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver $bs->add(7); 60324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver is "$bs", '{2,7}'; 61324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver} 62324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 63324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruversub remove : Tests(2) { 64324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver my ($self) = @_; 65324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver my $bs = $self->class->new(); 66324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver $bs->add(3); 67324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver $bs->add(12); 68324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver is "$bs", '{3,12}'; 69324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver $bs->remove(3); 70324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver is "$bs", '{12}'; 71324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver} 72324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 73324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruversub operator_or : Tests(1) { 74324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver my ($self) = @_; 75324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver my $bs = $self->class->of(4); 76324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver $bs |= $self->class->of(5); 77324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver is "$bs", '{4,5}'; 78324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver} 79324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 80324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverno Moose; 81324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver__PACKAGE__->meta->make_immutable(inline_constructor => 0); 82324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver1; 83