U E D R , A S I H C RSS

데블스캠프2011/다섯째날/How To Write Code Well/송지원,성화수

Elevator.java

public class Elevator {

	public int floor;
	public int min;
	public int max;
	private boolean ta;
	private boolean drill;


	public Elevator(int i, int j) {
		max = 0;
		min = i;
		floor = j;
		ta = false;
		drill = false;
	}

	public void move(int i) {
		if(ta){
			floor = -Math.abs(i);
		}	
	}

	public void ta() {
		ta = true;
	}

	public void naga() {
		ta = false;
	}

	public void up(int i) {
		if(floor + i > max) move(max);
		else move(floor + i);
	}

	public void down(int i) {
		if(floor - i < min) move(min);
		else move(floor - i);		
	}

	public void drill() {
		if(floor == min){
			min--;
		}
		// TODO Auto-generated method stub
		// 현재 층이 최저층이어야만 실행할 수 있다.
		// 최저 층에서 맨 밑에층으로 더 down실행시 해당 층만큼 최저층이 늘어나고
		// 현재 층이 그 층으로 바뀐다.
	}
}



mainTest.java

import static org.junit.Assert.*;

import org.junit.Test;


public class mainTest {

	@Test
	public void test() {
		Elevator elevator = new Elevator (-20, -1);		
		
		//현재 층 출력 -1
		assertEquals(-1, elevator.floor);		
		
		
		// move실행해도 현재 탄 사람이 없으면 층 이동 없음
		elevator.move(17);
		
		assertEquals(-1, elevator.floor);
		
		// 사람이 타도 현재 층에는 변형 없음
		elevator.ta();
		
		assertEquals(-1, elevator.floor);	
		
		elevator.move(3);		
		
		assertEquals(-3, elevator.floor);	
		
		elevator.naga();
		
		assertEquals(-3, elevator.floor);
		
		elevator.ta();
		elevator.up(2);
		
		assertEquals(-1, elevator.floor);
		
		elevator.up(2);
		
		assertEquals(0, elevator.floor);
		
		elevator.down(5);
		
		assertEquals(-5, elevator.floor);
		
		elevator.down(17);
		
		assertEquals(-20, elevator.floor);
		
		elevator.drill(); // 현재 층이 최저층이어야만 실행할 수 있다.
		
		elevator.down(1);
		
		assertEquals(-21, elevator.floor);
		
		elevator.up(5);
		
		assertEquals(-16, elevator.floor);
		
		elevator.drill();

		elevator.down(10);
		
		assertEquals(-21, elevator.floor);
	}

}

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2011-07-01 18:49:12
Processing time 0.0095 sec