#!/usr/bin/perl
use strict;
use warnings;

use Test::More  tests => 6;

use Data::BitStream;
my $v = Data::BitStream->new;

my $k;

my @a = 0 .. 257;
my $nitems = scalar @a;

$k = 0;
$v->put_arice($k, @a);
my $endk = $k;
isnt($endk, 0, "endk ($endk) isn't 0");

$v->rewind_for_read;
$k = 0;
my @values;
#@values = $v->get_arice($k, $nitems);
push @values, $v->get_arice($k,2)  for (1 .. $nitems/2);
is($k, $endk, "endk ($endk) matches");
is_deeply( \@values, \@a, "arice get array 0-257");

# Now test one at a time.
{
  $v->erase_for_write;

  $k = 0;
  foreach my $n (0 .. 257) {
    $v->put_arice($k, $n);
  }
  is($k, $endk, "endk ($endk) matches");

  $v->rewind_for_read;
  $k = 0;
  my @values;
  foreach my $n (0 .. 257) {
    push @values, $v->get_arice($k);
  }
  is_deeply( \@values, \@a, "arice single get/put 0-257");
  is($k, $endk, "endk ($endk) matches");
}