use strict; use warnings; use Test::More qw(no_plan); use Games::Nonogram::Line; my $line = Games::Nonogram::Line->new( size => 4 ); # default is all clear ok $line->as_string eq '____'; # bit on $line->on(1); ok $line->as_string eq 'X___'; # bit off $line->off(2); ok $line->as_string eq 'X.__'; # bit on with ->value $line->value(3 => 1); ok $line->as_string eq 'X.X_'; # get value ok $line->value(4) == -1; # clear bit (to ambiguous state) $line->clear(3); ok $line->as_string eq 'X.__'; # clear without arg is all clear $line->clear; ok $line->as_string eq '____'; # multiple bits on $line->on( from => 2, to => 4 ); ok $line->as_string eq '_XXX'; # multiple bits off $line->off( from => 3, length => 2 ); ok $line->as_string eq '_X..';