<s> import os <EOL> from PIL import Image <EOL> from pynes import image , sprite <EOL> from pynes . tests import SpriteTestCase <EOL> class ImageTest ( SpriteTestCase ) : <EOL> def __init__ ( self , testname ) : <EOL> SpriteTestCase . __init__ ( self , testname ) <EOL> def setUp ( self ) : <EOL> self . mario1 = [ <EOL> [ <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:1> ] , <EOL> [ <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:1> , <NUM_LIT:1> , <NUM_LIT:1> ] , <EOL> [ <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:1> , <NUM_LIT:1> , <NUM_LIT:1> , <NUM_LIT:1> ] , <EOL> [ <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:1> , <NUM_LIT:1> , <NUM_LIT:1> , <NUM_LIT:1> , <NUM_LIT:1> ] , <EOL> [ <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:3> , <NUM_LIT:3> , <NUM_LIT:3> , <NUM_LIT:2> , <NUM_LIT:2> ] , <EOL> [ <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:3> , <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:2> , <NUM_LIT:2> ] , <EOL> [ <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:3> , <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:3> , <NUM_LIT:2> ] , <EOL> [ <NUM_LIT:0> , <NUM_LIT:3> , <NUM_LIT:3> , <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:3> , <NUM_LIT:2> ] <EOL> ] <EOL> self . mario2 = [ <EOL> [ <NUM_LIT:1> , <NUM_LIT:1> , <NUM_LIT:1> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> ] , <EOL> [ <NUM_LIT:1> , <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> ] , <EOL> [ <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> ] , <EOL> [ <NUM_LIT:1> , <NUM_LIT:1> , <NUM_LIT:1> , <NUM_LIT:1> , <NUM_LIT:1> , <NUM_LIT:1> , <NUM_LIT:0> , <NUM_LIT:0> ] , <EOL> [ <NUM_LIT:3> , <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> , <NUM_LIT:0> ] , <EOL> [ <NUM_LIT:3> , <NUM_LIT:3> , <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:0> , <NUM_LIT:0> ] , <EOL> [ <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:0> ] , <EOL> [ <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:3> , <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:2> , <NUM_LIT:0> ] <EOL> ] <EOL> def test_palette ( self ) : <EOL> palette = image . create_palette ( ) <EOL> self . assertEquals ( <NUM_LIT:64> , len ( palette ) ) <EOL> self . assertEquals ( ( <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ) , palette [ <NUM_LIT:0> ] ) <EOL> self . assertEquals ( ( <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ) , palette [ <NUM_LIT:1> ] ) <EOL> self . assertEquals ( ( <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ) , palette [ <NUM_LIT:2> ] ) <EOL> '''<STR_LIT>''' <EOL> def test_fetch_chr_0 ( self ) : <EOL> pixels = Image . open ( '<STR_LIT>' ) . load ( ) <EOL> spr = image . fetch_chr ( pixels , <NUM_LIT:0> , <NUM_LIT:0> ) <EOL> self . assertSpriteEquals ( self . mario1 , spr ) <EOL> '''<STR_LIT>''' <EOL> def test_fetch_chr_1 ( self ) : <EOL> pixels = Image . open ( '<STR_LIT>' ) . load ( ) <EOL> spr = image . fetch_chr ( pixels , <NUM_LIT:1> , <NUM_LIT:0> ) <EOL> self . assertSpriteEquals ( self . mario2 , spr ) <EOL> '''<STR_LIT>''' <EOL> def test_acquire_chr ( self ) : <EOL> img = Image . open ( '<STR_LIT>' ) <EOL> sprs , indexes = image . acquire_chr ( img ) <EOL> self . assertEquals ( <NUM_LIT> , len ( sprs ) ) <EOL> self . assertSpriteEquals ( self . mario1 , sprite . get_sprite ( <NUM_LIT:0> , sprs ) ) <EOL> def test_import_chr ( self ) : <EOL> try : <EOL> os . remove ( '<STR_LIT>' ) <EOL> except : <EOL> pass <EOL> self . assertFileNotExists ( '<STR_LIT>' ) <EOL> image . import_chr ( '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . assertFileExists ( '<STR_LIT>' ) <EOL> self . assertCHRFileEquals ( <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' ) <EOL> os . remove ( '<STR_LIT>' ) <EOL> def test_export_chr ( self ) : <EOL> try : <EOL> os . remove ( '<STR_LIT>' ) <EOL> except : <EOL> pass <EOL> self . assertFileNotExists ( '<STR_LIT>' ) <EOL> image . export_chr ( <EOL> '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . assertFileExists ( '<STR_LIT>' ) <EOL> self . assertPNGFileEquals ( '<STR_LIT>' , '<STR_LIT>' ) <EOL> img = Image . open ( '<STR_LIT>' ) <EOL> sprs , indexes = image . acquire_chr ( img ) <EOL> self . assertIsNotNone ( sprs ) <EOL> self . assertEquals ( <NUM_LIT> , len ( sprs ) ) <EOL> self . assertSpriteEquals ( self . mario1 , sprite . get_sprite ( <NUM_LIT:0> , sprs ) ) <EOL> self . assertSpriteEquals ( self . mario2 , sprite . get_sprite ( <NUM_LIT:1> , sprs ) ) <EOL> os . remove ( '<STR_LIT>' ) <EOL> def test_export_namespace ( self ) : <EOL> try : <EOL> os . remove ( '<STR_LIT>' ) <EOL> except : <EOL> pass <EOL> self . assertFileNotExists ( '<STR_LIT>' ) <EOL> image . export_nametable ( <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' ) <EOL> self . assertFileExists ( '<STR_LIT>' ) <EOL> img = Image . open ( '<STR_LIT>' ) <EOL> sprs , indexes = image . acquire_chr ( img , optimize_repeated = False ) <EOL> sprite . length ( sprs ) <EOL> self . assertEquals ( <NUM_LIT> , sprite . length ( sprs ) ) <EOL> return <EOL> nt_file = open ( '<STR_LIT>' ) <EOL> nt = nt_file . read ( ) <EOL> nt_file . close ( ) <EOL> nts = [ ord ( n ) for n in nt ] <EOL> mario = sprite . load_sprites ( '<STR_LIT>' ) <EOL> for i in range ( <NUM_LIT:32> ) : <EOL> for j in range ( <NUM_LIT:32> ) : <EOL> self . assertSpriteEquals ( <EOL> sprite . get_sprite ( nts [ i * j ] + <NUM_LIT> , mario ) , <EOL> sprite . get_sprite ( i * j , sprs ) <EOL> ) <EOL> os . remove ( '<STR_LIT>' ) <EOL> def test_import_nametable ( self ) : <EOL> try : <EOL> os . remove ( '<STR_LIT>' ) <EOL> except : <EOL> pass <EOL> self . assertFalse ( os . path . exists ( '<STR_LIT>' ) ) <EOL> image . import_nametable ( <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' ) <EOL> expected = open ( <EOL> '<STR_LIT>' , '<STR_LIT:rb>' ) . read ( ) <EOL> actual = open ( '<STR_LIT>' , '<STR_LIT:rb>' ) . read ( ) <EOL> size = len ( actual ) <EOL> self . assertEquals ( expected [ : size ] , actual [ : size ] ) <EOL> def test_read_nametable ( self ) : <EOL> sprs = sprite . load_sprites ( '<STR_LIT>' ) <EOL> return <EOL> expected = open ( <EOL> '<STR_LIT>' , '<STR_LIT:rb>' ) . read ( ) <EOL> actual = open ( '<STR_LIT>' , '<STR_LIT:rb>' ) . read ( ) <EOL> size = len ( actual ) <EOL> self . assertEquals ( expected [ : size ] , actual [ : size ] ) <EOL> return <EOL> self . assertEquals ( <NUM_LIT> , len ( sprs ) ) <EOL> self . assertEquals ( self . mario1 , sprite . get_sprite ( <NUM_LIT:0> , sprs ) ) <EOL> self . assertEquals ( self . mario2 , sprite . get_sprite ( <NUM_LIT:1> , sprs ) ) <EOL> def test_acquire_pythonbrasil8 ( self ) : <EOL> ( nt , sprs ) = image . acquire_nametable ( '<STR_LIT>' ) <EOL> image . export_chr ( sprs , '<STR_LIT>' ) <EOL> image . export_nametable ( nt , sprs , '<STR_LIT>' ) <EOL> from pynes import write_bin_code <EOL> write_bin_code ( nt , '<STR_LIT>' ) <EOL> write_bin_code ( sprs [ <NUM_LIT:0> ] , '<STR_LIT>' ) <EOL> def test_convert_to_nametable ( self ) : <EOL> return <EOL> ( nt , sprs ) = image . convert_to_nametable ( '<STR_LIT>' ) <EOL> def test_convert_to_nametable_pythonbrasil ( self ) : <EOL> return <EOL> ( nt , sprs ) = image . convert_to_nametable ( '<STR_LIT>' ) <EOL> def test_convert_to_nametable_pythonbrasil2 ( self ) : <EOL> return <EOL> nt , sprs = image . convert_to_nametable ( '<STR_LIT>' ) <EOL> image . export_chr ( '<STR_LIT>' , '<STR_LIT>' ) <EOL> image . export_nametable ( <EOL> '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) <EOL> import os <EOL> os . rename ( '<STR_LIT>' , '<STR_LIT>' ) <EOL> image . export_nametable ( <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' ) </s>
