mirror of https://github.com/aseprite/aseprite.git
				
				
				
			
		
			
	
	
		
			119 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Lua
		
	
	
	
		
		
			
		
	
	
			119 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Lua
		
	
	
	
|  | -- Copyright (C) 2019-2020  Igara Studio S.A. | ||
|  | -- | ||
|  | -- This file is released under the terms of the MIT license. | ||
|  | -- Read LICENSE.txt for more information. | ||
|  | 
 | ||
|  | do | ||
|  |   -- Three layers | ||
|  |   local s = Sprite(32, 32) | ||
|  |   assert(#s.layers == 1) | ||
|  | 
 | ||
|  |   app.activeCel = s.cels[1] | ||
|  | 
 | ||
|  |   local r = app.range | ||
|  |   assert(#r.layers == 1) | ||
|  |   assert(#r.frames == 1) | ||
|  |   assert(#r.cels == 1) | ||
|  |   assert(r.layers[1] == s.layers[1]) | ||
|  |   assert(r.frames[1] == s.frames[1]) | ||
|  |   assert(r.cels[1] == s.cels[1]) | ||
|  | 
 | ||
|  |   s:newLayer() | ||
|  |   assert(#s.layers == 2) | ||
|  | 
 | ||
|  |   local r = app.range | ||
|  |   assert(#r.layers == 1) | ||
|  |   assert(#r.frames == 1) | ||
|  |   assert(#r.cels == 0) | ||
|  |   assert(r.layers[1] == s.layers[2]) | ||
|  |   assert(r.frames[1] == s.frames[1]) | ||
|  | end | ||
|  | 
 | ||
|  | -- Test app.range.colors | ||
|  | do | ||
|  |   assert(#app.range.colors == 0) | ||
|  |   app.range.colors = { 2 } | ||
|  |   assert(#app.range.colors == 1) | ||
|  |   assert(app.range.colors[1] == 2) | ||
|  |   app.range.colors = { 1, 4 } | ||
|  |   assert(#app.range.colors == 2) | ||
|  |   assert(app.range.colors[1] == 1) | ||
|  |   assert(app.range.colors[2] == 4) | ||
|  |   app.range.colors = { 5, 2, 10, 8, 0 } | ||
|  |   assert(#app.range.colors == 5) | ||
|  |   -- app.range.colors are always sorted by color index | ||
|  |   assert(app.range.colors[1] == 0) | ||
|  |   assert(app.range.colors[2] == 2) | ||
|  |   assert(app.range.colors[3] == 5) | ||
|  |   assert(app.range.colors[4] == 8) | ||
|  |   assert(app.range.colors[5] == 10) | ||
|  |   assert(app.range:containsColor(0)) | ||
|  |   assert(not app.range:containsColor(1)) | ||
|  |   assert(app.range:containsColor(2)) | ||
|  |   assert(app.range:containsColor(5)) | ||
|  |   assert(app.range:containsColor(8)) | ||
|  |   assert(app.range:containsColor(10)) | ||
|  | end | ||
|  | 
 | ||
|  | -- Test setters | ||
|  | do | ||
|  |   local spr = Sprite(32, 32) | ||
|  |   local lay1 = spr.layers[1] | ||
|  |   local r = app.range | ||
|  |   assert(r.type == RangeType.EMPTY) | ||
|  |   assert(#r.layers == 1) | ||
|  |   assert(#r.frames == 1) | ||
|  |   assert(r.layers[1] == lay1) | ||
|  |   assert(r.frames[1].frameNumber == 1) | ||
|  | 
 | ||
|  |   local lay2 = spr:newLayer() | ||
|  |   r = app.range | ||
|  |   assert(r.type == RangeType.EMPTY) | ||
|  |   assert(#r.layers == 1) | ||
|  |   assert(#r.frames == 1) | ||
|  |   assert(r.layers[1] == lay2) | ||
|  |   assert(r.frames[1].frameNumber == 1) | ||
|  | 
 | ||
|  |   r.layers = { lay1, lay2 } | ||
|  |   assert(r.type == RangeType.LAYERS) | ||
|  |   assert(#r.layers == 2) | ||
|  |   assert(#r.frames == 1) | ||
|  |   assert(r.layers[1] == lay1) | ||
|  |   assert(r.layers[2] == lay2) | ||
|  |   assert(r.frames[1].frameNumber == 1) | ||
|  | 
 | ||
|  |   spr:newFrame() | ||
|  |   spr:newFrame() | ||
|  |   r.frames = { 1, 3 } | ||
|  |   assert(r.type == RangeType.FRAMES) | ||
|  |   assert(#r.layers == 2) | ||
|  |   assert(#r.frames == 2) | ||
|  |   assert(r.layers[1] == lay1) | ||
|  |   assert(r.layers[2] == lay2) | ||
|  |   assert(r.frames[1].frameNumber == 1) | ||
|  |   assert(r.frames[2].frameNumber == 3) | ||
|  | 
 | ||
|  |   r.layers = { lay2 } | ||
|  |   assert(r.type == RangeType.LAYERS) | ||
|  |   assert(#r.layers == 1) | ||
|  |   assert(#r.frames == 2) | ||
|  |   assert(r.layers[1] == lay2) | ||
|  |   assert(r.frames[1].frameNumber == 1) | ||
|  |   assert(r.frames[2].frameNumber == 3) | ||
|  | 
 | ||
|  |   -- Clear range | ||
|  |   r:clear() | ||
|  |   assert(r.type == RangeType.EMPTY) | ||
|  |   assert(#r.layers == 1) | ||
|  |   assert(#r.frames == 1) | ||
|  |   assert(r.layers[1] == app.activeLayer) | ||
|  |   assert(r.frames[1] == app.activeFrame) | ||
|  | 
 | ||
|  |   -- Check that Range:clear() reset the selected colors | ||
|  |   r.colors = { 2 } | ||
|  |   assert(#r.colors == 1) | ||
|  |   assert(r.colors[1] == 2) | ||
|  |   r:clear() | ||
|  |   assert(#r.colors == 0) | ||
|  | end |