1use strict; 2use warnings; 3 4use Test::More tests => 10; 5use Prima::sys::Test qw(noX11); 6 7# noX11 test 8 9my $i = Prima::Image-> create( 10 width => 4, 11 height => 2, 12 preserveType => 0, 13 conversion => ict::None, 14 type => im::RGB, 15); 16 17my $rgb = "mamAmyLarAmuMamAmyLalAru"; 18$i-> data( $rgb); 19is( $i-> data, $rgb, "import" ); 20$i-> data( $rgb . reverse $rgb); 21is( $i-> data, $rgb, "bounds overset" ); 22$i-> data( 'M'); 23substr( $rgb, 0, 1) = 'M'; 24is( $i-> data, $rgb, "bounds underset" ); 25 26my $tester; 27$tester = sub { 28 my ( $s1, $s2, $format, $test_name) = @_; 29 my $new = $rgb; 30 eval "\$new =~ s/$s1/$s2/g"; 31 $i-> set( 32 data => $new, 33 type => $format, 34 ); 35 is( $i-> data, $rgb, $test_name ); 36}; 37 38# 4 39$tester->('([A-Z])([a-z])([a-z])', '$3$2$1', im::Color|im::bpp24|im::fmtBGR, "im::fmtBGR" ); 40$tester->('([A-Z])', '0$1', im::Color|im::bpp32|im::fmtIRGB, "im::fmtIRGB" ); 41$tester->('([A-Z][a-z][a-z])', '${1}0', im::Color|im::bpp32|im::fmtRGBI, "im::fmtRGBI" ); 42$tester->('([A-Z])([a-z])([a-z])', '0$3$2$1', im::Color|im::bpp32|im::fmtIBGR, "im::fmtIBGR" ); 43$tester->('([A-Z])([a-z])([a-z])', '$3$2${1}0', im::Color|im::bpp32|im::fmtBGRI, "im::fmtBGRI" ); 44# 9 45$i-> set( 46 data => "\0\1\2\3\4\5\6\7", 47 type => im::bpp8, 48 palette => [ map { ord } split('', $rgb)], 49); 50is( $i-> data, "\0\1\2\3\4\5\6\7", "im::bpp8+palette" ); 51# 10 52$i-> set( 53 data => "\4\5\6\7\0\1\2\3", 54 reverse => 1, 55 type => im::bpp8, 56); 57is( $i-> data, "\0\1\2\3\4\5\6\7", "reverse" ); 58