#!/usr/bin/perl use strict; use warnings; use Test::More; use lib qw(t/lib); use BitStreamTest; my $bstr = '0000101110111011011011000110011000010011011011101011010111000010000010011010001001000010011011111011111000110100111101001000111101000000100101010011111011100100001000110001000001010000000100101010011110110101101111101101101111100001110000001111101000001001111100110001111001100001001110010111001001011000011000000111111100100111000111001001000010111011010001000111010011011011110001101111000111110'; my $blen = length($bstr); my @implementations = impl_list; plan tests => scalar @implementations * (1+4+5); foreach my $type (@implementations) { my $s = new_stream($type); my $v = new_stream($type); $s->put_string($bstr); is($s->len, $blen); { $v->erase_for_write; $v->put_stream($s); # verify s wasn't changed is($s->len, $blen); is($s->to_string, $bstr); # verify s got copied is($v->len, $blen); is($v->to_string, $bstr); } { $v->erase_for_write; $v->write(17, 84100); $v->put_stream($s); # verify s wasn't changed is($s->len, $blen); is($s->to_string, $bstr); # verify s got copied is($v->len, $blen + 17); $v->rewind_for_read; is ($v->read(17), 84100); is($v->read_string($blen), $bstr, "$type put_stream success"); } }