== App.java == {{{ package org.zeropage.devilscamp; import static org.junit.Assert.*; import org.junit.Before; import org.junit.Test; /* * up이나 down은 외부에서 버튼을 누른것이다.()안의 인자는 버튼을 누른 층 * up과 down을 누른 후에는 goTo를 할 수가 있는데 * 잘못된 선택을 할 경우에는 다시 goTo할 수 없다. */ public class App { @Test public void testElevator(){ Elevator e = new Elevator(63, -3); //Elevator가 생성되었는지 test한다. assertNotNull(e); //Elevator가 생성될때에는 항상 1층으로 setting된다. assertEquals(1, e.floor()); //System.out.println(e.floor()); //goTo 전에는 항상 up 혹은 down이 있어야한다. e.up(1); assertEquals(1, e.floor()); e.goTo(5); assertEquals(5, e.floor()); //System.out.println(e.floor()); e.up(10); assertEquals(10, e.floor()); //Can not go e.goTo(-5); assertEquals(10, e.floor()); //System.out.println(e.floor()); e.down(10); assertEquals(10, e.floor()); //Can not go e.goTo(65); assertEquals(10, e.floor()); //System.out.println(e.floor()); //6층에서 up누를경우 e.up(6); assertEquals(6, e.floor()); //System.out.println(e.floor()); //6층에서 up을 눌렀는데 3층으로 갈 수는 없다. //한번 goTo에 실패하면(잘못된 범위 선택:up 누르고 더 아래층으로 goTo) 다시 goTo 할 수 없다. e.goTo(3); assertEquals(6, e.floor()); e.up(5); assertEquals(5, e.floor()); e.goTo(60); assertEquals(60, e.floor()); //8층에서 down누를경우 e.down(8); assertEquals(8, e.floor()); //System.out.println(e.floor()); //한번 goTo에 실패하면(잘못된 범위 선택:down 누르고 더 위층으로 goTo) 다시 goTo 할 수 없다. 갇혔음 ㅡ_ㅡ;; e.goTo(3); assertEquals(3, e.floor()); } } }}} == Elevator.java == {{{ package org.zeropage.devilscamp; public class Elevator { public int floor; private int max_floor; private int min_floor; private int floor_dir; public Elevator(int i, int j) { max_floor = i; min_floor = j; floor = 1; } public int floor() { return floor; } public void up(int i) { floor_dir = 1; floor = i; } public void goTo(int i) { if (floor_dir == 1) { if (floor < i) floor = i; } else if (floor_dir == 2) { if (floor > i) floor = i; } } public void down(int i) { floor_dir = 2; floor = i;// TODO Auto-generated method stub } } }}} ---- [데블스캠프2011]