001 package sysModel.env.tests; 002 003 import controller.IScrollAdapter; 004 import junit.framework.TestCase; 005 import model.ILambda; 006 import sysModel.ICmdFactory; 007 import sysModel.ISecurityAdapter; 008 import sysModel.fish.AFish; 009 import sysModel.env.AEnvFactory; 010 import sysModel.env.AGlobalEnv; 011 import sysModel.env.ASquareEnv; 012 import sysModel.parser.Lexer; 013 014 import java.awt.*; 015 import java.awt.geom.Point2D; 016 import java.io.PrintWriter; 017 018 /** 019 * Test cases for ASquareEnv.Location. 020 * 021 * @author Mathias Ricken 022 */ 023 public class Test_ASquareEnv_Location extends TestCase { 024 private ICmdFactory _cmdFactory; 025 private ISecurityAdapter _sm; 026 private ASquareEnv _env; 027 028 private static final ILambda _notify = new ILambda() { 029 public Object apply(Object param) { 030 return "notifyCmd"; 031 } 032 }; 033 private static final ILambda _delete = new ILambda() { 034 public Object apply(Object param) { 035 return "deleteCmd"; 036 } 037 }; 038 private static final ILambda _add = new ILambda() { 039 public Object apply(Object param) { 040 return "addCmd"; 041 } 042 }; 043 044 public void setUp() throws Exception { 045 super.setUp(); 046 _cmdFactory = new ICmdFactory() { 047 public ILambda makeNotifyCmd(ILambda lambda) { 048 return _notify; 049 } 050 051 public ILambda makeDeleteCmd(AGlobalEnv.ALocalEnv env) { 052 return _delete; 053 } 054 055 public ILambda makeAddCmd(AFish fish) { 056 return _add; 057 } 058 }; 059 _sm = new ISecurityAdapter() { 060 public void setProtected(boolean _protected) { 061 } 062 public ThreadGroup getFishThreadGroup() { 063 return null; 064 } 065 public ClassLoader getClassLoader() { 066 return null; 067 } 068 public void handleException(Throwable t) { 069 } 070 }; 071 072 _env = new ASquareEnv(_cmdFactory, _sm) { 073 protected void addFishToInternalData(ALocalEnv localEnv, AFish fish) { 074 } 075 076 protected ASquareEnv.ASquareLocalEnvironment makeLocalEnv(ASquareEnv.Location loc, 077 ASquareEnv.Direction dir) { 078 return null; 079 } 080 081 protected AGlobalEnv parseEnvironment(Lexer l) { 082 return null; 083 } 084 085 public AEnvFactory makeEnvFactory() { 086 return null; 087 } 088 089 protected void printHeader(PrintWriter pw) { 090 } 091 092 public Dimension getDisplaySize() { 093 return null; 094 } 095 096 public void returnHome(IScrollAdapter sa) { 097 } 098 099 public Point2D.Double getViewPosition(Point2D.Double pos) { 100 return null; 101 } 102 103 public Point2D.Double getPanDelta(Point2D.Double delta) { 104 return null; 105 } 106 107 protected void removeFishFromInternalData(ALocalEnv localEnv) { 108 } 109 }; 110 } 111 112 /** 113 * Test getters, setters, and ctor. 114 */ 115 public void testGetSet() { 116 ASquareEnv.Location l = _env.makeLocation(5, 7); 117 assertEquals(5.0, l.getX(), 0.01); 118 assertEquals(7.0, l.getY(), 0.01); 119 120 l.setX(11); 121 assertEquals(11.0, l.getX(), 0.01); 122 assertEquals(7.0, l.getY(), 0.01); 123 124 l.setY(13); 125 assertEquals(11.0, l.getX(), 0.01); 126 assertEquals(13.0, l.getY(), 0.01); 127 } 128 129 /** 130 * Test same. 131 */ 132 public void testSame() { 133 ASquareEnv.Location l = _env.makeLocation(17, 23); 134 ASquareEnv.Location l1 = _env.makeLocation(17, 23); 135 ASquareEnv.Location l2 = _env.makeLocation(31, 37); 136 assertEquals(true, l.same(l1)); 137 assertEquals(false, l.same(l2)); 138 assertEquals(true, l1.same(l)); 139 assertEquals(false, l2.same(l)); 140 assertEquals(false, l2.same(l1)); 141 assertEquals(false, l1.same(l2)); 142 } 143 144 /** 145 * Test inField. 146 */ 147 public void testInField() { 148 ASquareEnv.Location l = _env.makeLocation(17, 23); 149 ASquareEnv.Location l1 = _env.makeLocation(17, 23); 150 ASquareEnv.Location l2 = _env.makeLocation(17.13, 23.53); 151 ASquareEnv.Location l3 = _env.makeLocation(17.49, 23.77); 152 ASquareEnv.Location l4 = _env.makeLocation(31, 37); 153 ASquareEnv.Location l5 = _env.makeLocation(31.81, 37.51); 154 assertEquals(true, l.inField(l1)); 155 assertEquals(true, l1.inField(l)); 156 assertEquals(true, l.inField(l2)); 157 assertEquals(true, l2.inField(l)); 158 assertEquals(true, l.inField(l3)); 159 assertEquals(true, l3.inField(l)); 160 assertEquals(false, l.inField(l4)); 161 assertEquals(false, l4.inField(l)); 162 assertEquals(false, l.inField(l5)); 163 assertEquals(false, l5.inField(l)); 164 } 165 166 /** 167 * Test getNeighbor. 168 */ 169 public void testNeighbor() { 170 ASquareEnv.Location l = _env.makeLocation(17, 23); 171 ASquareEnv.Location l1 = _env.makeLocation(17, 22); 172 ASquareEnv.Location l2 = _env.makeLocation(18, 22); 173 ASquareEnv.Location l3 = _env.makeLocation(18, 23); 174 ASquareEnv.Location l4 = _env.makeLocation(17, 23); 175 l = l.getNeighbor(_env.makeDirection(0, -1)); 176 assertEquals(true, l.same(l1)); 177 l = l.getNeighbor(_env.makeDirection(1, 0)); 178 assertEquals(true, l.same(l2)); 179 l = l.getNeighbor(_env.makeDirection(0, 1)); 180 assertEquals(true, l.same(l3)); 181 l = l.getNeighbor(_env.makeDirection(-1, 0)); 182 assertEquals(true, l.same(l4)); 183 } 184 }