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
 |