Newer
Older
ultramine_private_regions / src / test / groovy / org / ultramine / regions / RectangleTest.groovy
@vlad20012 vlad20012 on 29 Mar 2016 1 KB Initial commit
package org.ultramine.regions

import net.minecraftforge.common.util.ForgeDirection
import spock.lang.Specification

class RectangleTest extends Specification {
	def "Test expand"() {
		expect:
		new Rectangle(0, 0, 0, 0, 0, 0).expand(ForgeDirection.WEST,		1) == new Rectangle(-1,  0,  0, 0, 0, 0)
		new Rectangle(0, 0, 0, 0, 0, 0).expand(ForgeDirection.DOWN,		1) == new Rectangle( 0, -1,  0, 0, 0, 0)
		new Rectangle(0, 0, 0, 0, 0, 0).expand(ForgeDirection.NORTH,	1) == new Rectangle( 0,  0, -1, 0, 0, 0)
		new Rectangle(0, 0, 0, 0, 0, 0).expand(ForgeDirection.EAST,		1) == new Rectangle( 0,  0,  0, 1, 0, 0)
		new Rectangle(0, 0, 0, 0, 0, 0).expand(ForgeDirection.UP,		1) == new Rectangle( 0,  0,  0, 0, 1, 0)
		new Rectangle(0, 0, 0, 0, 0, 0).expand(ForgeDirection.SOUTH,	1) == new Rectangle( 0,  0,  0, 0, 0, 1)
	}

	def "Test some transformations"() {
		setup:
		Rectangle shape = new Rectangle(0, 0, 0, 10, 0, 10);
		ForgeDirection dir = ForgeDirection.EAST; //x+
		int amount = 1;
		int cd = 10;

		Rectangle nshape = shape.compress(dir.getOpposite(), shape.getLen(dir)).expand(dir, amount).expandAll(cd).compress(dir.getOpposite(), cd);

		expect:
		nshape == new Rectangle(11, -10, -10, 21, 10, 20);
	}
}