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
 |