Advertisement
Guest User

Untitled

a guest
Dec 9th, 2019
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 174.09 KB | None | 0 0
  1. package logic;
  2.  
  3. import model.Tile;
  4. import org.testng.annotations.Test;
  5.  
  6. import java.util.Arrays;
  7. import java.util.List;
  8.  
  9. import static model.Tile.*;
  10. import static model.Tile.WALL;
  11. import static org.testng.Assert.assertEquals;
  12.  
  13. public class StressTest {
  14.  
  15.     @Test
  16.     void test() {
  17.         UnitState start = new UnitState(new Point(1.5, 1.0), 0.0, false, false);
  18.         Tile[][] map = new Tile[][]{{WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL}, {WALL, EMPTY, JUMP_PAD, LADDER, WALL, PLATFORM, EMPTY, JUMP_PAD, EMPTY, EMPTY, JUMP_PAD, EMPTY, EMPTY, LADDER, PLATFORM, JUMP_PAD, LADDER, EMPTY, LADDER, WALL, PLATFORM, EMPTY, EMPTY, WALL, WALL, WALL, WALL, JUMP_PAD, WALL, WALL}, {WALL, JUMP_PAD, JUMP_PAD, PLATFORM, PLATFORM, LADDER, LADDER, JUMP_PAD, JUMP_PAD, EMPTY, PLATFORM, EMPTY, JUMP_PAD, EMPTY, LADDER, JUMP_PAD, PLATFORM, EMPTY, JUMP_PAD, JUMP_PAD, PLATFORM, LADDER, JUMP_PAD, JUMP_PAD, LADDER, JUMP_PAD, LADDER, JUMP_PAD, PLATFORM, WALL}, {WALL, LADDER, PLATFORM, PLATFORM, LADDER, JUMP_PAD, EMPTY, WALL, LADDER, EMPTY, WALL, WALL, LADDER, WALL, PLATFORM, LADDER, WALL, LADDER, PLATFORM, LADDER, PLATFORM, PLATFORM, WALL, WALL, LADDER, PLATFORM, PLATFORM, PLATFORM, LADDER, WALL}, {WALL, EMPTY, LADDER, JUMP_PAD, JUMP_PAD, LADDER, PLATFORM, JUMP_PAD, JUMP_PAD, PLATFORM, EMPTY, JUMP_PAD, JUMP_PAD, PLATFORM, WALL, WALL, EMPTY, PLATFORM, WALL, LADDER, LADDER, PLATFORM, LADDER, PLATFORM, LADDER, WALL, LADDER, JUMP_PAD, WALL, WALL}, {WALL, PLATFORM, EMPTY, JUMP_PAD, JUMP_PAD, EMPTY, WALL, WALL, LADDER, PLATFORM, WALL, PLATFORM, LADDER, WALL, EMPTY, EMPTY, PLATFORM, EMPTY, WALL, JUMP_PAD, EMPTY, EMPTY, EMPTY, PLATFORM, PLATFORM, PLATFORM, EMPTY, EMPTY, JUMP_PAD, WALL}, {WALL, WALL, EMPTY, EMPTY, JUMP_PAD, LADDER, JUMP_PAD, WALL, JUMP_PAD, LADDER, PLATFORM, JUMP_PAD, PLATFORM, EMPTY, EMPTY, LADDER, WALL, PLATFORM, EMPTY, EMPTY, PLATFORM, LADDER, PLATFORM, WALL, WALL, LADDER, PLATFORM, PLATFORM, JUMP_PAD, WALL}, {WALL, EMPTY, WALL, LADDER, JUMP_PAD, PLATFORM, WALL, LADDER, EMPTY, LADDER, WALL, LADDER, WALL, LADDER, EMPTY, EMPTY, LADDER, LADDER, LADDER, JUMP_PAD, JUMP_PAD, JUMP_PAD, PLATFORM, PLATFORM, PLATFORM, EMPTY, EMPTY, PLATFORM, JUMP_PAD, WALL}, {WALL, EMPTY, JUMP_PAD, LADDER, LADDER, EMPTY, EMPTY, WALL, LADDER, JUMP_PAD, PLATFORM, PLATFORM, LADDER, PLATFORM, WALL, PLATFORM, LADDER, PLATFORM, EMPTY, JUMP_PAD, EMPTY, JUMP_PAD, WALL, WALL, EMPTY, WALL, JUMP_PAD, PLATFORM, LADDER, WALL}, {WALL, PLATFORM, LADDER, LADDER, JUMP_PAD, JUMP_PAD, WALL, PLATFORM, PLATFORM, LADDER, LADDER, WALL, JUMP_PAD, LADDER, LADDER, LADDER, LADDER, PLATFORM, JUMP_PAD, EMPTY, EMPTY, WALL, WALL, LADDER, PLATFORM, PLATFORM, JUMP_PAD, WALL, PLATFORM, WALL}, {WALL, WALL, EMPTY, LADDER, WALL, JUMP_PAD, WALL, PLATFORM, WALL, LADDER, PLATFORM, JUMP_PAD, JUMP_PAD, JUMP_PAD, PLATFORM, LADDER, PLATFORM, JUMP_PAD, PLATFORM, EMPTY, EMPTY, PLATFORM, LADDER, JUMP_PAD, WALL, WALL, JUMP_PAD, PLATFORM, LADDER, WALL}, {WALL, EMPTY, PLATFORM, JUMP_PAD, LADDER, JUMP_PAD, PLATFORM, LADDER, LADDER, WALL, LADDER, LADDER, JUMP_PAD, EMPTY, WALL, PLATFORM, LADDER, LADDER, EMPTY, EMPTY, LADDER, JUMP_PAD, EMPTY, WALL, PLATFORM, LADDER, EMPTY, WALL, PLATFORM, WALL}, {WALL, EMPTY, WALL, JUMP_PAD, LADDER, EMPTY, PLATFORM, EMPTY, EMPTY, LADDER, WALL, LADDER, PLATFORM, LADDER, JUMP_PAD, JUMP_PAD, LADDER, PLATFORM, EMPTY, WALL, WALL, PLATFORM, JUMP_PAD, LADDER, LADDER, WALL, PLATFORM, JUMP_PAD, EMPTY, WALL}, {WALL, WALL, LADDER, PLATFORM, JUMP_PAD, PLATFORM, LADDER, JUMP_PAD, WALL, LADDER, WALL, PLATFORM, EMPTY, PLATFORM, LADDER, WALL, JUMP_PAD, LADDER, EMPTY, EMPTY, LADDER, WALL, EMPTY, LADDER, WALL, JUMP_PAD, JUMP_PAD, PLATFORM, PLATFORM, WALL}, {WALL, JUMP_PAD, PLATFORM, WALL, WALL, JUMP_PAD, JUMP_PAD, EMPTY, JUMP_PAD, EMPTY, EMPTY, JUMP_PAD, EMPTY, PLATFORM, LADDER, EMPTY, PLATFORM, LADDER, PLATFORM, LADDER, PLATFORM, WALL, WALL, PLATFORM, EMPTY, PLATFORM, WALL, JUMP_PAD, WALL, WALL}, {WALL, WALL, LADDER, WALL, PLATFORM, JUMP_PAD, WALL, LADDER, WALL, WALL, JUMP_PAD, WALL, JUMP_PAD, JUMP_PAD, EMPTY, WALL, LADDER, EMPTY, LADDER, JUMP_PAD, PLATFORM, EMPTY, WALL, JUMP_PAD, WALL, PLATFORM, LADDER, EMPTY, WALL, WALL}, {WALL, WALL, WALL, PLATFORM, PLATFORM, EMPTY, LADDER, JUMP_PAD, LADDER, WALL, PLATFORM, EMPTY, JUMP_PAD, EMPTY, JUMP_PAD, PLATFORM, LADDER, WALL, EMPTY, EMPTY, LADDER, JUMP_PAD, JUMP_PAD, JUMP_PAD, LADDER, PLATFORM, PLATFORM, JUMP_PAD, EMPTY, WALL}, {WALL, JUMP_PAD, JUMP_PAD, LADDER, PLATFORM, WALL, JUMP_PAD, EMPTY, PLATFORM, JUMP_PAD, JUMP_PAD, JUMP_PAD, LADDER, EMPTY, LADDER, PLATFORM, EMPTY, PLATFORM, JUMP_PAD, WALL, JUMP_PAD, LADDER, JUMP_PAD, EMPTY, JUMP_PAD, WALL, EMPTY, EMPTY, EMPTY, WALL}, {WALL, JUMP_PAD, PLATFORM, EMPTY, WALL, LADDER, PLATFORM, JUMP_PAD, PLATFORM, PLATFORM, PLATFORM, EMPTY, PLATFORM, EMPTY, LADDER, LADDER, JUMP_PAD, LADDER, WALL, LADDER, LADDER, LADDER, JUMP_PAD, JUMP_PAD, LADDER, PLATFORM, WALL, LADDER, EMPTY, WALL}, {WALL, EMPTY, PLATFORM, LADDER, EMPTY, EMPTY, LADDER, WALL, WALL, EMPTY, WALL, WALL, JUMP_PAD, PLATFORM, PLATFORM, EMPTY, EMPTY, LADDER, EMPTY, LADDER, EMPTY, PLATFORM, EMPTY, WALL, LADDER, PLATFORM, PLATFORM, EMPTY, JUMP_PAD, WALL}, {WALL, JUMP_PAD, PLATFORM, EMPTY, PLATFORM, JUMP_PAD, WALL, PLATFORM, WALL, JUMP_PAD, EMPTY, LADDER, PLATFORM, JUMP_PAD, EMPTY, WALL, LADDER, EMPTY, EMPTY, EMPTY, WALL, PLATFORM, EMPTY, LADDER, JUMP_PAD, JUMP_PAD, JUMP_PAD, WALL, PLATFORM, WALL}, {WALL, LADDER, LADDER, PLATFORM, WALL, PLATFORM, JUMP_PAD, LADDER, PLATFORM, PLATFORM, JUMP_PAD, EMPTY, LADDER, EMPTY, LADDER, LADDER, PLATFORM, WALL, PLATFORM, PLATFORM, PLATFORM, PLATFORM, PLATFORM, JUMP_PAD, PLATFORM, LADDER, WALL, JUMP_PAD, LADDER, WALL}, {WALL, LADDER, EMPTY, PLATFORM, EMPTY, WALL, EMPTY, WALL, EMPTY, PLATFORM, PLATFORM, PLATFORM, EMPTY, WALL, JUMP_PAD, WALL, EMPTY, EMPTY, PLATFORM, PLATFORM, PLATFORM, LADDER, PLATFORM, EMPTY, WALL, PLATFORM, PLATFORM, WALL, WALL, WALL}, {WALL, PLATFORM, PLATFORM, PLATFORM, LADDER, PLATFORM, JUMP_PAD, PLATFORM, EMPTY, WALL, EMPTY, JUMP_PAD, PLATFORM, LADDER, LADDER, EMPTY, LADDER, EMPTY, WALL, PLATFORM, LADDER, PLATFORM, PLATFORM, LADDER, PLATFORM, PLATFORM, PLATFORM, EMPTY, EMPTY, WALL}, {WALL, EMPTY, WALL, PLATFORM, JUMP_PAD, WALL, PLATFORM, LADDER, EMPTY, PLATFORM, WALL, JUMP_PAD, PLATFORM, JUMP_PAD, JUMP_PAD, EMPTY, PLATFORM, LADDER, JUMP_PAD, WALL, EMPTY, PLATFORM, PLATFORM, EMPTY, JUMP_PAD, PLATFORM, PLATFORM, WALL, JUMP_PAD, WALL}, {WALL, LADDER, PLATFORM, LADDER, WALL, EMPTY, JUMP_PAD, LADDER, WALL, PLATFORM, JUMP_PAD, EMPTY, JUMP_PAD, LADDER, JUMP_PAD, LADDER, WALL, EMPTY, LADDER, PLATFORM, LADDER, PLATFORM, WALL, LADDER, EMPTY, LADDER, LADDER, JUMP_PAD, PLATFORM, WALL}, {WALL, PLATFORM, WALL, WALL, JUMP_PAD, JUMP_PAD, WALL, JUMP_PAD, WALL, PLATFORM, PLATFORM, PLATFORM, JUMP_PAD, EMPTY, WALL, PLATFORM, PLATFORM, LADDER, LADDER, JUMP_PAD, JUMP_PAD, WALL, JUMP_PAD, WALL, LADDER, JUMP_PAD, LADDER, PLATFORM, WALL, WALL}, {WALL, LADDER, PLATFORM, LADDER, LADDER, EMPTY, JUMP_PAD, EMPTY, LADDER, LADDER, LADDER, PLATFORM, PLATFORM, JUMP_PAD, JUMP_PAD, WALL, LADDER, LADDER, PLATFORM, WALL, LADDER, JUMP_PAD, WALL, EMPTY, PLATFORM, LADDER, LADDER, LADDER, EMPTY, WALL}, {WALL, LADDER, JUMP_PAD, JUMP_PAD, JUMP_PAD, EMPTY, PLATFORM, WALL, PLATFORM, WALL, LADDER, LADDER, EMPTY, WALL, PLATFORM, LADDER, LADDER, JUMP_PAD, PLATFORM, EMPTY, PLATFORM, JUMP_PAD, EMPTY, PLATFORM, LADDER, PLATFORM, WALL, PLATFORM, EMPTY, WALL}, {WALL, PLATFORM, JUMP_PAD, WALL, JUMP_PAD, PLATFORM, WALL, PLATFORM, LADDER, JUMP_PAD, PLATFORM, EMPTY, EMPTY, LADDER, LADDER, EMPTY, PLATFORM, PLATFORM, LADDER, LADDER, EMPTY, PLATFORM, LADDER, JUMP_PAD, EMPTY, EMPTY, JUMP_PAD, PLATFORM, PLATFORM, WALL}, {WALL, PLATFORM, EMPTY, LADDER, LADDER, EMPTY, JUMP_PAD, LADDER, JUMP_PAD, EMPTY, LADDER, JUMP_PAD, PLATFORM, WALL, JUMP_PAD, JUMP_PAD, EMPTY, JUMP_PAD, EMPTY, PLATFORM, JUMP_PAD, LADDER, JUMP_PAD, LADDER, WALL, LADDER, PLATFORM, LADDER, LADDER, WALL}, {WALL, WALL, LADDER, EMPTY, WALL, JUMP_PAD, LADDER, EMPTY, JUMP_PAD, PLATFORM, WALL, JUMP_PAD, PLATFORM, JUMP_PAD, WALL, EMPTY, LADDER, LADDER, LADDER, PLATFORM, PLATFORM, JUMP_PAD, PLATFORM, WALL, WALL, JUMP_PAD, WALL, WALL, WALL, WALL}, {WALL, PLATFORM, JUMP_PAD, LADDER, JUMP_PAD, EMPTY, WALL, JUMP_PAD, JUMP_PAD, JUMP_PAD, LADDER, EMPTY, EMPTY, JUMP_PAD, JUMP_PAD, WALL, LADDER, EMPTY, LADDER, WALL, WALL, EMPTY, WALL, LADDER, JUMP_PAD, WALL, PLATFORM, EMPTY, JUMP_PAD, WALL}, {WALL, JUMP_PAD, WALL, PLATFORM, WALL, JUMP_PAD, PLATFORM, JUMP_PAD, WALL, PLATFORM, JUMP_PAD, JUMP_PAD, EMPTY, EMPTY, JUMP_PAD, PLATFORM, LADDER, PLATFORM, EMPTY, JUMP_PAD, LADDER, WALL, EMPTY, PLATFORM, LADDER, WALL, EMPTY, EMPTY, WALL, WALL}, {WALL, PLATFORM, LADDER, PLATFORM, JUMP_PAD, EMPTY, WALL, PLATFORM, WALL, LADDER, PLATFORM, LADDER, WALL, LADDER, LADDER, EMPTY, LADDER, WALL, WALL, PLATFORM, EMPTY, PLATFORM, PLATFORM, EMPTY, WALL, WALL, WALL, PLATFORM, WALL, WALL}, {WALL, LADDER, PLATFORM, PLATFORM, LADDER, JUMP_PAD, EMPTY, JUMP_PAD, WALL, WALL, PLATFORM, PLATFORM, WALL, JUMP_PAD, EMPTY, JUMP_PAD, PLATFORM, PLATFORM, WALL, JUMP_PAD, LADDER, EMPTY, PLATFORM, LADDER, PLATFORM, PLATFORM, EMPTY, EMPTY, EMPTY, WALL}, {WALL, WALL, JUMP_PAD, EMPTY, WALL, PLATFORM, LADDER, LADDER, EMPTY, JUMP_PAD, LADDER, LADDER, EMPTY, LADDER, PLATFORM, EMPTY, LADDER, EMPTY, EMPTY, WALL, PLATFORM, JUMP_PAD, LADDER, LADDER, JUMP_PAD, WALL, LADDER, PLATFORM, WALL, WALL}, {WALL, WALL, LADDER, LADDER, EMPTY, PLATFORM, PLATFORM, PLATFORM, LADDER, WALL, EMPTY, EMPTY, JUMP_PAD, JUMP_PAD, EMPTY, EMPTY, LADDER, WALL, EMPTY, LADDER, JUMP_PAD, WALL, LADDER, PLATFORM, JUMP_PAD, WALL, EMPTY, WALL, WALL, WALL}, {WALL, EMPTY, EMPTY, WALL, PLATFORM, EMPTY, LADDER, JUMP_PAD, PLATFORM, JUMP_PAD, JUMP_PAD, WALL, PLATFORM, EMPTY, JUMP_PAD, WALL, EMPTY, WALL, PLATFORM, WALL, EMPTY, EMPTY, LADDER, EMPTY, EMPTY, LADDER, WALL, JUMP_PAD, EMPTY, WALL}, {WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL}};
  19.         Simulator simulator = new Simulator(map, (int) 6000.0, 1);
  20.         List<UnitState> expected = Arrays.asList(
  21.                 new UnitState(new Point(1.500463969327456, 1.0), 0.525, true, false),
  22.                 new UnitState(new Point(1.500927938654912, 1.0033333333333334), 0.525, true, false),
  23.                 new UnitState(new Point(1.5013919079823679, 1.0066666666666668), 0.525, true, false),
  24.                 new UnitState(new Point(1.500509229592228, 1.0100000000000002), 0.525, true, false),
  25.                 new UnitState(new Point(1.5005617789738246, 1.0133333333333336), 0.525, true, false),
  26.                 new UnitState(new Point(1.5006143283554212, 1.016666666666667), 0.525, true, false),
  27.                 new UnitState(new Point(1.5006668777370178, 1.0200000000000005), 0.525, true, false),
  28.                 new UnitState(new Point(1.5007194271186144, 1.0233333333333339), 0.525, true, false),
  29.                 new UnitState(new Point(1.500771976500211, 1.0266666666666673), 0.525, true, false),
  30.                 new UnitState(new Point(1.5008245258818076, 1.0300000000000007), 0.525, true, false),
  31.                 new UnitState(new Point(1.5008770752634042, 1.033333333333334), 0.525, true, false),
  32.                 new UnitState(new Point(1.5009296246450008, 1.0366666666666675), 0.525, true, false),
  33.                 new UnitState(new Point(1.5009821740265974, 1.040000000000001), 0.525, true, false),
  34.                 new UnitState(new Point(1.501034723408194, 1.0433333333333343), 0.525, true, false),
  35.                 new UnitState(new Point(1.5010872727897906, 1.0466666666666677), 0.525, true, false),
  36.                 new UnitState(new Point(1.5011398221713872, 1.0500000000000012), 0.525, true, false),
  37.                 new UnitState(new Point(1.5011923715529838, 1.0533333333333346), 0.525, true, false),
  38.                 new UnitState(new Point(1.5012449209345804, 1.056666666666668), 0.525, true, false),
  39.                 new UnitState(new Point(1.5015243539520635, 1.0600000000000014), 0.525, true, false),
  40.                 new UnitState(new Point(1.5018037869695466, 1.0633333333333348), 0.525, true, false),
  41.                 new UnitState(new Point(1.5020832199870298, 1.0666666666666682), 0.525, true, false),
  42.                 new UnitState(new Point(1.5023626530045129, 1.0700000000000016), 0.525, true, false),
  43.                 new UnitState(new Point(1.502642086021996, 1.073333333333335), 0.525, true, false),
  44.                 new UnitState(new Point(1.5029215190394791, 1.0766666666666684), 0.525, true, false),
  45.                 new UnitState(new Point(1.5032009520569622, 1.0800000000000018), 0.525, true, false),
  46.                 new UnitState(new Point(1.5034803850744454, 1.0833333333333353), 0.525, true, false),
  47.                 new UnitState(new Point(1.5037598180919285, 1.0866666666666687), 0.525, true, false),
  48.                 new UnitState(new Point(1.5040392511094116, 1.090000000000002), 0.525, true, false),
  49.                 new UnitState(new Point(1.5043186841268947, 1.0933333333333355), 0.525, true, false),
  50.                 new UnitState(new Point(1.5045981171443779, 1.096666666666669), 0.525, true, false),
  51.                 new UnitState(new Point(1.504877550161861, 1.1000000000000023), 0.525, true, false),
  52.                 new UnitState(new Point(1.505156983179344, 1.1033333333333357), 0.525, true, false),
  53.                 new UnitState(new Point(1.5054364161968272, 1.1066666666666691), 0.525, true, false),
  54.                 new UnitState(new Point(1.5057158492143103, 1.1100000000000025), 0.525, true, false),
  55.                 new UnitState(new Point(1.5059952822317935, 1.113333333333336), 0.525, true, false),
  56.                 new UnitState(new Point(1.5062747152492766, 1.1166666666666694), 0.525, true, false),
  57.                 new UnitState(new Point(1.5071966007570616, 1.1200000000000028), 0.525, true, false),
  58.                 new UnitState(new Point(1.5081184862648467, 1.1233333333333362), 0.525, true, false),
  59.                 new UnitState(new Point(1.5090403717726317, 1.1266666666666696), 0.525, true, false),
  60.                 new UnitState(new Point(1.5099622572804168, 1.130000000000003), 0.525, true, false),
  61.                 new UnitState(new Point(1.5108841427882018, 1.1333333333333364), 0.525, true, false),
  62.                 new UnitState(new Point(1.5118060282959869, 1.1366666666666698), 0.525, true, false),
  63.                 new UnitState(new Point(1.512727913803772, 1.1400000000000032), 0.525, true, false),
  64.                 new UnitState(new Point(1.513649799311557, 1.1433333333333366), 0.525, true, false),
  65.                 new UnitState(new Point(1.514571684819342, 1.14666666666667), 0.525, true, false),
  66.                 new UnitState(new Point(1.515493570327127, 1.1500000000000035), 0.525, true, false),
  67.                 new UnitState(new Point(1.516415455834912, 1.1533333333333369), 0.525, true, false),
  68.                 new UnitState(new Point(1.5173373413426972, 1.1566666666666703), 0.525, true, false),
  69.                 new UnitState(new Point(1.5182592268504822, 1.1600000000000037), 0.525, true, false),
  70.                 new UnitState(new Point(1.5191811123582672, 1.163333333333337), 0.525, true, false),
  71.                 new UnitState(new Point(1.5198935022901667, 1.1666666666666705), 0.525, true, false),
  72.                 new UnitState(new Point(1.5213021070845902, 1.170000000000004), 0.525, true, false),
  73.                 new UnitState(new Point(1.5227107118790137, 1.1733333333333373), 0.525, true, false),
  74.                 new UnitState(new Point(1.5216522869487876, 1.1766666666666707), 0.525, true, false),
  75.                 new UnitState(new Point(1.5205938620185615, 1.1800000000000042), 0.525, true, false),
  76.                 new UnitState(new Point(1.5195354370883354, 1.1833333333333376), 0.525, true, false),
  77.                 new UnitState(new Point(1.518223208174961, 1.186666666666671), 0.525, true, false),
  78.                 new UnitState(new Point(1.5169109792615865, 1.1900000000000044), 0.525, true, false),
  79.                 new UnitState(new Point(1.515598750348212, 1.1933333333333378), 0.525, true, false),
  80.                 new UnitState(new Point(1.5167991095768099, 1.1966666666666712), 0.525, true, false),
  81.                 new UnitState(new Point(1.5179994688054077, 1.2000000000000046), 0.525, true, false),
  82.                 new UnitState(new Point(1.5191998280340056, 1.203333333333338), 0.525, true, false),
  83.                 new UnitState(new Point(1.5204001872626034, 1.2066666666666714), 0.525, true, false),
  84.                 new UnitState(new Point(1.5216005464912012, 1.2100000000000048), 0.525, true, false),
  85.                 new UnitState(new Point(1.522800905719799, 1.2133333333333383), 0.525, true, false),
  86.                 new UnitState(new Point(1.5240121083013347, 1.2166666666666717), 0.525, true, false),
  87.                 new UnitState(new Point(1.5255024910758284, 1.220000000000005), 0.525, true, false),
  88.                 new UnitState(new Point(1.5262537042107138, 1.2233333333333385), 0.525, true, false),
  89.                 new UnitState(new Point(1.5270049173455993, 1.226666666666672), 0.525, true, false),
  90.                 new UnitState(new Point(1.5277561304804848, 1.2300000000000053), 0.525, true, false),
  91.                 new UnitState(new Point(1.5285073436153702, 1.2333333333333387), 0.525, true, false),
  92.                 new UnitState(new Point(1.5292585567502557, 1.2366666666666721), 0.525, true, false),
  93.                 new UnitState(new Point(1.5300097698851411, 1.2400000000000055), 0.525, true, false),
  94.                 new UnitState(new Point(1.5307609830200266, 1.243333333333339), 0.525, true, false),
  95.                 new UnitState(new Point(1.531512196154912, 1.2466666666666724), 0.525, true, false),
  96.                 new UnitState(new Point(1.5322634092897975, 1.2500000000000058), 0.525, true, false),
  97.                 new UnitState(new Point(1.533014622424683, 1.2533333333333392), 0.525, true, false),
  98.                 new UnitState(new Point(1.5337658355595685, 1.2566666666666726), 0.525, true, false),
  99.                 new UnitState(new Point(1.534517048694454, 1.260000000000006), 0.525, true, false),
  100.                 new UnitState(new Point(1.5358532680413097, 1.2633333333333394), 0.525, true, false),
  101.                 new UnitState(new Point(1.5371894873881655, 1.2666666666666728), 0.525, true, false),
  102.                 new UnitState(new Point(1.5385257067350213, 1.2700000000000062), 0.525, true, false),
  103.                 new UnitState(new Point(1.539861926081877, 1.2733333333333396), 0.525, true, false),
  104.                 new UnitState(new Point(1.541198145428733, 1.276666666666673), 0.525, true, false),
  105.                 new UnitState(new Point(1.5425343647755887, 1.2800000000000065), 0.525, true, false),
  106.                 new UnitState(new Point(1.5438705841224445, 1.2833333333333399), 0.525, true, false),
  107.                 new UnitState(new Point(1.5452068034693003, 1.2866666666666733), 0.525, true, false),
  108.                 new UnitState(new Point(1.546543022816156, 1.2900000000000067), 0.525, true, false),
  109.                 new UnitState(new Point(1.5478792421630119, 1.29333333333334), 0.525, true, false),
  110.                 new UnitState(new Point(1.5492154615098677, 1.2966666666666735), 0.525, true, false),
  111.                 new UnitState(new Point(1.5505516808567235, 1.300000000000007), 0.525, true, false),
  112.                 new UnitState(new Point(1.5518879002035793, 1.3033333333333403), 0.525, true, false),
  113.                 new UnitState(new Point(1.553224119550435, 1.3066666666666737), 0.525, true, false),
  114.                 new UnitState(new Point(1.5545603388972908, 1.3100000000000072), 0.525, true, false),
  115.                 new UnitState(new Point(1.5558965582441466, 1.3133333333333406), 0.525, true, false),
  116.                 new UnitState(new Point(1.5572327775910024, 1.316666666666674), 0.525, true, false),
  117.                 new UnitState(new Point(1.5585689969378582, 1.3200000000000074), 0.525, true, false),
  118.                 new UnitState(new Point(1.559905216284714, 1.3233333333333408), 0.525, true, false),
  119.                 new UnitState(new Point(1.5590328133705444, 1.3266666666666742), 0.525, true, false),
  120.                 new UnitState(new Point(1.5581604104563749, 1.3300000000000076), 0.525, true, false),
  121.                 new UnitState(new Point(1.5572880075422053, 1.333333333333341), 0.525, true, false),
  122.                 new UnitState(new Point(1.5564156046280357, 1.3366666666666744), 0.525, true, false),
  123.                 new UnitState(new Point(1.5555432017138662, 1.3400000000000079), 0.525, true, false),
  124.                 new UnitState(new Point(1.5546707987996966, 1.3433333333333413), 0.525, true, false),
  125.                 new UnitState(new Point(1.553798395885527, 1.3466666666666747), 0.525, true, false),
  126.                 new UnitState(new Point(1.5529259929713575, 1.350000000000008), 0.525, true, false),
  127.                 new UnitState(new Point(1.552053590057188, 1.3533333333333415), 0.525, true, false),
  128.                 new UnitState(new Point(1.5511811871430183, 1.356666666666675), 0.525, true, false),
  129.                 new UnitState(new Point(1.5503087842288488, 1.3600000000000083), 0.525, true, false),
  130.                 new UnitState(new Point(1.5494363813146792, 1.3633333333333417), 0.525, true, false),
  131.                 new UnitState(new Point(1.5485639784005096, 1.3666666666666751), 0.525, true, false),
  132.                 new UnitState(new Point(1.54769157548634, 1.3700000000000085), 0.525, true, false),
  133.                 new UnitState(new Point(1.5468191725721705, 1.373333333333342), 0.525, true, false),
  134.                 new UnitState(new Point(1.5482879897677877, 1.3766666666666754), 0.525, true, false),
  135.                 new UnitState(new Point(1.549756806963405, 1.3800000000000088), 0.525, true, false),
  136.                 new UnitState(new Point(1.551225624159022, 1.3833333333333422), 0.525, true, false),
  137.                 new UnitState(new Point(1.5526944413546393, 1.3866666666666756), 0.525, true, false),
  138.                 new UnitState(new Point(1.5541632585502565, 1.390000000000009), 0.525, true, false),
  139.                 new UnitState(new Point(1.5556320757458737, 1.3933333333333424), 0.525, true, false),
  140.                 new UnitState(new Point(1.557100892941491, 1.3966666666666758), 0.525, true, false),
  141.                 new UnitState(new Point(1.558569710137108, 1.4000000000000092), 0.525, true, false),
  142.                 new UnitState(new Point(1.5600385273327253, 1.4033333333333426), 0.525, true, false),
  143.                 new UnitState(new Point(1.5615073445283425, 1.406666666666676), 0.525, true, false),
  144.                 new UnitState(new Point(1.5629761617239597, 1.4100000000000095), 0.525, true, false),
  145.                 new UnitState(new Point(1.564444978919577, 1.4133333333333429), 0.525, true, false),
  146.                 new UnitState(new Point(1.565913796115194, 1.4166666666666763), 0.525, true, false),
  147.                 new UnitState(new Point(1.5673826133108113, 1.4200000000000097), 0.525, true, false),
  148.                 new UnitState(new Point(1.5688514305064285, 1.423333333333343), 0.525, true, false),
  149.                 new UnitState(new Point(1.5702821333460002, 1.4266666666666765), 0.525, true, false),
  150.                 new UnitState(new Point(1.571712836185572, 1.43000000000001), 0.525, true, false),
  151.                 new UnitState(new Point(1.5731435390251436, 1.4333333333333433), 0.525, true, false),
  152.                 new UnitState(new Point(1.5745742418647153, 1.4366666666666768), 0.525, true, false),
  153.                 new UnitState(new Point(1.576004944704287, 1.4400000000000102), 0.525, true, false),
  154.                 new UnitState(new Point(1.5774356475438587, 1.4433333333333436), 0.525, true, false),
  155.                 new UnitState(new Point(1.5788663503834304, 1.446666666666677), 0.525, true, false),
  156.                 new UnitState(new Point(1.580297053223002, 1.4500000000000104), 0.525, true, false),
  157.                 new UnitState(new Point(1.5792730216995952, 1.4533333333333438), 0.525, true, false),
  158.                 new UnitState(new Point(1.5782489901761882, 1.4566666666666772), 0.525, true, false),
  159.                 new UnitState(new Point(1.5772560283701151, 1.4600000000000106), 0.525, true, false),
  160.                 new UnitState(new Point(1.576263066564042, 1.463333333333344), 0.525, true, false),
  161.                 new UnitState(new Point(1.5775983823969462, 1.4666666666666774), 0.525, true, false),
  162.                 new UnitState(new Point(1.5780568689970293, 1.4700000000000109), 0.525, true, false),
  163.                 new UnitState(new Point(1.5785153555971125, 1.4733333333333443), 0.525, true, false),
  164.                 new UnitState(new Point(1.5789738421971957, 1.4766666666666777), 0.525, true, false),
  165.                 new UnitState(new Point(1.579432328797279, 1.480000000000011), 0.525, true, false),
  166.                 new UnitState(new Point(1.579890815397362, 1.4833333333333445), 0.525, true, false),
  167.                 new UnitState(new Point(1.5803493019974453, 1.486666666666678), 0.525, true, false),
  168.                 new UnitState(new Point(1.5808077885975285, 1.4900000000000113), 0.525, true, false),
  169.                 new UnitState(new Point(1.5812662751976116, 1.4933333333333447), 0.525, true, false),
  170.                 new UnitState(new Point(1.5817247617976948, 1.4966666666666781), 0.525, true, false),
  171.                 new UnitState(new Point(1.582183248397778, 1.5000000000000115), 0.525, true, false),
  172.                 new UnitState(new Point(1.5826417349978612, 1.503333333333345), 0.525, true, false),
  173.                 new UnitState(new Point(1.5835633964801814, 1.5066666666666784), 0.525, true, false),
  174.                 new UnitState(new Point(1.5844850579625016, 1.5100000000000118), 0.525, true, false),
  175.                 new UnitState(new Point(1.5854067194448218, 1.5133333333333452), 0.525, true, false),
  176.                 new UnitState(new Point(1.586328380927142, 1.5166666666666786), 0.525, true, false),
  177.                 new UnitState(new Point(1.5872500424094622, 1.520000000000012), 0.525, true, false),
  178.                 new UnitState(new Point(1.5881717038917824, 1.5233333333333454), 0.525, true, false),
  179.                 new UnitState(new Point(1.5890933653741026, 1.5266666666666788), 0.525, true, false),
  180.                 new UnitState(new Point(1.5900150268564228, 1.5300000000000122), 0.525, true, false),
  181.                 new UnitState(new Point(1.590936688338743, 1.5333333333333456), 0.525, true, false),
  182.                 new UnitState(new Point(1.5918583498210632, 1.536666666666679), 0.525, true, false),
  183.                 new UnitState(new Point(1.5927800113033834, 1.5400000000000125), 0.525, true, false),
  184.                 new UnitState(new Point(1.5937016727857036, 1.5433333333333459), 0.525, true, false),
  185.                 new UnitState(new Point(1.5946233342680238, 1.5466666666666793), 0.525, true, false),
  186.                 new UnitState(new Point(1.5944769484600654, 1.5500000000000127), 0.525, true, false),
  187.                 new UnitState(new Point(1.594330562652107, 1.5533333333333461), 0.525, true, false),
  188.                 new UnitState(new Point(1.5941841768441485, 1.5566666666666795), 0.525, true, false),
  189.                 new UnitState(new Point(1.5932720040928694, 1.560000000000013), 0.525, true, false),
  190.                 new UnitState(new Point(1.5923598313415903, 1.5633333333333463), 0.525, true, false),
  191.                 new UnitState(new Point(1.5914476585903112, 1.5666666666666798), 0.525, true, false),
  192.                 new UnitState(new Point(1.5905354858390321, 1.5700000000000132), 0.525, true, false),
  193.                 new UnitState(new Point(1.589623313087753, 1.5733333333333466), 0.525, true, false),
  194.                 new UnitState(new Point(1.588711140336474, 1.57666666666668), 0.525, true, false),
  195.                 new UnitState(new Point(1.587798967585195, 1.5800000000000134), 0.525, true, false),
  196.                 new UnitState(new Point(1.5868867948339158, 1.5833333333333468), 0.525, true, false),
  197.                 new UnitState(new Point(1.5859746220826367, 1.5866666666666802), 0.525, true, false),
  198.                 new UnitState(new Point(1.5850624493313576, 1.5900000000000136), 0.525, true, false),
  199.                 new UnitState(new Point(1.5866933232008749, 1.593333333333347), 0.525, true, false),
  200.                 new UnitState(new Point(1.588324197070392, 1.5966666666666804), 0.525, true, false),
  201.                 new UnitState(new Point(1.5899550709399093, 1.6000000000000139), 0.525, true, false),
  202.                 new UnitState(new Point(1.5915859448094265, 1.6033333333333473), 0.525, true, false),
  203.                 new UnitState(new Point(1.5932168186789437, 1.6066666666666807), 0.525, true, false),
  204.                 new UnitState(new Point(1.594847692548461, 1.610000000000014), 0.525, true, false),
  205.                 new UnitState(new Point(1.5964785664179781, 1.6133333333333475), 0.525, true, false),
  206.                 new UnitState(new Point(1.5981094402874954, 1.616666666666681), 0.525, true, false),
  207.                 new UnitState(new Point(1.5997403141570126, 1.6200000000000143), 0.525, true, false),
  208.                 new UnitState(new Point(1.6013711880265298, 1.6233333333333477), 0.525, true, false),
  209.                 new UnitState(new Point(1.603002061896047, 1.6266666666666811), 0.525, true, false),
  210.                 new UnitState(new Point(1.6046329357655642, 1.6300000000000145), 0.525, true, false),
  211.                 new UnitState(new Point(1.6041732626486056, 1.633333333333348), 0.525, true, false),
  212.                 new UnitState(new Point(1.603713589531647, 1.6366666666666814), 0.525, true, false),
  213.                 new UnitState(new Point(1.6032539164146884, 1.6400000000000148), 0.525, true, false),
  214.                 new UnitState(new Point(1.6027942432977298, 1.6433333333333482), 0.525, true, false),
  215.                 new UnitState(new Point(1.6023345701807712, 1.6466666666666816), 0.525, true, false),
  216.                 new UnitState(new Point(1.6018748970638126, 1.650000000000015), 0.525, true, false),
  217.                 new UnitState(new Point(1.601415223946854, 1.6533333333333484), 0.525, true, false),
  218.                 new UnitState(new Point(1.6009555508298954, 1.6566666666666818), 0.525, true, false),
  219.                 new UnitState(new Point(1.6004958777129368, 1.6600000000000152), 0.525, true, false),
  220.                 new UnitState(new Point(1.6000362045959782, 1.6633333333333487), 0.525, true, false),
  221.                 new UnitState(new Point(1.5995765314790196, 1.666666666666682), 0.525, true, false),
  222.                 new UnitState(new Point(1.599116858362061, 1.6700000000000155), 0.525, true, false),
  223.                 new UnitState(new Point(1.5986571852451024, 1.6733333333333489), 0.525, true, false),
  224.                 new UnitState(new Point(1.599207513176294, 1.6766666666666823), 0.525, true, false),
  225.                 new UnitState(new Point(1.5997578411074855, 1.6800000000000157), 0.525, true, false),
  226.                 new UnitState(new Point(1.6003081690386771, 1.6833333333333491), 0.525, true, false),
  227.                 new UnitState(new Point(1.6008584969698687, 1.6866666666666825), 0.525, true, false),
  228.                 new UnitState(new Point(1.6014088249010603, 1.690000000000016), 0.525, true, false),
  229.                 new UnitState(new Point(1.6019591528322519, 1.6933333333333493), 0.525, true, false),
  230.                 new UnitState(new Point(1.6025094807634435, 1.6966666666666828), 0.525, true, false),
  231.                 new UnitState(new Point(1.603059808694635, 1.7000000000000162), 0.525, true, false),
  232.                 new UnitState(new Point(1.6036101366258266, 1.7033333333333496), 0.525, true, false),
  233.                 new UnitState(new Point(1.6041604645570182, 1.706666666666683), 0.525, true, false),
  234.                 new UnitState(new Point(1.6047107924882098, 1.7100000000000164), 0.525, true, false),
  235.                 new UnitState(new Point(1.6052611204194014, 1.7133333333333498), 0.525, true, false),
  236.                 new UnitState(new Point(1.605811448350593, 1.7166666666666832), 0.525, true, false),
  237.                 new UnitState(new Point(1.6063617762817846, 1.7200000000000166), 0.525, true, false),
  238.                 new UnitState(new Point(1.6069121042129761, 1.72333333333335), 0.525, true, false),
  239.                 new UnitState(new Point(1.6074624321441677, 1.7266666666666834), 0.525, true, false),
  240.                 new UnitState(new Point(1.6080127600753593, 1.7300000000000169), 0.525, true, false),
  241.                 new UnitState(new Point(1.608563088006551, 1.7333333333333503), 0.525, true, false),
  242.                 new UnitState(new Point(1.6082916187148901, 1.7366666666666837), 0.525, true, false),
  243.                 new UnitState(new Point(1.6080201494232294, 1.740000000000017), 0.525, true, false),
  244.                 new UnitState(new Point(1.6077486801315686, 1.7433333333333505), 0.525, true, false),
  245.                 new UnitState(new Point(1.6074772108399078, 1.746666666666684), 0.525, true, false),
  246.                 new UnitState(new Point(1.607205741548247, 1.7500000000000173), 0.525, true, false),
  247.                 new UnitState(new Point(1.6069342722565862, 1.7533333333333507), 0.525, true, false),
  248.                 new UnitState(new Point(1.6066628029649255, 1.7566666666666841), 0.525, true, false),
  249.                 new UnitState(new Point(1.6063913336732647, 1.7600000000000176), 0.525, true, false),
  250.                 new UnitState(new Point(1.606119864381604, 1.763333333333351), 0.525, true, false),
  251.                 new UnitState(new Point(1.6058483950899431, 1.7666666666666844), 0.525, true, false),
  252.                 new UnitState(new Point(1.6055769257982824, 1.7700000000000178), 0.525, true, false),
  253.                 new UnitState(new Point(1.6053054565066216, 1.7733333333333512), 0.525, true, false),
  254.                 new UnitState(new Point(1.6050339872149608, 1.7766666666666846), 0.525, true, false),
  255.                 new UnitState(new Point(1.6060511109670637, 1.780000000000018), 0.525, true, false),
  256.                 new UnitState(new Point(1.6070682347191665, 1.7833333333333514), 0.525, true, false),
  257.                 new UnitState(new Point(1.6080853584712693, 1.7866666666666848), 0.525, true, false),
  258.                 new UnitState(new Point(1.6085025949815612, 1.7900000000000182), 0.525, true, false),
  259.                 new UnitState(new Point(1.6089198314918531, 1.7933333333333517), 0.525, true, false),
  260.                 new UnitState(new Point(1.609337068002145, 1.796666666666685), 0.525, true, false),
  261.                 new UnitState(new Point(1.609754304512437, 1.8000000000000185), 0.525, true, false),
  262.                 new UnitState(new Point(1.6101715410227289, 1.8033333333333519), 0.525, true, false),
  263.                 new UnitState(new Point(1.6105887775330208, 1.8066666666666853), 0.525, true, false),
  264.                 new UnitState(new Point(1.6110060140433127, 1.8100000000000187), 0.525, true, false),
  265.                 new UnitState(new Point(1.6114232505536046, 1.8133333333333521), 0.525, true, false),
  266.                 new UnitState(new Point(1.6118404870638965, 1.8166666666666855), 0.525, true, false),
  267.                 new UnitState(new Point(1.6122577235741884, 1.820000000000019), 0.525, true, false),
  268.                 new UnitState(new Point(1.6126749600844803, 1.8233333333333523), 0.525, true, false),
  269.                 new UnitState(new Point(1.6130921965947722, 1.8266666666666858), 0.525, true, false),
  270.                 new UnitState(new Point(1.6135094331050641, 1.8300000000000192), 0.525, true, false),
  271.                 new UnitState(new Point(1.613926669615356, 1.8333333333333526), 0.525, true, false),
  272.                 new UnitState(new Point(1.6123881839367564, 1.836666666666686), 0.525, true, false),
  273.                 new UnitState(new Point(1.6108496982581568, 1.8400000000000194), 0.525, true, false),
  274.                 new UnitState(new Point(1.6093112125795572, 1.8433333333333528), 0.525, true, false),
  275.                 new UnitState(new Point(1.6077727269009576, 1.8466666666666862), 0.525, true, false),
  276.                 new UnitState(new Point(1.606234241222358, 1.8500000000000196), 0.525, true, false),
  277.                 new UnitState(new Point(1.6046957555437584, 1.853333333333353), 0.525, true, false),
  278.                 new UnitState(new Point(1.6031572698651588, 1.8566666666666864), 0.525, true, false),
  279.                 new UnitState(new Point(1.6016187841865592, 1.8600000000000199), 0.525, true, false),
  280.                 new UnitState(new Point(1.6000802985079596, 1.8633333333333533), 0.525, true, false),
  281.                 new UnitState(new Point(1.59854181282936, 1.8666666666666867), 0.525, true, false),
  282.                 new UnitState(new Point(1.5970033271507604, 1.87000000000002), 0.525, true, false),
  283.                 new UnitState(new Point(1.5954648414721608, 1.8733333333333535), 0.525, true, false),
  284.                 new UnitState(new Point(1.5939263557935612, 1.876666666666687), 0.525, true, false),
  285.                 new UnitState(new Point(1.5923878701149616, 1.8800000000000203), 0.525, true, false),
  286.                 new UnitState(new Point(1.590849384436362, 1.8833333333333537), 0.525, true, false),
  287.                 new UnitState(new Point(1.5893108987577624, 1.8866666666666871), 0.525, true, false),
  288.                 new UnitState(new Point(1.5905299325361362, 1.8900000000000206), 0.525, true, false),
  289.                 new UnitState(new Point(1.59174896631451, 1.893333333333354), 0.525, true, false),
  290.                 new UnitState(new Point(1.5929680000928836, 1.8966666666666874), 0.525, true, false),
  291.                 new UnitState(new Point(1.5941870338712574, 1.9000000000000208), 0.525, true, false),
  292.                 new UnitState(new Point(1.595406067649631, 1.9033333333333542), 0.525, true, false),
  293.                 new UnitState(new Point(1.5966251014280048, 1.9066666666666876), 0.525, true, false),
  294.                 new UnitState(new Point(1.5978441352063786, 1.910000000000021), 0.525, true, false),
  295.                 new UnitState(new Point(1.5990631689847523, 1.9133333333333544), 0.525, true, false),
  296.                 new UnitState(new Point(1.600282202763126, 1.9166666666666878), 0.525, true, false),
  297.                 new UnitState(new Point(1.6015012365414998, 1.9200000000000212), 0.525, true, false),
  298.                 new UnitState(new Point(1.6027202703198735, 1.9233333333333547), 0.525, true, false),
  299.                 new UnitState(new Point(1.6039393040982473, 1.926666666666688), 0.525, true, false),
  300.                 new UnitState(new Point(1.605158337876621, 1.9300000000000215), 0.525, true, false),
  301.                 new UnitState(new Point(1.6063773716549947, 1.9333333333333549), 0.525, true, false),
  302.                 new UnitState(new Point(1.6075964054333685, 1.9366666666666883), 0.525, true, false),
  303.                 new UnitState(new Point(1.6088154392117422, 1.9400000000000217), 0.525, true, false),
  304.                 new UnitState(new Point(1.610034472990116, 1.9433333333333551), 0.525, true, false),
  305.                 new UnitState(new Point(1.6100866095750797, 1.9466666666666885), 0.525, true, false),
  306.                 new UnitState(new Point(1.6101387461600434, 1.950000000000022), 0.525, true, false),
  307.                 new UnitState(new Point(1.610190882745007, 1.9533333333333553), 0.525, true, false),
  308.                 new UnitState(new Point(1.6102430193299708, 1.9566666666666888), 0.525, true, false),
  309.                 new UnitState(new Point(1.6102951559149346, 1.9600000000000222), 0.525, true, false),
  310.                 new UnitState(new Point(1.6090805319125896, 1.9633333333333556), 0.525, true, false),
  311.                 new UnitState(new Point(1.6078659079102446, 1.966666666666689), 0.525, true, false),
  312.                 new UnitState(new Point(1.6066512839078997, 1.9700000000000224), 0.525, true, false),
  313.                 new UnitState(new Point(1.6054366599055547, 1.9733333333333558), 0.525, true, false),
  314.                 new UnitState(new Point(1.6042220359032098, 1.9766666666666892), 0.525, true, false),
  315.                 new UnitState(new Point(1.6030074119008648, 1.9800000000000226), 0.525, true, false),
  316.                 new UnitState(new Point(1.6017927878985199, 1.983333333333356), 0.525, true, false),
  317.                 new UnitState(new Point(1.600578163896175, 1.9866666666666895), 0.525, true, false),
  318.                 new UnitState(new Point(1.59936353989383, 1.9900000000000229), 0.525, true, false),
  319.                 new UnitState(new Point(1.598148915891485, 1.9933333333333563), 0.525, true, false),
  320.                 new UnitState(new Point(1.59693429188914, 1.9966666666666897), 0.525, true, false),
  321.                 new UnitState(new Point(1.595719667886795, 2.000000000000023), 0.525, true, false),
  322.                 new UnitState(new Point(1.5945050438844501, 2.0033333333333565), 0.525, true, false),
  323.                 new UnitState(new Point(1.5940405798814805, 2.00666666666669), 0.525, true, false),
  324.                 new UnitState(new Point(1.593576115878511, 2.0100000000000233), 0.525, true, false),
  325.                 new UnitState(new Point(1.5931116518755413, 2.0133333333333567), 0.525, true, false),
  326.                 new UnitState(new Point(1.5926471878725716, 2.01666666666669), 0.525, true, false),
  327.                 new UnitState(new Point(1.592182723869602, 2.0200000000000236), 0.525, true, false),
  328.                 new UnitState(new Point(1.5917182598666324, 2.023333333333357), 0.525, true, false),
  329.                 new UnitState(new Point(1.5912537958636628, 2.0266666666666904), 0.525, true, false),
  330.                 new UnitState(new Point(1.5907893318606932, 2.030000000000024), 0.525, true, false),
  331.                 new UnitState(new Point(1.5903248678577235, 2.033333333333357), 0.525, true, false),
  332.                 new UnitState(new Point(1.589860403854754, 2.0366666666666906), 0.525, true, false),
  333.                 new UnitState(new Point(1.5893959398517843, 2.040000000000024), 0.525, true, false),
  334.                 new UnitState(new Point(1.5889314758488147, 2.0433333333333574), 0.525, true, false),
  335.                 new UnitState(new Point(1.5902301081109746, 2.046666666666691), 0.525, true, false),
  336.                 new UnitState(new Point(1.5915287403731346, 2.0500000000000242), 0.525, true, false),
  337.                 new UnitState(new Point(1.5928273726352946, 2.0533333333333577), 0.525, true, false),
  338.                 new UnitState(new Point(1.5941260048974546, 2.056666666666691), 0.525, true, false),
  339.                 new UnitState(new Point(1.5954246371596146, 2.0600000000000245), 0.525, true, false),
  340.                 new UnitState(new Point(1.5967232694217746, 2.063333333333358), 0.525, true, false),
  341.                 new UnitState(new Point(1.5980219016839345, 2.0666666666666913), 0.525, true, false),
  342.                 new UnitState(new Point(1.5995539386345354, 2.0700000000000247), 0.525, true, false),
  343.                 new UnitState(new Point(1.6010859755851363, 2.073333333333358), 0.525, true, false),
  344.                 new UnitState(new Point(1.6026180125357372, 2.0766666666666915), 0.525, true, false),
  345.                 new UnitState(new Point(1.604150049486338, 2.080000000000025), 0.525, true, false),
  346.                 new UnitState(new Point(1.605682086436939, 2.0833333333333584), 0.525, true, false),
  347.                 new UnitState(new Point(1.6072141233875399, 2.0866666666666918), 0.525, true, false),
  348.                 new UnitState(new Point(1.6087461603381408, 2.090000000000025), 0.525, true, false),
  349.                 new UnitState(new Point(1.6102781972887417, 2.0933333333333586), 0.525, true, false),
  350.                 new UnitState(new Point(1.6118102342393426, 2.096666666666692), 0.525, true, false),
  351.                 new UnitState(new Point(1.6133422711899434, 2.1000000000000254), 0.55, true, true),
  352.                 new UnitState(new Point(1.6148743081405443, 2.098333333333359), 0.525, true, false),
  353.                 new UnitState(new Point(1.6164063450911452, 2.1016666666666923), 0.55, true, true),
  354.                 new UnitState(new Point(1.6179383820417461, 2.100000000000026), 0.55, true, true),
  355.                 new UnitState(new Point(1.619470418992347, 2.0983333333333594), 0.525, true, false),
  356.                 new UnitState(new Point(1.621002455942948, 2.1016666666666928), 0.55, true, true),
  357.                 new UnitState(new Point(1.6222073750827954, 2.1033333333333593), 0.55, true, true),
  358.                 new UnitState(new Point(1.623412294222643, 2.1050000000000257), 0.55, true, true),
  359.                 new UnitState(new Point(1.6246172133624905, 2.1066666666666922), 0.55, true, true),
  360.                 new UnitState(new Point(1.625822132502338, 2.1083333333333587), 0.55, true, true),
  361.                 new UnitState(new Point(1.6270270516421856, 2.110000000000025), 0.55, true, true),
  362.                 new UnitState(new Point(1.6282319707820332, 2.1116666666666917), 0.55, true, true),
  363.                 new UnitState(new Point(1.6294368899218807, 2.113333333333358), 0.55, true, true),
  364.                 new UnitState(new Point(1.6302795558600662, 2.113333333333358), 0.55, true, true),
  365.                 new UnitState(new Point(1.6311222217982517, 2.113333333333358), 0.55, true, true),
  366.                 new UnitState(new Point(1.6319648877364372, 2.113333333333358), 0.55, true, true),
  367.                 new UnitState(new Point(1.6328075536746227, 2.113333333333358), 0.55, true, true),
  368.                 new UnitState(new Point(1.6339200895170742, 2.113333333333358), 0.55, true, true),
  369.                 new UnitState(new Point(1.6350326253595258, 2.113333333333358), 0.55, true, true),
  370.                 new UnitState(new Point(1.6361451612019773, 2.113333333333358), 0.55, true, true),
  371.                 new UnitState(new Point(1.6372576970444288, 2.113333333333358), 0.55, true, true),
  372.                 new UnitState(new Point(1.6383702328868803, 2.113333333333358), 0.55, true, true),
  373.                 new UnitState(new Point(1.6394827687293319, 2.113333333333358), 0.55, true, true),
  374.                 new UnitState(new Point(1.6405953045717834, 2.113333333333358), 0.55, true, true),
  375.                 new UnitState(new Point(1.641707840414235, 2.113333333333358), 0.55, true, true),
  376.                 new UnitState(new Point(1.6428203762566864, 2.113333333333358), 0.55, true, true),
  377.                 new UnitState(new Point(1.643932912099138, 2.113333333333358), 0.55, true, true),
  378.                 new UnitState(new Point(1.6450454479415895, 2.113333333333358), 0.55, true, true),
  379.                 new UnitState(new Point(1.646157983784041, 2.113333333333358), 0.55, true, true),
  380.                 new UnitState(new Point(1.6472705196264925, 2.113333333333358), 0.55, true, true),
  381.                 new UnitState(new Point(1.648383055468944, 2.113333333333358), 0.55, true, true),
  382.                 new UnitState(new Point(1.6494955913113956, 2.113333333333358), 0.55, true, true),
  383.                 new UnitState(new Point(1.650608127153847, 2.113333333333358), 0.55, true, true),
  384.                 new UnitState(new Point(1.6493948157786553, 2.1116666666666917), 0.55, true, true),
  385.                 new UnitState(new Point(1.6481815044034636, 2.110000000000025), 0.55, true, true),
  386.                 new UnitState(new Point(1.6469681930282718, 2.1083333333333587), 0.55, true, true),
  387.                 new UnitState(new Point(1.64575488165308, 2.1066666666666922), 0.55, true, true),
  388.                 new UnitState(new Point(1.6445415702778883, 2.1050000000000257), 0.55, true, true),
  389.                 new UnitState(new Point(1.6433282589026965, 2.1033333333333593), 0.55, true, true),
  390.                 new UnitState(new Point(1.6421149475275048, 2.1016666666666928), 0.55, true, true),
  391.                 new UnitState(new Point(1.640901636152313, 2.1000000000000263), 0.55, true, true),
  392.                 new UnitState(new Point(1.6396883247771212, 2.09833333333336), 0.525, true, false),
  393.                 new UnitState(new Point(1.6384750134019295, 2.101666666666693), 0.55, true, true),
  394.                 new UnitState(new Point(1.6372617020267377, 2.1000000000000267), 0.55, true, true),
  395.                 new UnitState(new Point(1.636048390651546, 2.0983333333333603), 0.525, true, false),
  396.                 new UnitState(new Point(1.6348350792763542, 2.1016666666666937), 0.55, true, true),
  397.                 new UnitState(new Point(1.6336217679011624, 2.100000000000027), 0.55, true, true),
  398.                 new UnitState(new Point(1.6324084565259707, 2.0983333333333607), 0.525, true, false),
  399.                 new UnitState(new Point(1.631195145150779, 2.101666666666694), 0.55, true, true),
  400.                 new UnitState(new Point(1.6299818337755871, 2.1000000000000276), 0.55, true, true),
  401.                 new UnitState(new Point(1.6287685224003954, 2.098333333333361), 0.525, true, false),
  402.                 new UnitState(new Point(1.6275552110252036, 2.1016666666666945), 0.55, true, true),
  403.                 new UnitState(new Point(1.6266555276003325, 2.1016666666666945), 0.55, true, true),
  404.                 new UnitState(new Point(1.626186742126239, 2.1016666666666945), 0.55, true, true),
  405.                 new UnitState(new Point(1.6257179566521456, 2.1016666666666945), 0.55, true, true),
  406.                 new UnitState(new Point(1.6252491711780521, 2.1016666666666945), 0.55, true, true),
  407.                 new UnitState(new Point(1.6247803857039587, 2.1016666666666945), 0.55, true, true),
  408.                 new UnitState(new Point(1.6243116002298652, 2.1016666666666945), 0.55, true, true),
  409.                 new UnitState(new Point(1.6238428147557717, 2.1016666666666945), 0.55, true, true),
  410.                 new UnitState(new Point(1.6233740292816783, 2.1016666666666945), 0.55, true, true),
  411.                 new UnitState(new Point(1.6229052438075848, 2.1016666666666945), 0.55, true, true),
  412.                 new UnitState(new Point(1.6224364583334914, 2.1016666666666945), 0.55, true, true),
  413.                 new UnitState(new Point(1.6211275226546782, 2.1016666666666945), 0.55, true, true),
  414.                 new UnitState(new Point(1.6224230625625706, 2.103333333333361), 0.55, true, true),
  415.                 new UnitState(new Point(1.623718602470463, 2.1050000000000275), 0.55, true, true),
  416.                 new UnitState(new Point(1.6250141423783555, 2.106666666666694), 0.55, true, true),
  417.                 new UnitState(new Point(1.626309682286248, 2.1083333333333605), 0.55, true, true),
  418.                 new UnitState(new Point(1.6276052221941404, 2.110000000000027), 0.55, true, true),
  419.                 new UnitState(new Point(1.6289007621020328, 2.1116666666666934), 0.55, true, true),
  420.                 new UnitState(new Point(1.6301963020099253, 2.11333333333336), 0.55, true, true),
  421.                 new UnitState(new Point(1.6314918419178177, 2.1150000000000264), 0.55, true, true),
  422.                 new UnitState(new Point(1.6327873818257101, 2.116666666666693), 0.55, true, true),
  423.                 new UnitState(new Point(1.6340829217336026, 2.1183333333333594), 0.55, true, true),
  424.                 new UnitState(new Point(1.635378461641495, 2.120000000000026), 0.55, true, true),
  425.                 new UnitState(new Point(1.6366740015493875, 2.1216666666666923), 0.55, true, true),
  426.                 new UnitState(new Point(1.6372372189980477, 2.123333333333359), 0.55, true, true),
  427.                 new UnitState(new Point(1.637800436446708, 2.1250000000000253), 0.55, true, true),
  428.                 new UnitState(new Point(1.6383636538953683, 2.126666666666692), 0.55, true, true),
  429.                 new UnitState(new Point(1.6389268713440286, 2.1283333333333583), 0.55, true, true),
  430.                 new UnitState(new Point(1.6394900887926889, 2.1300000000000248), 0.55, true, true),
  431.                 new UnitState(new Point(1.6400533062413492, 2.1316666666666912), 0.55, true, true),
  432.                 new UnitState(new Point(1.6406165236900094, 2.1333333333333577), 0.55, true, true),
  433.                 new UnitState(new Point(1.6411797411386697, 2.135000000000024), 0.55, true, true),
  434.                 new UnitState(new Point(1.64174295858733, 2.1366666666666907), 0.55, true, true),
  435.                 new UnitState(new Point(1.6423061760359903, 2.138333333333357), 0.55, true, true),
  436.                 new UnitState(new Point(1.6428693934846506, 2.1400000000000237), 0.55, true, true),
  437.                 new UnitState(new Point(1.6434326109333108, 2.14166666666669), 0.55, true, true),
  438.                 new UnitState(new Point(1.6439958283819711, 2.1433333333333566), 0.55, true, true),
  439.                 new UnitState(new Point(1.6445590458306314, 2.145000000000023), 0.55, true, true),
  440.                 new UnitState(new Point(1.6451222632792917, 2.1466666666666896), 0.55, true, true),
  441.                 new UnitState(new Point(1.645685480727952, 2.148333333333356), 0.55, true, true),
  442.                 new UnitState(new Point(1.6462486981766122, 2.1500000000000226), 0.55, true, true),
  443.                 new UnitState(new Point(1.6458288362111122, 2.151666666666689), 0.55, true, true),
  444.                 new UnitState(new Point(1.6454089742456122, 2.1533333333333555), 0.55, true, true),
  445.                 new UnitState(new Point(1.6449891122801121, 2.155000000000022), 0.55, true, true),
  446.                 new UnitState(new Point(1.644569250314612, 2.1566666666666885), 0.55, true, true),
  447.                 new UnitState(new Point(1.644149388349112, 2.158333333333355), 0.55, true, true),
  448.                 new UnitState(new Point(1.644400071734694, 2.1600000000000215), 0.55, true, true),
  449.                 new UnitState(new Point(1.644650755120276, 2.161666666666688), 0.55, true, true),
  450.                 new UnitState(new Point(1.644901438505858, 2.1633333333333544), 0.55, true, true),
  451.                 new UnitState(new Point(1.64515212189144, 2.165000000000021), 0.55, true, true),
  452.                 new UnitState(new Point(1.645402805277022, 2.1666666666666874), 0.55, true, true),
  453.                 new UnitState(new Point(1.645653488662604, 2.168333333333354), 0.55, true, true),
  454.                 new UnitState(new Point(1.645904172048186, 2.1700000000000204), 0.55, true, true),
  455.                 new UnitState(new Point(1.646154855433768, 2.171666666666687), 0.55, true, true),
  456.                 new UnitState(new Point(1.64640553881935, 2.1733333333333533), 0.55, true, true),
  457.                 new UnitState(new Point(1.646656222204932, 2.17500000000002), 0.55, true, true),
  458.                 new UnitState(new Point(1.646906905590514, 2.1766666666666863), 0.55, true, true),
  459.                 new UnitState(new Point(1.6471575889760959, 2.1783333333333528), 0.55, true, true),
  460.                 new UnitState(new Point(1.6474082723616779, 2.1800000000000193), 0.55, true, true),
  461.                 new UnitState(new Point(1.6476589557472598, 2.1816666666666857), 0.55, true, true),
  462.                 new UnitState(new Point(1.6479096391328418, 2.183333333333352), 0.55, true, true)
  463.         );
  464.         Plan plan = new Plan()
  465.                 .add(3, new MoveAction(2.7838159647356093, false, false))
  466.                 .add(1, new MoveAction(-5.296070340839165, false, true))
  467.                 .add(14, new MoveAction(0.3152962895792495, false, false))
  468.                 .add(18, new MoveAction(1.6765981048981633, false, true))
  469.                 .add(14, new MoveAction(5.531313046710027, true, false))
  470.                 .add(1, new MoveAction(4.27433959139719, false, false))
  471.                 .add(2, new MoveAction(8.451628766540423, true, false))
  472.                 .add(3, new MoveAction(-6.3505495813562245, true, false))
  473.                 .add(3, new MoveAction(-7.873373480246437, true, false))
  474.                 .add(6, new MoveAction(7.202155371587029, false, false))
  475.                 .add(1, new MoveAction(7.267215489213324, true, false))
  476.                 .add(1, new MoveAction(8.942296646961644, false, true))
  477.                 .add(12, new MoveAction(4.507278809312895, true, false))
  478.                 .add(19, new MoveAction(8.017316081134403, false, false))
  479.                 .add(15, new MoveAction(-5.234417485017026, true, false))
  480.                 .add(15, new MoveAction(8.812903173703049, false, true))
  481.                 .add(8, new MoveAction(8.584217037430836, false, false))
  482.                 .add(0, new MoveAction(8.005341898697662, true, false))
  483.                 .add(2, new MoveAction(-6.144189140441854, false, false))
  484.                 .add(2, new MoveAction(-5.957770836438254, true, false))
  485.                 .add(1, new MoveAction(8.011894997424914, false, false))
  486.                 .add(11, new MoveAction(2.7509196004990226, false, false))
  487.                 .add(13, new MoveAction(5.529968893920575, false, false))
  488.                 .add(3, new MoveAction(-0.8783148477506266, false, true))
  489.                 .add(10, new MoveAction(-5.473036507674762, true, false))
  490.                 .add(12, new MoveAction(9.785243217103716, false, true))
  491.                 .add(13, new MoveAction(-2.758038701751417, true, false))
  492.                 .add(18, new MoveAction(3.3019675871500365, false, true))
  493.                 .add(13, new MoveAction(-1.6288157499644935, false, true))
  494.                 .add(3, new MoveAction(6.102742512617617, false, false))
  495.                 .add(14, new MoveAction(2.5034190617518792, false, false))
  496.                 .add(16, new MoveAction(-9.230914071598185, false, false))
  497.                 .add(17, new MoveAction(7.314202670242899, false, false))
  498.                 .add(5, new MoveAction(0.3128195097827309, true, false))
  499.                 .add(13, new MoveAction(-7.287744014070214, true, false))
  500.                 .add(12, new MoveAction(-2.7867840178174985, true, false))
  501.                 .add(7, new MoveAction(7.7917935729594205, true, false))
  502.                 .add(15, new MoveAction(9.192221703605963, false, true))
  503.                 .add(7, new MoveAction(7.229514839085031, true, false))
  504.                 .add(4, new MoveAction(5.055995629112511, false, false))
  505.                 .add(16, new MoveAction(6.675215054708811, false, false))
  506.                 .add(0, new MoveAction(-6.596328558057596, true, false))
  507.                 .add(19, new MoveAction(-7.279868251150738, false, true))
  508.                 .add(1, new MoveAction(-5.398100549227101, false, false))
  509.                 .add(9, new MoveAction(-2.8127128445609673, false, false))
  510.                 .add(1, new MoveAction(-7.8536140728785035, false, false))
  511.                 .add(12, new MoveAction(7.773239447355046, true, false))
  512.                 .add(17, new MoveAction(3.3793046919611225, true, false))
  513.                 .add(5, new MoveAction(-2.519171792999771, true, false))
  514.                 .add(15, new MoveAction(1.5041003134915378, true, false));
  515.         List<UnitState> actual = simulator.simulate(start, plan);
  516.         assertEquals(actual, expected);
  517.     }
  518.  
  519.     @Test
  520.     void test2() {
  521.         UnitState start = new UnitState(new Point(15.5, 15.0), 0.0, false, false);
  522.         Tile[][] map = new Tile[][]{{WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL}, {WALL, WALL, PLATFORM, PLATFORM, JUMP_PAD, EMPTY, LADDER, PLATFORM, LADDER, LADDER, EMPTY, JUMP_PAD, LADDER, LADDER, PLATFORM, LADDER, LADDER, WALL, LADDER, WALL, JUMP_PAD, EMPTY, EMPTY, LADDER, WALL, LADDER, LADDER, LADDER, EMPTY, WALL}, {WALL, WALL, EMPTY, LADDER, WALL, WALL, EMPTY, JUMP_PAD, PLATFORM, LADDER, EMPTY, PLATFORM, LADDER, EMPTY, EMPTY, EMPTY, LADDER, WALL, PLATFORM, PLATFORM, WALL, JUMP_PAD, WALL, PLATFORM, PLATFORM, LADDER, LADDER, LADDER, JUMP_PAD, WALL}, {WALL, LADDER, WALL, PLATFORM, EMPTY, LADDER, WALL, JUMP_PAD, JUMP_PAD, LADDER, PLATFORM, EMPTY, PLATFORM, PLATFORM, PLATFORM, EMPTY, JUMP_PAD, WALL, PLATFORM, PLATFORM, JUMP_PAD, EMPTY, LADDER, LADDER, LADDER, WALL, PLATFORM, EMPTY, WALL, WALL}, {WALL, LADDER, PLATFORM, JUMP_PAD, JUMP_PAD, LADDER, EMPTY, EMPTY, JUMP_PAD, EMPTY, EMPTY, PLATFORM, JUMP_PAD, JUMP_PAD, EMPTY, JUMP_PAD, WALL, LADDER, EMPTY, PLATFORM, JUMP_PAD, JUMP_PAD, WALL, EMPTY, JUMP_PAD, JUMP_PAD, EMPTY, LADDER, JUMP_PAD, WALL}, {WALL, JUMP_PAD, PLATFORM, PLATFORM, WALL, JUMP_PAD, EMPTY, LADDER, WALL, WALL, WALL, JUMP_PAD, EMPTY, EMPTY, WALL, LADDER, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, LADDER, JUMP_PAD, LADDER, LADDER, WALL, WALL, LADDER, EMPTY, WALL}, {WALL, EMPTY, PLATFORM, EMPTY, PLATFORM, JUMP_PAD, LADDER, WALL, EMPTY, JUMP_PAD, LADDER, PLATFORM, WALL, WALL, EMPTY, PLATFORM, EMPTY, LADDER, JUMP_PAD, PLATFORM, WALL, JUMP_PAD, LADDER, EMPTY, WALL, JUMP_PAD, LADDER, JUMP_PAD, LADDER, WALL}, {WALL, JUMP_PAD, WALL, WALL, WALL, EMPTY, LADDER, LADDER, JUMP_PAD, WALL, WALL, WALL, JUMP_PAD, LADDER, LADDER, JUMP_PAD, WALL, EMPTY, PLATFORM, JUMP_PAD, EMPTY, LADDER, EMPTY, WALL, WALL, EMPTY, PLATFORM, JUMP_PAD, LADDER, WALL}, {WALL, JUMP_PAD, WALL, JUMP_PAD, LADDER, PLATFORM, JUMP_PAD, JUMP_PAD, LADDER, PLATFORM, PLATFORM, LADDER, PLATFORM, WALL, PLATFORM, PLATFORM, LADDER, EMPTY, LADDER, LADDER, PLATFORM, JUMP_PAD, JUMP_PAD, WALL, EMPTY, LADDER, JUMP_PAD, EMPTY, PLATFORM, WALL}, {WALL, LADDER, JUMP_PAD, LADDER, LADDER, EMPTY, WALL, WALL, JUMP_PAD, LADDER, EMPTY, LADDER, LADDER, EMPTY, LADDER, LADDER, JUMP_PAD, LADDER, EMPTY, JUMP_PAD, WALL, PLATFORM, PLATFORM, LADDER, JUMP_PAD, JUMP_PAD, WALL, EMPTY, WALL, WALL}, {WALL, EMPTY, LADDER, EMPTY, WALL, EMPTY, LADDER, WALL, LADDER, JUMP_PAD, WALL, JUMP_PAD, PLATFORM, EMPTY, EMPTY, WALL, WALL, WALL, WALL, PLATFORM, LADDER, PLATFORM, LADDER, WALL, PLATFORM, PLATFORM, EMPTY, JUMP_PAD, LADDER, WALL}, {WALL, EMPTY, EMPTY, LADDER, PLATFORM, EMPTY, PLATFORM, LADDER, LADDER, PLATFORM, LADDER, WALL, JUMP_PAD, WALL, EMPTY, PLATFORM, JUMP_PAD, LADDER, WALL, JUMP_PAD, EMPTY, WALL, PLATFORM, EMPTY, LADDER, PLATFORM, EMPTY, PLATFORM, JUMP_PAD, WALL}, {WALL, EMPTY, PLATFORM, LADDER, WALL, WALL, LADDER, PLATFORM, LADDER, PLATFORM, LADDER, JUMP_PAD, LADDER, LADDER, PLATFORM, WALL, EMPTY, EMPTY, LADDER, WALL, LADDER, WALL, PLATFORM, JUMP_PAD, JUMP_PAD, PLATFORM, WALL, JUMP_PAD, PLATFORM, WALL}, {WALL, LADDER, PLATFORM, JUMP_PAD, WALL, PLATFORM, JUMP_PAD, WALL, JUMP_PAD, PLATFORM, JUMP_PAD, WALL, EMPTY, LADDER, WALL, PLATFORM, JUMP_PAD, PLATFORM, PLATFORM, PLATFORM, WALL, EMPTY, PLATFORM, LADDER, LADDER, JUMP_PAD, JUMP_PAD, PLATFORM, JUMP_PAD, WALL}, {WALL, EMPTY, WALL, JUMP_PAD, WALL, PLATFORM, WALL, PLATFORM, WALL, JUMP_PAD, WALL, PLATFORM, LADDER, JUMP_PAD, LADDER, LADDER, LADDER, WALL, JUMP_PAD, JUMP_PAD, WALL, EMPTY, LADDER, JUMP_PAD, EMPTY, JUMP_PAD, PLATFORM, PLATFORM, PLATFORM, WALL}, {WALL, EMPTY, EMPTY, WALL, WALL, WALL, JUMP_PAD, WALL, EMPTY, WALL, EMPTY, LADDER, PLATFORM, LADDER, JUMP_PAD, EMPTY, PLATFORM, LADDER, JUMP_PAD, EMPTY, EMPTY, LADDER, JUMP_PAD, PLATFORM, JUMP_PAD, PLATFORM, WALL, LADDER, PLATFORM, WALL}, {WALL, PLATFORM, PLATFORM, PLATFORM, JUMP_PAD, WALL, LADDER, EMPTY, PLATFORM, LADDER, WALL, EMPTY, LADDER, LADDER, EMPTY, WALL, EMPTY, JUMP_PAD, JUMP_PAD, PLATFORM, PLATFORM, EMPTY, EMPTY, WALL, LADDER, PLATFORM, PLATFORM, LADDER, PLATFORM, WALL}, {WALL, EMPTY, JUMP_PAD, WALL, WALL, PLATFORM, EMPTY, EMPTY, PLATFORM, JUMP_PAD, JUMP_PAD, PLATFORM, EMPTY, LADDER, WALL, EMPTY, PLATFORM, WALL, WALL, JUMP_PAD, WALL, WALL, LADDER, EMPTY, WALL, JUMP_PAD, LADDER, PLATFORM, LADDER, WALL}, {WALL, JUMP_PAD, PLATFORM, PLATFORM, JUMP_PAD, PLATFORM, WALL, PLATFORM, JUMP_PAD, EMPTY, JUMP_PAD, EMPTY, EMPTY, LADDER, EMPTY, PLATFORM, PLATFORM, LADDER, JUMP_PAD, WALL, JUMP_PAD, JUMP_PAD, EMPTY, LADDER, LADDER, JUMP_PAD, PLATFORM, WALL, LADDER, WALL}, {WALL, WALL, PLATFORM, PLATFORM, JUMP_PAD, WALL, EMPTY, WALL, EMPTY, PLATFORM, JUMP_PAD, LADDER, JUMP_PAD, LADDER, WALL, LADDER, JUMP_PAD, JUMP_PAD, JUMP_PAD, WALL, LADDER, LADDER, LADDER, LADDER, LADDER, EMPTY, EMPTY, PLATFORM, PLATFORM, WALL}, {WALL, PLATFORM, LADDER, WALL, EMPTY, PLATFORM, JUMP_PAD, JUMP_PAD, PLATFORM, EMPTY, WALL, EMPTY, WALL, EMPTY, WALL, JUMP_PAD, WALL, WALL, LADDER, EMPTY, WALL, WALL, EMPTY, WALL, WALL, EMPTY, EMPTY, EMPTY, LADDER, WALL}, {WALL, WALL, JUMP_PAD, WALL, EMPTY, JUMP_PAD, JUMP_PAD, WALL, PLATFORM, EMPTY, WALL, PLATFORM, WALL, PLATFORM, EMPTY, LADDER, JUMP_PAD, PLATFORM, JUMP_PAD, LADDER, EMPTY, EMPTY, WALL, LADDER, LADDER, EMPTY, LADDER, JUMP_PAD, PLATFORM, WALL}, {WALL, PLATFORM, EMPTY, PLATFORM, EMPTY, LADDER, WALL, JUMP_PAD, LADDER, WALL, JUMP_PAD, WALL, EMPTY, WALL, LADDER, EMPTY, WALL, EMPTY, JUMP_PAD, LADDER, PLATFORM, PLATFORM, LADDER, PLATFORM, WALL, WALL, LADDER, JUMP_PAD, WALL, WALL}, {WALL, WALL, LADDER, JUMP_PAD, EMPTY, WALL, PLATFORM, WALL, WALL, EMPTY, WALL, JUMP_PAD, JUMP_PAD, EMPTY, JUMP_PAD, WALL, WALL, WALL, LADDER, JUMP_PAD, PLATFORM, WALL, LADDER, PLATFORM, WALL, JUMP_PAD, WALL, PLATFORM, WALL, WALL}, {WALL, LADDER, LADDER, LADDER, PLATFORM, EMPTY, PLATFORM, EMPTY, EMPTY, EMPTY, LADDER, WALL, WALL, WALL, LADDER, PLATFORM, EMPTY, EMPTY, WALL, EMPTY, LADDER, WALL, LADDER, EMPTY, EMPTY, LADDER, JUMP_PAD, JUMP_PAD, PLATFORM, WALL}, {WALL, LADDER, JUMP_PAD, LADDER, EMPTY, JUMP_PAD, LADDER, JUMP_PAD, WALL, EMPTY, LADDER, EMPTY, PLATFORM, JUMP_PAD, PLATFORM, JUMP_PAD, WALL, PLATFORM, LADDER, LADDER, WALL, PLATFORM, LADDER, LADDER, EMPTY, PLATFORM, EMPTY, WALL, EMPTY, WALL}, {WALL, WALL, PLATFORM, WALL, WALL, LADDER, WALL, WALL, LADDER, EMPTY, JUMP_PAD, EMPTY, EMPTY, JUMP_PAD, JUMP_PAD, PLATFORM, PLATFORM, EMPTY, LADDER, LADDER, PLATFORM, JUMP_PAD, EMPTY, WALL, LADDER, EMPTY, JUMP_PAD, WALL, LADDER, WALL}, {WALL, PLATFORM, LADDER, LADDER, EMPTY, EMPTY, PLATFORM, LADDER, WALL, EMPTY, JUMP_PAD, PLATFORM, LADDER, JUMP_PAD, LADDER, LADDER, WALL, PLATFORM, LADDER, PLATFORM, EMPTY, PLATFORM, LADDER, EMPTY, EMPTY, LADDER, WALL, WALL, PLATFORM, WALL}, {WALL, LADDER, PLATFORM, WALL, PLATFORM, WALL, JUMP_PAD, PLATFORM, EMPTY, EMPTY, LADDER, JUMP_PAD, WALL, WALL, EMPTY, LADDER, EMPTY, PLATFORM, PLATFORM, PLATFORM, LADDER, PLATFORM, LADDER, JUMP_PAD, LADDER, WALL, EMPTY, EMPTY, EMPTY, WALL}, {WALL, WALL, WALL, WALL, WALL, WALL, WALL, JUMP_PAD, EMPTY, EMPTY, LADDER, JUMP_PAD, LADDER, LADDER, JUMP_PAD, JUMP_PAD, WALL, JUMP_PAD, WALL, JUMP_PAD, LADDER, JUMP_PAD, WALL, EMPTY, WALL, JUMP_PAD, EMPTY, JUMP_PAD, JUMP_PAD, WALL}, {WALL, EMPTY, JUMP_PAD, EMPTY, JUMP_PAD, PLATFORM, PLATFORM, WALL, JUMP_PAD, PLATFORM, PLATFORM, JUMP_PAD, EMPTY, WALL, LADDER, LADDER, PLATFORM, JUMP_PAD, WALL, PLATFORM, EMPTY, LADDER, WALL, LADDER, PLATFORM, EMPTY, PLATFORM, LADDER, WALL, WALL}, {WALL, EMPTY, LADDER, EMPTY, LADDER, PLATFORM, WALL, WALL, EMPTY, PLATFORM, WALL, PLATFORM, WALL, JUMP_PAD, WALL, WALL, PLATFORM, JUMP_PAD, WALL, PLATFORM, EMPTY, WALL, LADDER, PLATFORM, WALL, JUMP_PAD, LADDER, JUMP_PAD, WALL, WALL}, {WALL, WALL, WALL, LADDER, LADDER, PLATFORM, EMPTY, LADDER, EMPTY, JUMP_PAD, WALL, LADDER, LADDER, JUMP_PAD, WALL, JUMP_PAD, EMPTY, PLATFORM, JUMP_PAD, PLATFORM, JUMP_PAD, JUMP_PAD, LADDER, JUMP_PAD, PLATFORM, PLATFORM, LADDER, JUMP_PAD, PLATFORM, WALL}, {WALL, WALL, PLATFORM, WALL, PLATFORM, WALL, WALL, JUMP_PAD, EMPTY, LADDER, EMPTY, LADDER, JUMP_PAD, JUMP_PAD, LADDER, JUMP_PAD, WALL, WALL, JUMP_PAD, PLATFORM, EMPTY, LADDER, EMPTY, PLATFORM, WALL, JUMP_PAD, LADDER, PLATFORM, LADDER, WALL}, {WALL, LADDER, PLATFORM, JUMP_PAD, EMPTY, JUMP_PAD, WALL, LADDER, EMPTY, JUMP_PAD, EMPTY, WALL, WALL, PLATFORM, EMPTY, WALL, JUMP_PAD, EMPTY, JUMP_PAD, WALL, JUMP_PAD, EMPTY, PLATFORM, JUMP_PAD, EMPTY, EMPTY, EMPTY, LADDER, JUMP_PAD, WALL}, {WALL, LADDER, EMPTY, LADDER, LADDER, EMPTY, PLATFORM, PLATFORM, WALL, JUMP_PAD, PLATFORM, EMPTY, PLATFORM, EMPTY, JUMP_PAD, JUMP_PAD, WALL, LADDER, LADDER, LADDER, PLATFORM, JUMP_PAD, WALL, EMPTY, WALL, LADDER, JUMP_PAD, EMPTY, JUMP_PAD, WALL}, {WALL, LADDER, WALL, PLATFORM, WALL, WALL, WALL, JUMP_PAD, PLATFORM, JUMP_PAD, EMPTY, LADDER, EMPTY, PLATFORM, PLATFORM, WALL, LADDER, WALL, PLATFORM, WALL, EMPTY, PLATFORM, JUMP_PAD, PLATFORM, LADDER, JUMP_PAD, WALL, WALL, JUMP_PAD, WALL}, {WALL, JUMP_PAD, LADDER, LADDER, LADDER, EMPTY, EMPTY, JUMP_PAD, LADDER, JUMP_PAD, WALL, PLATFORM, EMPTY, WALL, JUMP_PAD, LADDER, EMPTY, LADDER, EMPTY, PLATFORM, LADDER, WALL, LADDER, EMPTY, EMPTY, WALL, JUMP_PAD, EMPTY, JUMP_PAD, WALL}, {WALL, EMPTY, EMPTY, WALL, JUMP_PAD, WALL, WALL, JUMP_PAD, LADDER, EMPTY, WALL, EMPTY, PLATFORM, LADDER, LADDER, WALL, LADDER, EMPTY, EMPTY, EMPTY, LADDER, LADDER, JUMP_PAD, EMPTY, EMPTY, JUMP_PAD, LADDER, EMPTY, LADDER, WALL}, {WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL}};
  523.         Simulator simulator = new Simulator(map, (int) 6000.0, 1);
  524.         List<UnitState> expected = Arrays.asList(
  525.                 new UnitState(new Point(15.501360743369583, 14.998333333333333), 0.525, true, false),
  526.                 new UnitState(new Point(15.502721486739166, 15.001666666666667), 0.5248333333333334, true, false),
  527.                 new UnitState(new Point(15.504082230108748, 15.005), 0.5246666666666667, true, false),
  528.                 new UnitState(new Point(15.505442973478331, 15.008333333333335), 0.5245000000000001, true, false),
  529.                 new UnitState(new Point(15.506803716847914, 15.011666666666668), 0.5243333333333334, true, false),
  530.                 new UnitState(new Point(15.508164460217497, 15.015000000000002), 0.5241666666666668, true, false),
  531.                 new UnitState(new Point(15.50952520358708, 15.018333333333336), 0.5240000000000001, true, false),
  532.                 new UnitState(new Point(15.510885946956662, 15.02166666666667), 0.5238333333333335, true, false),
  533.                 new UnitState(new Point(15.510702512990013, 15.025000000000004), 0.5236666666666668, true, false),
  534.                 new UnitState(new Point(15.510519079023364, 15.028333333333338), 0.5235000000000002, true, false),
  535.                 new UnitState(new Point(15.510335645056715, 15.031666666666672), 0.5233333333333335, true, false),
  536.                 new UnitState(new Point(15.510152211090066, 15.035000000000005), 0.5231666666666669, true, false),
  537.                 new UnitState(new Point(15.509968777123417, 15.03833333333334), 0.5230000000000002, true, false),
  538.                 new UnitState(new Point(15.508736684477913, 15.041666666666673), 0.5228333333333336, true, false),
  539.                 new UnitState(new Point(15.509284798794848, 15.045000000000007), 0.522666666666667, true, false),
  540.                 new UnitState(new Point(15.509832913111783, 15.048333333333341), 0.5225000000000003, true, false),
  541.                 new UnitState(new Point(15.509215392696749, 15.051666666666675), 0.5223333333333336, true, false),
  542.                 new UnitState(new Point(15.508597872281715, 15.055000000000009), 0.522166666666667, true, false),
  543.                 new UnitState(new Point(15.507980351866681, 15.058333333333342), 0.5220000000000004, true, false),
  544.                 new UnitState(new Point(15.507362831451648, 15.061666666666676), 0.5218333333333337, true, false),
  545.                 new UnitState(new Point(15.506745311036614, 15.06500000000001), 0.5216666666666671, true, false),
  546.                 new UnitState(new Point(15.50612779062158, 15.068333333333344), 0.5215000000000004, true, false),
  547.                 new UnitState(new Point(15.505510270206546, 15.071666666666678), 0.5213333333333338, true, false),
  548.                 new UnitState(new Point(15.504892749791512, 15.075000000000012), 0.5211666666666671, true, false),
  549.                 new UnitState(new Point(15.504275229376479, 15.078333333333346), 0.5210000000000005, true, false),
  550.                 new UnitState(new Point(15.503657708961445, 15.08166666666668), 0.5208333333333338, true, false),
  551.                 new UnitState(new Point(15.50304018854641, 15.085000000000013), 0.5206666666666672, true, false),
  552.                 new UnitState(new Point(15.502422668131377, 15.088333333333347), 0.5205000000000005, true, false),
  553.                 new UnitState(new Point(15.501805147716343, 15.091666666666681), 0.5203333333333339, true, false),
  554.                 new UnitState(new Point(15.50118762730131, 15.095000000000015), 0.5201666666666672, true, false),
  555.                 new UnitState(new Point(15.501475658142107, 15.098333333333349), 0.5200000000000006, true, false),
  556.                 new UnitState(new Point(15.501763688982905, 15.101666666666683), 0.5198333333333339, true, false),
  557.                 new UnitState(new Point(15.502051719823703, 15.105000000000016), 0.5196666666666673, true, false),
  558.                 new UnitState(new Point(15.5023397506645, 15.10833333333335), 0.5195000000000006, true, false),
  559.                 new UnitState(new Point(15.503048108375985, 15.111666666666684), 0.519333333333334, true, false),
  560.                 new UnitState(new Point(15.50375646608747, 15.115000000000018), 0.5191666666666673, true, false),
  561.                 new UnitState(new Point(15.504464823798955, 15.118333333333352), 0.5190000000000007, true, false),
  562.                 new UnitState(new Point(15.50517318151044, 15.121666666666686), 0.518833333333334, true, false),
  563.                 new UnitState(new Point(15.505881539221924, 15.12500000000002), 0.5186666666666674, true, false),
  564.                 new UnitState(new Point(15.50658989693341, 15.128333333333353), 0.5185000000000007, true, false),
  565.                 new UnitState(new Point(15.507298254644894, 15.131666666666687), 0.5183333333333341, true, false),
  566.                 new UnitState(new Point(15.508006612356379, 15.135000000000021), 0.5181666666666674, true, false),
  567.                 new UnitState(new Point(15.508714970067864, 15.138333333333355), 0.5180000000000008, true, false),
  568.                 new UnitState(new Point(15.509423327779349, 15.141666666666689), 0.5178333333333341, true, false),
  569.                 new UnitState(new Point(15.510131685490833, 15.145000000000023), 0.5176666666666675, true, false),
  570.                 new UnitState(new Point(15.510840043202318, 15.148333333333357), 0.5175000000000008, true, false),
  571.                 new UnitState(new Point(15.511548400913803, 15.15166666666669), 0.5173333333333342, true, false),
  572.                 new UnitState(new Point(15.512256758625288, 15.155000000000024), 0.5171666666666676, true, false),
  573.                 new UnitState(new Point(15.512965116336773, 15.158333333333358), 0.5170000000000009, true, false),
  574.                 new UnitState(new Point(15.513673474048257, 15.161666666666692), 0.5168333333333343, true, false),
  575.                 new UnitState(new Point(15.514381831759742, 15.165000000000026), 0.5166666666666676, true, false),
  576.                 new UnitState(new Point(15.515700986858054, 15.16833333333336), 0.516500000000001, true, false),
  577.                 new UnitState(new Point(15.517020141956365, 15.171666666666694), 0.5163333333333343, true, false),
  578.                 new UnitState(new Point(15.518339297054677, 15.175000000000027), 0.5161666666666677, true, false),
  579.                 new UnitState(new Point(15.519658452152989, 15.178333333333361), 0.516000000000001, true, false),
  580.                 new UnitState(new Point(15.5209776072513, 15.181666666666695), 0.5158333333333344, true, false),
  581.                 new UnitState(new Point(15.522296762349612, 15.185000000000029), 0.5156666666666677, true, false),
  582.                 new UnitState(new Point(15.522193939798996, 15.188333333333363), 0.5155000000000011, true, false),
  583.                 new UnitState(new Point(15.52209111724838, 15.191666666666697), 0.5153333333333344, true, false),
  584.                 new UnitState(new Point(15.521988294697763, 15.19500000000003), 0.5151666666666678, true, false),
  585.                 new UnitState(new Point(15.521885472147147, 15.198333333333364), 0.5150000000000011, true, false),
  586.                 new UnitState(new Point(15.521782649596531, 15.201666666666698), 0.5148333333333345, true, false),
  587.                 new UnitState(new Point(15.521679827045915, 15.205000000000032), 0.5146666666666678, true, false),
  588.                 new UnitState(new Point(15.521577004495299, 15.208333333333366), 0.5145000000000012, true, false),
  589.                 new UnitState(new Point(15.521474181944683, 15.2116666666667), 0.5143333333333345, true, false),
  590.                 new UnitState(new Point(15.521371359394067, 15.215000000000034), 0.5141666666666679, true, false),
  591.                 new UnitState(new Point(15.52126853684345, 15.218333333333367), 0.5140000000000012, true, false),
  592.                 new UnitState(new Point(15.521686352345649, 15.221666666666701), 0.5138333333333346, true, false),
  593.                 new UnitState(new Point(15.522104167847846, 15.225000000000035), 0.5136666666666679, true, false),
  594.                 new UnitState(new Point(15.522521983350044, 15.228333333333369), 0.5135000000000013, true, false),
  595.                 new UnitState(new Point(15.522939798852242, 15.231666666666703), 0.5133333333333346, true, false),
  596.                 new UnitState(new Point(15.52335761435444, 15.235000000000037), 0.513166666666668, true, false),
  597.                 new UnitState(new Point(15.523775429856638, 15.23833333333337), 0.5130000000000013, true, false),
  598.                 new UnitState(new Point(15.524193245358836, 15.241666666666704), 0.5128333333333347, true, false),
  599.                 new UnitState(new Point(15.524611060861034, 15.245000000000038), 0.512666666666668, true, false),
  600.                 new UnitState(new Point(15.525028876363232, 15.248333333333372), 0.5125000000000014, true, false),
  601.                 new UnitState(new Point(15.52544669186543, 15.251666666666706), 0.5123333333333348, true, false),
  602.                 new UnitState(new Point(15.525864507367627, 15.25500000000004), 0.5121666666666681, true, false),
  603.                 new UnitState(new Point(15.526282322869825, 15.258333333333374), 0.5120000000000015, true, false),
  604.                 new UnitState(new Point(15.526700138372023, 15.261666666666708), 0.5118333333333348, true, false),
  605.                 new UnitState(new Point(15.527117953874221, 15.265000000000041), 0.5116666666666682, true, false),
  606.                 new UnitState(new Point(15.527535769376419, 15.268333333333375), 0.5115000000000015, true, false),
  607.                 new UnitState(new Point(15.527953584878617, 15.27166666666671), 0.5113333333333349, true, false),
  608.                 new UnitState(new Point(15.52901499569644, 15.275000000000043), 0.5111666666666682, true, false),
  609.                 new UnitState(new Point(15.530076406514262, 15.278333333333377), 0.5110000000000016, true, false),
  610.                 new UnitState(new Point(15.531137817332084, 15.28166666666671), 0.5108333333333349, true, false),
  611.                 new UnitState(new Point(15.532199228149906, 15.285000000000045), 0.5106666666666683, true, false),
  612.                 new UnitState(new Point(15.533260638967729, 15.288333333333378), 0.5105000000000016, true, false),
  613.                 new UnitState(new Point(15.534322049785551, 15.291666666666712), 0.510333333333335, true, false),
  614.                 new UnitState(new Point(15.535383460603374, 15.295000000000046), 0.5101666666666683, true, false),
  615.                 new UnitState(new Point(15.536444871421196, 15.29833333333338), 0.5100000000000017, true, false),
  616.                 new UnitState(new Point(15.537506282239018, 15.301666666666714), 0.509833333333335, true, false),
  617.                 new UnitState(new Point(15.537231506432668, 15.305000000000048), 0.5096666666666684, true, false),
  618.                 new UnitState(new Point(15.536956730626319, 15.308333333333382), 0.5095000000000017, true, false),
  619.                 new UnitState(new Point(15.536681954819969, 15.311666666666715), 0.5093333333333351, true, false),
  620.                 new UnitState(new Point(15.536407179013619, 15.31500000000005), 0.5091666666666684, true, false),
  621.                 new UnitState(new Point(15.536132403207269, 15.318333333333383), 0.5090000000000018, true, false),
  622.                 new UnitState(new Point(15.535857627400919, 15.321666666666717), 0.5088333333333351, true, false),
  623.                 new UnitState(new Point(15.535582851594569, 15.32500000000005), 0.5086666666666685, true, false),
  624.                 new UnitState(new Point(15.535308075788219, 15.328333333333385), 0.5085000000000018, true, false),
  625.                 new UnitState(new Point(15.534476338238711, 15.331666666666719), 0.5083333333333352, true, false),
  626.                 new UnitState(new Point(15.533644600689204, 15.335000000000052), 0.5081666666666685, true, false),
  627.                 new UnitState(new Point(15.532812863139696, 15.338333333333386), 0.5080000000000019, true, false),
  628.                 new UnitState(new Point(15.531981125590189, 15.34166666666672), 0.5078333333333352, true, false),
  629.                 new UnitState(new Point(15.531149388040681, 15.345000000000054), 0.5076666666666686, true, false),
  630.                 new UnitState(new Point(15.530317650491174, 15.348333333333388), 0.507500000000002, true, false),
  631.                 new UnitState(new Point(15.529485912941666, 15.351666666666722), 0.5073333333333353, true, false),
  632.                 new UnitState(new Point(15.528654175392159, 15.355000000000055), 0.5071666666666687, true, false),
  633.                 new UnitState(new Point(15.527822437842651, 15.35833333333339), 0.507000000000002, true, false),
  634.                 new UnitState(new Point(15.526990700293144, 15.361666666666723), 0.5068333333333354, true, false),
  635.                 new UnitState(new Point(15.526158962743636, 15.365000000000057), 0.5066666666666687, true, false),
  636.                 new UnitState(new Point(15.525327225194129, 15.368333333333391), 0.5065000000000021, true, false),
  637.                 new UnitState(new Point(15.524495487644622, 15.371666666666725), 0.5063333333333354, true, false),
  638.                 new UnitState(new Point(15.523663750095114, 15.375000000000059), 0.5061666666666688, true, false),
  639.                 new UnitState(new Point(15.522832012545607, 15.378333333333392), 0.5060000000000021, true, false),
  640.                 new UnitState(new Point(15.522000274996099, 15.381666666666726), 0.5058333333333355, true, false),
  641.                 new UnitState(new Point(15.521168537446592, 15.38500000000006), 0.5056666666666688, true, false),
  642.                 new UnitState(new Point(15.520336799897084, 15.388333333333394), 0.5055000000000022, true, false),
  643.                 new UnitState(new Point(15.520827074801543, 15.391666666666728), 0.5053333333333355, true, false),
  644.                 new UnitState(new Point(15.521317349706003, 15.395000000000062), 0.5051666666666689, true, false),
  645.                 new UnitState(new Point(15.521807624610462, 15.398333333333396), 0.5050000000000022, true, false),
  646.                 new UnitState(new Point(15.522297899514921, 15.40166666666673), 0.5048333333333356, true, false),
  647.                 new UnitState(new Point(15.52278817441938, 15.405000000000063), 0.5046666666666689, true, false),
  648.                 new UnitState(new Point(15.523868095222332, 15.408333333333397), 0.5045000000000023, true, false),
  649.                 new UnitState(new Point(15.524948016025283, 15.411666666666731), 0.5043333333333356, true, false),
  650.                 new UnitState(new Point(15.526027936828234, 15.415000000000065), 0.504166666666669, true, false),
  651.                 new UnitState(new Point(15.527107857631185, 15.418333333333399), 0.5040000000000023, true, false),
  652.                 new UnitState(new Point(15.528187778434136, 15.421666666666733), 0.5038333333333357, true, false),
  653.                 new UnitState(new Point(15.529267699237087, 15.425000000000066), 0.503666666666669, true, false),
  654.                 new UnitState(new Point(15.530347620040038, 15.4283333333334), 0.5035000000000024, true, false),
  655.                 new UnitState(new Point(15.531427540842989, 15.431666666666734), 0.5033333333333357, true, false),
  656.                 new UnitState(new Point(15.531589086700945, 15.435000000000068), 0.5031666666666691, true, false),
  657.                 new UnitState(new Point(15.531750632558902, 15.438333333333402), 0.5030000000000024, true, false),
  658.                 new UnitState(new Point(15.531912178416858, 15.441666666666736), 0.5028333333333358, true, false),
  659.                 new UnitState(new Point(15.532073724274815, 15.44500000000007), 0.5026666666666691, true, false),
  660.                 new UnitState(new Point(15.532235270132771, 15.448333333333403), 0.5025000000000025, true, false),
  661.                 new UnitState(new Point(15.532396815990728, 15.451666666666737), 0.5023333333333359, true, false),
  662.                 new UnitState(new Point(15.531108599458138, 15.455000000000071), 0.5021666666666692, true, false),
  663.                 new UnitState(new Point(15.529820382925548, 15.458333333333405), 0.5020000000000026, true, false),
  664.                 new UnitState(new Point(15.528532166392958, 15.461666666666739), 0.5018333333333359, true, false),
  665.                 new UnitState(new Point(15.527243949860368, 15.465000000000073), 0.5016666666666693, true, false),
  666.                 new UnitState(new Point(15.525955733327779, 15.468333333333407), 0.5015000000000026, true, false),
  667.                 new UnitState(new Point(15.524667516795189, 15.47166666666674), 0.501333333333336, true, false),
  668.                 new UnitState(new Point(15.523379300262599, 15.475000000000074), 0.5011666666666693, true, false),
  669.                 new UnitState(new Point(15.52209108373001, 15.478333333333408), 0.5010000000000027, true, false),
  670.                 new UnitState(new Point(15.521895447463438, 15.481666666666742), 0.500833333333336, true, false),
  671.                 new UnitState(new Point(15.521699811196866, 15.485000000000076), 0.5006666666666694, true, false),
  672.                 new UnitState(new Point(15.521504174930294, 15.48833333333341), 0.5005000000000027, true, false),
  673.                 new UnitState(new Point(15.521308538663723, 15.491666666666744), 0.5003333333333361, true, false),
  674.                 new UnitState(new Point(15.521112902397151, 15.495000000000077), 0.5001666666666694, true, false),
  675.                 new UnitState(new Point(15.52091726613058, 15.498333333333411), 0.5000000000000028, true, false),
  676.                 new UnitState(new Point(15.520721629864008, 15.501666666666745), 0.4998333333333361, true, false),
  677.                 new UnitState(new Point(15.520525993597436, 15.505000000000079), 0.4996666666666695, true, false),
  678.                 new UnitState(new Point(15.520330357330865, 15.508333333333413), 0.49950000000000283, true, false),
  679.                 new UnitState(new Point(15.520134721064293, 15.511666666666747), 0.4993333333333362, true, false),
  680.                 new UnitState(new Point(15.519939084797722, 15.51500000000008), 0.49916666666666953, true, false),
  681.                 new UnitState(new Point(15.51974344853115, 15.518333333333414), 0.4990000000000029, true, false),
  682.                 new UnitState(new Point(15.519547812264578, 15.521666666666748), 0.49883333333333624, true, false),
  683.                 new UnitState(new Point(15.519352175998007, 15.525000000000082), 0.4986666666666696, true, false),
  684.                 new UnitState(new Point(15.519156539731435, 15.528333333333416), 0.49850000000000294, true, false),
  685.                 new UnitState(new Point(15.518960903464864, 15.53166666666675), 0.4983333333333363, true, false),
  686.                 new UnitState(new Point(15.518765267198292, 15.535000000000084), 0.49816666666666964, true, false),
  687.                 new UnitState(new Point(15.517451852225054, 15.538333333333417), 0.498000000000003, true, false),
  688.                 new UnitState(new Point(15.519051359424113, 15.541666666666751), 0.49783333333333635, true, false),
  689.                 new UnitState(new Point(15.520650866623171, 15.545000000000085), 0.4976666666666697, true, false),
  690.                 new UnitState(new Point(15.52225037382223, 15.548333333333419), 0.49750000000000305, true, false),
  691.                 new UnitState(new Point(15.522870092071969, 15.551666666666753), 0.4973333333333364, true, false),
  692.                 new UnitState(new Point(15.523489810321708, 15.555000000000087), 0.49716666666666975, true, false),
  693.                 new UnitState(new Point(15.524109528571447, 15.55833333333342), 0.4970000000000031, true, false),
  694.                 new UnitState(new Point(15.524729246821186, 15.561666666666754), 0.49683333333333646, true, false),
  695.                 new UnitState(new Point(15.525348965070926, 15.565000000000088), 0.4966666666666698, true, false),
  696.                 new UnitState(new Point(15.525968683320665, 15.568333333333422), 0.49650000000000316, true, false),
  697.                 new UnitState(new Point(15.526588401570404, 15.571666666666756), 0.4963333333333365, true, false),
  698.                 new UnitState(new Point(15.527208119820143, 15.57500000000009), 0.49616666666666986, true, false),
  699.                 new UnitState(new Point(15.527827838069882, 15.578333333333424), 0.4960000000000032, true, false),
  700.                 new UnitState(new Point(15.528447556319621, 15.581666666666758), 0.49583333333333657, true, false),
  701.                 new UnitState(new Point(15.526891526025166, 15.585000000000091), 0.4956666666666699, true, false),
  702.                 new UnitState(new Point(15.52533549573071, 15.588333333333425), 0.49550000000000327, true, false),
  703.                 new UnitState(new Point(15.523779465436254, 15.59166666666676), 0.4953333333333366, true, false),
  704.                 new UnitState(new Point(15.522223435141798, 15.595000000000093), 0.49516666666667, true, false),
  705.                 new UnitState(new Point(15.520667404847343, 15.598333333333427), 0.4950000000000033, true, false),
  706.                 new UnitState(new Point(15.519111374552887, 15.60166666666676), 0.4948333333333367, true, false),
  707.                 new UnitState(new Point(15.517555344258431, 15.605000000000095), 0.49466666666667003, true, false),
  708.                 new UnitState(new Point(15.515999313963976, 15.608333333333428), 0.4945000000000034, true, false),
  709.                 new UnitState(new Point(15.51444328366952, 15.611666666666762), 0.49433333333333673, true, false),
  710.                 new UnitState(new Point(15.512887253375064, 15.615000000000096), 0.4941666666666701, true, false),
  711.                 new UnitState(new Point(15.512021847545368, 15.61833333333343), 0.49400000000000344, true, false),
  712.                 new UnitState(new Point(15.511156441715672, 15.621666666666764), 0.4938333333333368, true, false),
  713.                 new UnitState(new Point(15.510291035885976, 15.625000000000098), 0.49366666666667014, true, false),
  714.                 new UnitState(new Point(15.50942563005628, 15.628333333333432), 0.4935000000000035, true, false),
  715.                 new UnitState(new Point(15.508560224226583, 15.631666666666765), 0.49333333333333684, true, false),
  716.                 new UnitState(new Point(15.507694818396887, 15.6350000000001), 0.4931666666666702, true, false),
  717.                 new UnitState(new Point(15.50682941256719, 15.638333333333433), 0.49300000000000355, true, false),
  718.                 new UnitState(new Point(15.505964006737495, 15.641666666666767), 0.4928333333333369, true, false),
  719.                 new UnitState(new Point(15.505098600907798, 15.6450000000001), 0.49266666666667025, true, false),
  720.                 new UnitState(new Point(15.504233195078102, 15.648333333333435), 0.4925000000000036, true, false),
  721.                 new UnitState(new Point(15.503367789248406, 15.651666666666769), 0.49233333333333695, true, false),
  722.                 new UnitState(new Point(15.50250238341871, 15.655000000000102), 0.4921666666666703, true, false),
  723.                 new UnitState(new Point(15.501636977589014, 15.658333333333436), 0.49200000000000366, true, false),
  724.                 new UnitState(new Point(15.500771571759318, 15.66166666666677), 0.491833333333337, true, false),
  725.                 new UnitState(new Point(15.500118234245583, 15.665000000000104), 0.49166666666667036, true, false),
  726.                 new UnitState(new Point(15.49946489673185, 15.668333333333438), 0.4915000000000037, true, false),
  727.                 new UnitState(new Point(15.498811559218115, 15.671666666666772), 0.49133333333333706, true, false),
  728.                 new UnitState(new Point(15.498158221704381, 15.675000000000106), 0.4911666666666704, true, false),
  729.                 new UnitState(new Point(15.497504884190647, 15.67833333333344), 0.49100000000000377, true, false),
  730.                 new UnitState(new Point(15.496851546676913, 15.681666666666773), 0.4908333333333371, true, false),
  731.                 new UnitState(new Point(15.496198209163179, 15.685000000000107), 0.49066666666667047, true, false),
  732.                 new UnitState(new Point(15.495544871649445, 15.688333333333441), 0.4905000000000038, true, false),
  733.                 new UnitState(new Point(15.49489153413571, 15.691666666666775), 0.4903333333333372, true, false),
  734.                 new UnitState(new Point(15.494238196621977, 15.695000000000109), 0.4901666666666705, true, false),
  735.                 new UnitState(new Point(15.495520893307264, 15.698333333333442), 0.4900000000000039, true, false),
  736.                 new UnitState(new Point(15.49680358999255, 15.701666666666776), 0.48983333333333723, true, false),
  737.                 new UnitState(new Point(15.498086286677838, 15.70500000000011), 0.4896666666666706, true, false),
  738.                 new UnitState(new Point(15.499368983363125, 15.708333333333444), 0.48950000000000393, true, false),
  739.                 new UnitState(new Point(15.500651680048412, 15.711666666666778), 0.4893333333333373, true, false),
  740.                 new UnitState(new Point(15.501934376733699, 15.715000000000112), 0.48916666666667064, true, false),
  741.                 new UnitState(new Point(15.503217073418986, 15.718333333333446), 0.489000000000004, true, false),
  742.                 new UnitState(new Point(15.504499770104273, 15.72166666666678), 0.48883333333333734, true, false),
  743.                 new UnitState(new Point(15.50578246678956, 15.725000000000113), 0.4886666666666707, true, false),
  744.                 new UnitState(new Point(15.507065163474847, 15.728333333333447), 0.48850000000000404, true, false),
  745.                 new UnitState(new Point(15.508347860160134, 15.731666666666781), 0.4883333333333374, true, false),
  746.                 new UnitState(new Point(15.509630556845421, 15.735000000000115), 0.48816666666667075, true, false),
  747.                 new UnitState(new Point(15.510913253530708, 15.738333333333449), 0.4880000000000041, true, false),
  748.                 new UnitState(new Point(15.512195950215995, 15.741666666666783), 0.48783333333333745, true, false),
  749.                 new UnitState(new Point(15.513478646901282, 15.745000000000116), 0.4876666666666708, true, false),
  750.                 new UnitState(new Point(15.514761343586569, 15.74833333333345), 0.48750000000000415, true, false),
  751.                 new UnitState(new Point(15.516044040271856, 15.751666666666784), 0.4873333333333375, true, false),
  752.                 new UnitState(new Point(15.517326736957143, 15.755000000000118), 0.48716666666667086, true, false),
  753.                 new UnitState(new Point(15.51860943364243, 15.758333333333452), 0.4870000000000042, true, false),
  754.                 new UnitState(new Point(15.517732726398119, 15.761666666666786), 0.48683333333333756, true, false),
  755.                 new UnitState(new Point(15.516856019153808, 15.76500000000012), 0.4866666666666709, true, false),
  756.                 new UnitState(new Point(15.515979311909497, 15.768333333333453), 0.48650000000000426, true, false),
  757.                 new UnitState(new Point(15.515102604665186, 15.771666666666787), 0.4863333333333376, true, false),
  758.                 new UnitState(new Point(15.514225897420875, 15.775000000000121), 0.48616666666667097, true, false),
  759.                 new UnitState(new Point(15.513349190176564, 15.778333333333455), 0.4860000000000043, true, false),
  760.                 new UnitState(new Point(15.512472482932253, 15.781666666666789), 0.48583333333333767, true, false),
  761.                 new UnitState(new Point(15.511595775687942, 15.785000000000123), 0.485666666666671, true, false),
  762.                 new UnitState(new Point(15.510719068443631, 15.788333333333457), 0.4855000000000044, true, false),
  763.                 new UnitState(new Point(15.50984236119932, 15.79166666666679), 0.4853333333333377, true, false),
  764.                 new UnitState(new Point(15.50896565395501, 15.795000000000124), 0.4851666666666711, true, false),
  765.                 new UnitState(new Point(15.508088946710698, 15.798333333333458), 0.4850000000000044, true, false),
  766.                 new UnitState(new Point(15.507212239466387, 15.801666666666792), 0.4848333333333378, true, false),
  767.                 new UnitState(new Point(15.508100759557356, 15.805000000000126), 0.48466666666667113, true, false),
  768.                 new UnitState(new Point(15.508989279648326, 15.80833333333346), 0.4845000000000045, true, false),
  769.                 new UnitState(new Point(15.509877799739295, 15.811666666666794), 0.48433333333333783, true, false),
  770.                 new UnitState(new Point(15.510766319830264, 15.815000000000127), 0.4841666666666712, true, false),
  771.                 new UnitState(new Point(15.511654839921233, 15.818333333333461), 0.48400000000000454, true, false),
  772.                 new UnitState(new Point(15.512543360012202, 15.821666666666795), 0.4838333333333379, true, false),
  773.                 new UnitState(new Point(15.512850409425052, 15.825000000000129), 0.48366666666667124, true, false),
  774.                 new UnitState(new Point(15.513157458837902, 15.828333333333463), 0.4835000000000046, true, false),
  775.                 new UnitState(new Point(15.513464508250753, 15.831666666666797), 0.48333333333333794, true, false),
  776.                 new UnitState(new Point(15.513771557663603, 15.83500000000013), 0.4831666666666713, true, false),
  777.                 new UnitState(new Point(15.514078607076453, 15.838333333333464), 0.48300000000000465, true, false),
  778.                 new UnitState(new Point(15.514385656489303, 15.841666666666798), 0.482833333333338, true, false),
  779.                 new UnitState(new Point(15.514692705902153, 15.845000000000132), 0.48266666666667135, true, false),
  780.                 new UnitState(new Point(15.514999755315003, 15.848333333333466), 0.4825000000000047, true, false),
  781.                 new UnitState(new Point(15.515306804727853, 15.8516666666668), 0.48233333333333805, true, false),
  782.                 new UnitState(new Point(15.515613854140703, 15.855000000000134), 0.4821666666666714, true, false),
  783.                 new UnitState(new Point(15.515920903553553, 15.858333333333468), 0.48200000000000476, true, false),
  784.                 new UnitState(new Point(15.516227952966403, 15.861666666666801), 0.4818333333333381, true, false),
  785.                 new UnitState(new Point(15.516535002379253, 15.865000000000135), 0.48166666666667146, true, false),
  786.                 new UnitState(new Point(15.516842051792104, 15.868333333333469), 0.4815000000000048, true, false),
  787.                 new UnitState(new Point(15.517080000391129, 15.871666666666803), 0.48133333333333816, true, false),
  788.                 new UnitState(new Point(15.517317948990154, 15.875000000000137), 0.4811666666666715, true, false),
  789.                 new UnitState(new Point(15.51755589758918, 15.87833333333347), 0.48100000000000487, true, false),
  790.                 new UnitState(new Point(15.517793846188205, 15.881666666666804), 0.4808333333333382, true, false),
  791.                 new UnitState(new Point(15.51803179478723, 15.885000000000138), 0.48066666666667157, true, false),
  792.                 new UnitState(new Point(15.518269743386256, 15.888333333333472), 0.4805000000000049, true, false),
  793.                 new UnitState(new Point(15.518507691985281, 15.891666666666806), 0.4803333333333383, true, false),
  794.                 new UnitState(new Point(15.518745640584306, 15.89500000000014), 0.4801666666666716, true, false),
  795.                 new UnitState(new Point(15.518983589183332, 15.898333333333474), 0.480000000000005, true, false),
  796.                 new UnitState(new Point(15.519221537782357, 15.901666666666808), 0.47983333333333833, true, false),
  797.                 new UnitState(new Point(15.519459486381383, 15.905000000000141), 0.4796666666666717, true, false),
  798.                 new UnitState(new Point(15.519697434980408, 15.908333333333475), 0.47950000000000503, true, false),
  799.                 new UnitState(new Point(15.519935383579433, 15.91166666666681), 0.4793333333333384, true, false),
  800.                 new UnitState(new Point(15.520173332178459, 15.915000000000143), 0.47916666666667174, true, false),
  801.                 new UnitState(new Point(15.520411280777484, 15.918333333333477), 0.4790000000000051, true, false),
  802.                 new UnitState(new Point(15.52064922937651, 15.92166666666681), 0.47883333333333844, true, false),
  803.                 new UnitState(new Point(15.520887177975535, 15.925000000000145), 0.4786666666666718, true, false),
  804.                 new UnitState(new Point(15.52112512657456, 15.928333333333478), 0.47850000000000514, true, false),
  805.                 new UnitState(new Point(15.521363075173586, 15.931666666666812), 0.4783333333333385, true, false),
  806.                 new UnitState(new Point(15.520516147873822, 15.935000000000146), 0.47816666666667185, true, false),
  807.                 new UnitState(new Point(15.519669220574059, 15.93833333333348), 0.4780000000000052, true, false),
  808.                 new UnitState(new Point(15.518822293274296, 15.941666666666814), 0.47783333333333855, true, false),
  809.                 new UnitState(new Point(15.517975365974532, 15.945000000000148), 0.4776666666666719, true, false),
  810.                 new UnitState(new Point(15.517128438674769, 15.948333333333482), 0.47750000000000525, true, false),
  811.                 new UnitState(new Point(15.516281511375006, 15.951666666666815), 0.4773333333333386, true, false),
  812.                 new UnitState(new Point(15.517628635470954, 15.95500000000015), 0.47716666666667196, true, false),
  813.                 new UnitState(new Point(15.518975759566903, 15.958333333333483), 0.4770000000000053, true, false),
  814.                 new UnitState(new Point(15.520322883662852, 15.961666666666817), 0.47683333333333866, true, false),
  815.                 new UnitState(new Point(15.5216700077588, 15.96500000000015), 0.476666666666672, true, false),
  816.                 new UnitState(new Point(15.523017131854749, 15.968333333333485), 0.47650000000000536, true, false),
  817.                 new UnitState(new Point(15.524364255950697, 15.971666666666819), 0.4763333333333387, true, false),
  818.                 new UnitState(new Point(15.525711380046646, 15.975000000000152), 0.47616666666667207, true, false),
  819.                 new UnitState(new Point(15.527058504142595, 15.978333333333486), 0.4760000000000054, true, false),
  820.                 new UnitState(new Point(15.528405628238543, 15.98166666666682), 0.47583333333333877, true, false),
  821.                 new UnitState(new Point(15.529752752334492, 15.985000000000154), 0.4756666666666721, true, false),
  822.                 new UnitState(new Point(15.53109987643044, 15.988333333333488), 0.4755000000000055, true, false),
  823.                 new UnitState(new Point(15.532447000526389, 15.991666666666822), 0.4753333333333388, true, false),
  824.                 new UnitState(new Point(15.533794124622338, 15.995000000000156), 0.4751666666666722, true, false),
  825.                 new UnitState(new Point(15.535141248718286, 15.99833333333349), 0.47500000000000553, true, false),
  826.                 new UnitState(new Point(15.536488372814235, 16.00166666666682), 0.4748333333333389, true, false),
  827.                 new UnitState(new Point(15.537835496910184, 16.005000000000155), 0.47466666666667223, true, false),
  828.                 new UnitState(new Point(15.539182621006132, 16.00833333333349), 0.4745000000000056, true, false),
  829.                 new UnitState(new Point(15.54052974510208, 16.011666666666823), 0.47433333333333894, true, false),
  830.                 new UnitState(new Point(15.54187686919803, 16.015000000000157), 0.4741666666666723, true, false),
  831.                 new UnitState(new Point(15.543027903491133, 16.01833333333349), 0.47400000000000564, true, false),
  832.                 new UnitState(new Point(15.544178937784237, 16.021666666666825), 0.473833333333339, true, false),
  833.                 new UnitState(new Point(15.54532997207734, 16.02500000000016), 0.47366666666667234, true, false),
  834.                 new UnitState(new Point(15.546481006370444, 16.028333333333492), 0.4735000000000057, true, false),
  835.                 new UnitState(new Point(15.547632040663547, 16.031666666666826), 0.47333333333333905, true, false),
  836.                 new UnitState(new Point(15.548783074956651, 16.03500000000016), 0.4731666666666724, true, false),
  837.                 new UnitState(new Point(15.549934109249754, 16.038333333333494), 0.47300000000000575, true, false),
  838.                 new UnitState(new Point(15.549418352825233, 16.041666666666828), 0.4728333333333391, true, false),
  839.                 new UnitState(new Point(15.548902596400712, 16.04500000000016), 0.47266666666667245, true, false),
  840.                 new UnitState(new Point(15.54838683997619, 16.048333333333495), 0.4725000000000058, true, false),
  841.                 new UnitState(new Point(15.548673677420346, 16.05166666666683), 0.47233333333333916, true, false),
  842.                 new UnitState(new Point(15.548960514864502, 16.055000000000163), 0.4721666666666725, true, false),
  843.                 new UnitState(new Point(15.549247352308658, 16.058333333333497), 0.47200000000000586, true, false),
  844.                 new UnitState(new Point(15.549534189752814, 16.06166666666683), 0.4718333333333392, true, false),
  845.                 new UnitState(new Point(15.54982102719697, 16.065000000000165), 0.47166666666667256, true, false),
  846.                 new UnitState(new Point(15.550107864641125, 16.0683333333335), 0.525, true, false),
  847.                 new UnitState(new Point(15.550394702085281, 16.071666666666832), 0.525, true, false),
  848.                 new UnitState(new Point(15.550681539529437, 16.075000000000166), 0.525, true, false),
  849.                 new UnitState(new Point(15.550968376973593, 16.0783333333335), 0.525, true, false),
  850.                 new UnitState(new Point(15.551255214417749, 16.081666666666834), 0.525, true, false),
  851.                 new UnitState(new Point(15.551542051861905, 16.085000000000168), 0.525, true, false),
  852.                 new UnitState(new Point(15.55182888930606, 16.0883333333335), 0.525, true, false),
  853.                 new UnitState(new Point(15.552115726750216, 16.091666666666836), 0.525, true, false),
  854.                 new UnitState(new Point(15.55261767786949, 16.09500000000017), 0.525, true, false),
  855.                 new UnitState(new Point(15.553119628988764, 16.098333333333503), 0.525, true, false),
  856.                 new UnitState(new Point(15.553621580108038, 16.101666666666837), 0.55, true, true),
  857.                 new UnitState(new Point(15.554123531227312, 16.101666666666837), 0.55, true, true),
  858.                 new UnitState(new Point(15.554625482346585, 16.101666666666837), 0.55, true, true),
  859.                 new UnitState(new Point(15.55512743346586, 16.101666666666837), 0.55, true, true),
  860.                 new UnitState(new Point(15.555629384585133, 16.101666666666837), 0.55, true, true),
  861.                 new UnitState(new Point(15.556131335704407, 16.101666666666837), 0.55, true, true),
  862.                 new UnitState(new Point(15.556633286823681, 16.101666666666837), 0.55, true, true),
  863.                 new UnitState(new Point(15.557135237942955, 16.101666666666837), 0.55, true, true),
  864.                 new UnitState(new Point(15.557637189062229, 16.101666666666837), 0.55, true, true),
  865.                 new UnitState(new Point(15.55680582583501, 16.101666666666837), 0.55, true, true),
  866.                 new UnitState(new Point(15.555974462607791, 16.101666666666837), 0.55, true, true),
  867.                 new UnitState(new Point(15.555143099380572, 16.101666666666837), 0.55, true, true),
  868.                 new UnitState(new Point(15.554311736153354, 16.101666666666837), 0.55, true, true),
  869.                 new UnitState(new Point(15.553480372926135, 16.101666666666837), 0.55, true, true),
  870.                 new UnitState(new Point(15.552649009698916, 16.101666666666837), 0.55, true, true),
  871.                 new UnitState(new Point(15.551817646471697, 16.101666666666837), 0.55, true, true),
  872.                 new UnitState(new Point(15.550986283244479, 16.101666666666837), 0.55, true, true),
  873.                 new UnitState(new Point(15.55015492001726, 16.101666666666837), 0.55, true, true),
  874.                 new UnitState(new Point(15.549323556790041, 16.101666666666837), 0.55, true, true),
  875.                 new UnitState(new Point(15.548492193562822, 16.101666666666837), 0.55, true, true),
  876.                 new UnitState(new Point(15.547660830335603, 16.101666666666837), 0.55, true, true),
  877.                 new UnitState(new Point(15.546829467108385, 16.101666666666837), 0.55, true, true),
  878.                 new UnitState(new Point(15.545998103881166, 16.101666666666837), 0.55, true, true),
  879.                 new UnitState(new Point(15.545166740653947, 16.101666666666837), 0.55, true, true),
  880.                 new UnitState(new Point(15.544335377426728, 16.101666666666837), 0.55, true, true),
  881.                 new UnitState(new Point(15.54350401419951, 16.101666666666837), 0.55, true, true),
  882.                 new UnitState(new Point(15.54367462243863, 16.100000000000172), 0.55, true, true),
  883.                 new UnitState(new Point(15.54384523067775, 16.098333333333507), 0.0, false, false),
  884.                 new UnitState(new Point(15.54401583891687, 16.09666666666684), 0.0, false, false),
  885.                 new UnitState(new Point(15.54418644715599, 16.095000000000176), 0.0, false, false),
  886.                 new UnitState(new Point(15.54435705539511, 16.09333333333351), 0.0, false, false),
  887.                 new UnitState(new Point(15.54452766363423, 16.091666666666846), 0.0, false, false),
  888.                 new UnitState(new Point(15.54469827187335, 16.09000000000018), 0.0, false, false),
  889.                 new UnitState(new Point(15.544868880112471, 16.088333333333516), 0.0, false, false),
  890.                 new UnitState(new Point(15.545039488351591, 16.08666666666685), 0.0, false, false),
  891.                 new UnitState(new Point(15.545210096590711, 16.085000000000186), 0.0, false, false),
  892.                 new UnitState(new Point(15.545380704829832, 16.08333333333352), 0.0, false, false),
  893.                 new UnitState(new Point(15.545551313068952, 16.081666666666855), 0.0, false, false),
  894.                 new UnitState(new Point(15.545721921308072, 16.08000000000019), 0.0, false, false),
  895.                 new UnitState(new Point(15.546540793250571, 16.078333333333525), 0.0, false, false),
  896.                 new UnitState(new Point(15.54735966519307, 16.07666666666686), 0.0, false, false),
  897.                 new UnitState(new Point(15.54817853713557, 16.075000000000195), 0.0, false, false),
  898.                 new UnitState(new Point(15.54899740907807, 16.07333333333353), 0.0, false, false),
  899.                 new UnitState(new Point(15.549816281020568, 16.071666666666864), 0.0, false, false),
  900.                 new UnitState(new Point(15.550635152963068, 16.0700000000002), 0.525, true, false),
  901.                 new UnitState(new Point(15.551454024905567, 16.073333333333533), 0.525, true, false),
  902.                 new UnitState(new Point(15.552272896848066, 16.076666666666867), 0.525, true, false),
  903.                 new UnitState(new Point(15.553091768790566, 16.0800000000002), 0.525, true, false),
  904.                 new UnitState(new Point(15.553910640733065, 16.083333333333535), 0.525, true, false),
  905.                 new UnitState(new Point(15.555217071135715, 16.08666666666687), 0.525, true, false),
  906.                 new UnitState(new Point(15.556523501538365, 16.090000000000202), 0.525, true, false),
  907.                 new UnitState(new Point(15.557829931941015, 16.093333333333536), 0.525, true, false),
  908.                 new UnitState(new Point(15.559136362343665, 16.09666666666687), 0.525, true, false),
  909.                 new UnitState(new Point(15.560442792746315, 16.100000000000204), 0.55, true, true),
  910.                 new UnitState(new Point(15.561749223148965, 16.10166666666687), 0.55, true, true),
  911.                 new UnitState(new Point(15.563055653551615, 16.103333333333534), 0.55, true, true),
  912.                 new UnitState(new Point(15.564362083954265, 16.1050000000002), 0.55, true, true),
  913.                 new UnitState(new Point(15.563108981692265, 16.103333333333534), 0.55, true, true),
  914.                 new UnitState(new Point(15.561855879430265, 16.10166666666687), 0.55, true, true),
  915.                 new UnitState(new Point(15.560602777168265, 16.100000000000204), 0.55, true, true),
  916.                 new UnitState(new Point(15.559349674906265, 16.09833333333354), 0.525, true, false),
  917.                 new UnitState(new Point(15.558096572644265, 16.101666666666873), 0.55, true, true),
  918.                 new UnitState(new Point(15.556843470382265, 16.100000000000207), 0.55, true, true),
  919.                 new UnitState(new Point(15.555590368120265, 16.098333333333542), 0.525, true, false),
  920.                 new UnitState(new Point(15.554337265858265, 16.101666666666876), 0.55, true, true),
  921.                 new UnitState(new Point(15.553084163596266, 16.10000000000021), 0.55, true, true),
  922.                 new UnitState(new Point(15.551831061334266, 16.098333333333546), 0.525, true, false),
  923.                 new UnitState(new Point(15.550577959072266, 16.10166666666688), 0.55, true, true),
  924.                 new UnitState(new Point(15.549324856810266, 16.100000000000215), 0.55, true, true),
  925.                 new UnitState(new Point(15.548071754548266, 16.09833333333355), 0.0, false, false),
  926.                 new UnitState(new Point(15.546818652286266, 16.096666666666884), 0.0, false, false),
  927.                 new UnitState(new Point(15.545565550024266, 16.09500000000022), 0.0, false, false),
  928.                 new UnitState(new Point(15.544312447762266, 16.093333333333554), 0.0, false, false),
  929.                 new UnitState(new Point(15.543059345500266, 16.09166666666689), 0.0, false, false),
  930.                 new UnitState(new Point(15.541806243238266, 16.090000000000224), 0.0, false, false),
  931.                 new UnitState(new Point(15.540553140976266, 16.08833333333356), 0.0, false, false),
  932.                 new UnitState(new Point(15.540385509280728, 16.086666666666893), 0.0, false, false),
  933.                 new UnitState(new Point(15.54021787758519, 16.08500000000023), 0.0, false, false),
  934.                 new UnitState(new Point(15.540050245889653, 16.083333333333563), 0.0, false, false),
  935.                 new UnitState(new Point(15.539882614194115, 16.081666666666898), 0.0, false, false),
  936.                 new UnitState(new Point(15.539714982498577, 16.080000000000233), 0.0, false, false),
  937.                 new UnitState(new Point(15.539062492484252, 16.078333333333568), 0.0, false, false),
  938.                 new UnitState(new Point(15.538410002469927, 16.076666666666902), 0.0, false, false),
  939.                 new UnitState(new Point(15.537757512455602, 16.075000000000237), 0.0, false, false),
  940.                 new UnitState(new Point(15.537105022441278, 16.073333333333572), 0.0, false, false),
  941.                 new UnitState(new Point(15.536452532426953, 16.071666666666907), 0.0, false, false),
  942.                 new UnitState(new Point(15.537539851945954, 16.070000000000242), 0.0, false, false),
  943.                 new UnitState(new Point(15.538627171464956, 16.068333333333577), 0.0, false, false),
  944.                 new UnitState(new Point(15.539714490983958, 16.06666666666691), 0.0, false, false),
  945.                 new UnitState(new Point(15.540801810502959, 16.065000000000246), 0.0, false, false),
  946.                 new UnitState(new Point(15.54188913002196, 16.06333333333358), 0.0, false, false),
  947.                 new UnitState(new Point(15.542976449540962, 16.061666666666916), 0.0, false, false),
  948.                 new UnitState(new Point(15.543255811967263, 16.06000000000025), 0.0, false, false),
  949.                 new UnitState(new Point(15.543535174393565, 16.058333333333586), 0.0, false, false),
  950.                 new UnitState(new Point(15.543814536819866, 16.05666666666692), 0.0, false, false),
  951.                 new UnitState(new Point(15.544093899246167, 16.055000000000256), 0.0, false, false),
  952.                 new UnitState(new Point(15.544373261672469, 16.05333333333359), 0.0, false, false),
  953.                 new UnitState(new Point(15.54465262409877, 16.051666666666925), 0.0, false, false),
  954.                 new UnitState(new Point(15.544931986525071, 16.05000000000026), 0.0, false, false),
  955.                 new UnitState(new Point(15.545211348951373, 16.048333333333595), 0.0, false, false),
  956.                 new UnitState(new Point(15.545490711377674, 16.04666666666693), 0.0, false, false),
  957.                 new UnitState(new Point(15.545770073803975, 16.045000000000265), 0.0, false, false),
  958.                 new UnitState(new Point(15.546049436230277, 16.0433333333336), 0.0, false, false),
  959.                 new UnitState(new Point(15.546328798656578, 16.041666666666934), 0.0, false, false),
  960.                 new UnitState(new Point(15.54660816108288, 16.04000000000027), 0.0, false, false),
  961.                 new UnitState(new Point(15.54688752350918, 16.038333333333604), 0.0, false, false),
  962.                 new UnitState(new Point(15.547166885935482, 16.03666666666694), 0.0, false, false),
  963.                 new UnitState(new Point(15.547446248361783, 16.035000000000274), 0.0, false, false),
  964.                 new UnitState(new Point(15.547725610788085, 16.03333333333361), 0.0, false, false),
  965.                 new UnitState(new Point(15.548004973214386, 16.031666666666943), 0.0, false, false),
  966.                 new UnitState(new Point(15.548284335640687, 16.03000000000028), 0.0, false, false),
  967.                 new UnitState(new Point(15.547743276575433, 16.028333333333613), 0.0, false, false),
  968.                 new UnitState(new Point(15.54720221751018, 16.026666666666948), 0.0, false, false),
  969.                 new UnitState(new Point(15.546661158444925, 16.025000000000283), 0.0, false, false),
  970.                 new UnitState(new Point(15.54612009937967, 16.023333333333618), 0.0, false, false),
  971.                 new UnitState(new Point(15.545579040314417, 16.021666666666952), 0.0, false, false),
  972.                 new UnitState(new Point(15.545037981249163, 16.020000000000287), 0.0, false, false),
  973.                 new UnitState(new Point(15.544496922183908, 16.018333333333622), 0.0, false, false),
  974.                 new UnitState(new Point(15.543955863118654, 16.016666666666957), 0.0, false, false),
  975.                 new UnitState(new Point(15.5434148040534, 16.015000000000292), 0.0, false, false),
  976.                 new UnitState(new Point(15.542873744988146, 16.013333333333627), 0.0, false, false),
  977.                 new UnitState(new Point(15.542349792281609, 16.01166666666696), 0.0, false, false),
  978.                 new UnitState(new Point(15.541825839575072, 16.010000000000296), 0.0, false, false),
  979.                 new UnitState(new Point(15.541301886868535, 16.00833333333363), 0.0, false, false),
  980.                 new UnitState(new Point(15.540777934161998, 16.006666666666966), 0.0, false, false),
  981.                 new UnitState(new Point(15.54025398145546, 16.0050000000003), 0.0, false, false),
  982.                 new UnitState(new Point(15.539730028748924, 16.003333333333636), 0.0, false, false),
  983.                 new UnitState(new Point(15.539206076042387, 16.00166666666697), 0.0, false, false),
  984.                 new UnitState(new Point(15.53868212333585, 16.000000000000306), 0.0, false, false),
  985.                 new UnitState(new Point(15.538158170629313, 15.998333333333639), 0.0, false, false),
  986.                 new UnitState(new Point(15.537634217922776, 15.996666666666972), 0.0, false, false),
  987.                 new UnitState(new Point(15.537110265216239, 15.995000000000305), 0.0, false, false),
  988.                 new UnitState(new Point(15.536586312509701, 15.993333333333638), 0.0, false, false),
  989.                 new UnitState(new Point(15.536062359803164, 15.991666666666971), 0.0, false, false),
  990.                 new UnitState(new Point(15.535538407096627, 15.990000000000304), 0.0, false, false),
  991.                 new UnitState(new Point(15.53501445439009, 15.988333333333637), 0.0, false, false),
  992.                 new UnitState(new Point(15.534490501683553, 15.98666666666697), 0.0, false, false)
  993.         );
  994.         Plan plan = new Plan()
  995.                 .add(8, new MoveAction(8.164460217496135, false, false))
  996.                 .add(0, new MoveAction(9.247625938174004, false, true))
  997.                 .add(5, new MoveAction(-1.1006037998936442, false, true))
  998.                 .add(1, new MoveAction(-7.392555873025273, false, false))
  999.                 .add(2, new MoveAction(3.2886859016082894, true, false))
  1000.                 .add(14, new MoveAction(-3.705122490207742, false, false))
  1001.                 .add(4, new MoveAction(1.728185044782741, false, false))
  1002.                 .add(17, new MoveAction(4.250146268911493, false, false))
  1003.                 .add(6, new MoveAction(7.914930589868806, false, false))
  1004.                 .add(10, new MoveAction(-0.6169353036923493, false, false))
  1005.                 .add(16, new MoveAction(2.5068930131824185, true, false))
  1006.                 .add(9, new MoveAction(6.3684649069349035, false, true))
  1007.                 .add(8, new MoveAction(-1.648654838101443, false, false))
  1008.                 .add(18, new MoveAction(-4.9904252970478264, true, false))
  1009.                 .add(5, new MoveAction(2.9416494267552107, false, true))
  1010.                 .add(8, new MoveAction(6.479524817708224, true, false))
  1011.                 .add(6, new MoveAction(0.9692751477343986, false, true))
  1012.                 .add(8, new MoveAction(-7.729299195536486, false, false))
  1013.                 .add(0, new MoveAction(2.6699048954835174, false, true))
  1014.                 .add(17, new MoveAction(-1.1738175994275437, false, true))
  1015.                 .add(1, new MoveAction(-7.8804898394246825, false, true))
  1016.                 .add(3, new MoveAction(9.597043194347638, false, true))
  1017.                 .add(10, new MoveAction(3.718309498430422, false, true))
  1018.                 .add(10, new MoveAction(-9.336181766736562, false, false))
  1019.                 .add(14, new MoveAction(-5.1924349781808115, false, false))
  1020.                 .add(10, new MoveAction(-3.9200250823992233, false, true))
  1021.                 .add(19, new MoveAction(7.696180111720409, true, false))
  1022.                 .add(13, new MoveAction(-5.2602434658667345, true, false))
  1023.                 .add(6, new MoveAction(5.331120545816663, false, true))
  1024.                 .add(14, new MoveAction(1.8422964771012573, true, false))
  1025.                 .add(19, new MoveAction(1.4276915941547195, false, false))
  1026.                 .add(6, new MoveAction(-5.081563798579349, true, false))
  1027.                 .add(19, new MoveAction(8.082744575693965, false, false))
  1028.                 .add(7, new MoveAction(6.906205758619709, true, false))
  1029.                 .add(0, new MoveAction(-8.274085305759868, false, true))
  1030.                 .add(3, new MoveAction(-3.094538547123884, false, false))
  1031.                 .add(13, new MoveAction(1.7210246649382235, false, false))
  1032.                 .add(11, new MoveAction(3.0117067156464152, false, false))
  1033.                 .add(17, new MoveAction(-4.98817936331635, false, false))
  1034.                 .add(13, new MoveAction(1.0236494347177167, false, true))
  1035.                 .add(10, new MoveAction(4.913231654992607, false, true))
  1036.                 .add(8, new MoveAction(7.838582415903112, true, false))
  1037.                 .add(19, new MoveAction(-7.518613571997237, false, true))
  1038.                 .add(5, new MoveAction(-1.0057901732310945, false, false))
  1039.                 .add(0, new MoveAction(-5.147357585688994, false, true))
  1040.                 .add(5, new MoveAction(-3.914940085948489, true, false))
  1041.                 .add(6, new MoveAction(6.523917114013457, false, true))
  1042.                 .add(19, new MoveAction(1.6761745578123044, false, true))
  1043.                 .add(10, new MoveAction(-3.246354391520483, false, true))
  1044.                 .add(16, new MoveAction(-3.1437162392192626, true, false));
  1045.         List<UnitState> actual = simulator.simulate(start, plan);
  1046.         assertEquals(actual, expected);
  1047.     }
  1048.  
  1049.     @Test
  1050.     void test3() {
  1051.         UnitState start = new UnitState(new Point(15.5, 15.0), 0.0, false, false);
  1052.         Tile[][] map = new Tile[][]{{WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL}, {WALL, PLATFORM, JUMP_PAD, PLATFORM, LADDER, WALL, EMPTY, JUMP_PAD, EMPTY, JUMP_PAD, LADDER, JUMP_PAD, LADDER, PLATFORM, JUMP_PAD, PLATFORM, PLATFORM, LADDER, JUMP_PAD, PLATFORM, LADDER, LADDER, PLATFORM, WALL, EMPTY, PLATFORM, PLATFORM, EMPTY, WALL, WALL}, {WALL, LADDER, JUMP_PAD, LADDER, LADDER, JUMP_PAD, PLATFORM, EMPTY, JUMP_PAD, LADDER, EMPTY, WALL, PLATFORM, PLATFORM, WALL, LADDER, EMPTY, PLATFORM, EMPTY, EMPTY, WALL, JUMP_PAD, JUMP_PAD, WALL, JUMP_PAD, JUMP_PAD, WALL, EMPTY, EMPTY, WALL}, {WALL, PLATFORM, LADDER, LADDER, LADDER, LADDER, WALL, WALL, PLATFORM, PLATFORM, LADDER, PLATFORM, WALL, JUMP_PAD, JUMP_PAD, WALL, JUMP_PAD, LADDER, JUMP_PAD, WALL, LADDER, EMPTY, PLATFORM, EMPTY, PLATFORM, WALL, LADDER, JUMP_PAD, PLATFORM, WALL}, {WALL, WALL, JUMP_PAD, PLATFORM, WALL, JUMP_PAD, EMPTY, EMPTY, JUMP_PAD, LADDER, LADDER, PLATFORM, LADDER, JUMP_PAD, WALL, PLATFORM, PLATFORM, LADDER, JUMP_PAD, PLATFORM, PLATFORM, LADDER, LADDER, PLATFORM, LADDER, JUMP_PAD, JUMP_PAD, JUMP_PAD, EMPTY, WALL}, {WALL, PLATFORM, LADDER, JUMP_PAD, LADDER, WALL, WALL, EMPTY, LADDER, PLATFORM, JUMP_PAD, LADDER, JUMP_PAD, JUMP_PAD, PLATFORM, WALL, EMPTY, LADDER, EMPTY, JUMP_PAD, WALL, EMPTY, WALL, JUMP_PAD, EMPTY, JUMP_PAD, PLATFORM, EMPTY, JUMP_PAD, WALL}, {WALL, LADDER, EMPTY, WALL, PLATFORM, JUMP_PAD, JUMP_PAD, PLATFORM, LADDER, WALL, EMPTY, WALL, EMPTY, LADDER, WALL, LADDER, PLATFORM, PLATFORM, EMPTY, JUMP_PAD, WALL, PLATFORM, LADDER, LADDER, LADDER, WALL, JUMP_PAD, LADDER, WALL, WALL}, {WALL, LADDER, EMPTY, JUMP_PAD, JUMP_PAD, WALL, WALL, PLATFORM, WALL, LADDER, WALL, PLATFORM, PLATFORM, WALL, WALL, WALL, WALL, PLATFORM, JUMP_PAD, PLATFORM, JUMP_PAD, EMPTY, LADDER, EMPTY, WALL, LADDER, PLATFORM, WALL, LADDER, WALL}, {WALL, EMPTY, LADDER, JUMP_PAD, PLATFORM, JUMP_PAD, LADDER, LADDER, PLATFORM, EMPTY, LADDER, EMPTY, WALL, LADDER, PLATFORM, LADDER, PLATFORM, WALL, PLATFORM, JUMP_PAD, LADDER, WALL, WALL, PLATFORM, PLATFORM, JUMP_PAD, PLATFORM, LADDER, EMPTY, WALL}, {WALL, WALL, EMPTY, PLATFORM, JUMP_PAD, EMPTY, PLATFORM, EMPTY, PLATFORM, EMPTY, EMPTY, EMPTY, WALL, EMPTY, PLATFORM, EMPTY, WALL, EMPTY, JUMP_PAD, JUMP_PAD, LADDER, WALL, LADDER, JUMP_PAD, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, WALL}, {WALL, JUMP_PAD, JUMP_PAD, PLATFORM, EMPTY, LADDER, EMPTY, WALL, PLATFORM, JUMP_PAD, JUMP_PAD, PLATFORM, LADDER, LADDER, PLATFORM, EMPTY, WALL, EMPTY, LADDER, PLATFORM, WALL, LADDER, PLATFORM, WALL, LADDER, LADDER, LADDER, WALL, LADDER, WALL}, {WALL, EMPTY, LADDER, LADDER, WALL, WALL, PLATFORM, JUMP_PAD, EMPTY, WALL, PLATFORM, PLATFORM, JUMP_PAD, JUMP_PAD, EMPTY, PLATFORM, PLATFORM, LADDER, LADDER, LADDER, EMPTY, EMPTY, LADDER, LADDER, LADDER, PLATFORM, WALL, JUMP_PAD, JUMP_PAD, WALL}, {WALL, LADDER, LADDER, JUMP_PAD, PLATFORM, WALL, JUMP_PAD, PLATFORM, JUMP_PAD, PLATFORM, WALL, PLATFORM, WALL, PLATFORM, JUMP_PAD, LADDER, WALL, LADDER, WALL, EMPTY, WALL, WALL, EMPTY, LADDER, PLATFORM, LADDER, PLATFORM, PLATFORM, EMPTY, WALL}, {WALL, EMPTY, JUMP_PAD, PLATFORM, JUMP_PAD, EMPTY, LADDER, EMPTY, PLATFORM, WALL, JUMP_PAD, PLATFORM, PLATFORM, PLATFORM, WALL, EMPTY, PLATFORM, EMPTY, JUMP_PAD, PLATFORM, EMPTY, PLATFORM, JUMP_PAD, EMPTY, EMPTY, EMPTY, WALL, EMPTY, EMPTY, WALL}, {WALL, JUMP_PAD, LADDER, PLATFORM, PLATFORM, WALL, WALL, EMPTY, PLATFORM, JUMP_PAD, PLATFORM, EMPTY, PLATFORM, EMPTY, EMPTY, LADDER, LADDER, EMPTY, EMPTY, JUMP_PAD, LADDER, LADDER, EMPTY, JUMP_PAD, WALL, LADDER, PLATFORM, LADDER, WALL, WALL}, {WALL, JUMP_PAD, LADDER, PLATFORM, EMPTY, LADDER, PLATFORM, WALL, EMPTY, EMPTY, EMPTY, LADDER, JUMP_PAD, PLATFORM, WALL, EMPTY, EMPTY, LADDER, JUMP_PAD, EMPTY, EMPTY, JUMP_PAD, WALL, PLATFORM, JUMP_PAD, WALL, PLATFORM, JUMP_PAD, LADDER, WALL}, {WALL, LADDER, LADDER, PLATFORM, PLATFORM, WALL, WALL, PLATFORM, EMPTY, LADDER, PLATFORM, LADDER, JUMP_PAD, LADDER, PLATFORM, WALL, PLATFORM, WALL, EMPTY, LADDER, LADDER, JUMP_PAD, EMPTY, EMPTY, WALL, JUMP_PAD, LADDER, JUMP_PAD, EMPTY, WALL}, {WALL, WALL, EMPTY, JUMP_PAD, EMPTY, PLATFORM, JUMP_PAD, WALL, JUMP_PAD, JUMP_PAD, WALL, EMPTY, LADDER, EMPTY, WALL, PLATFORM, LADDER, JUMP_PAD, LADDER, LADDER, JUMP_PAD, PLATFORM, JUMP_PAD, LADDER, LADDER, LADDER, PLATFORM, WALL, JUMP_PAD, WALL}, {WALL, WALL, PLATFORM, EMPTY, EMPTY, WALL, WALL, LADDER, EMPTY, EMPTY, EMPTY, PLATFORM, EMPTY, PLATFORM, EMPTY, PLATFORM, WALL, LADDER, EMPTY, PLATFORM, WALL, PLATFORM, WALL, JUMP_PAD, PLATFORM, LADDER, PLATFORM, LADDER, PLATFORM, WALL}, {WALL, JUMP_PAD, LADDER, PLATFORM, WALL, WALL, EMPTY, WALL, JUMP_PAD, EMPTY, LADDER, EMPTY, PLATFORM, LADDER, PLATFORM, WALL, JUMP_PAD, WALL, EMPTY, LADDER, EMPTY, EMPTY, JUMP_PAD, WALL, WALL, PLATFORM, PLATFORM, LADDER, LADDER, WALL}, {WALL, PLATFORM, WALL, EMPTY, PLATFORM, JUMP_PAD, EMPTY, LADDER, JUMP_PAD, JUMP_PAD, JUMP_PAD, PLATFORM, JUMP_PAD, EMPTY, EMPTY, LADDER, JUMP_PAD, EMPTY, EMPTY, PLATFORM, PLATFORM, LADDER, LADDER, LADDER, WALL, EMPTY, WALL, PLATFORM, WALL, WALL}, {WALL, EMPTY, PLATFORM, PLATFORM, PLATFORM, LADDER, WALL, EMPTY, WALL, WALL, JUMP_PAD, EMPTY, LADDER, PLATFORM, PLATFORM, WALL, WALL, PLATFORM, PLATFORM, WALL, PLATFORM, LADDER, WALL, WALL, JUMP_PAD, EMPTY, WALL, EMPTY, JUMP_PAD, WALL}, {WALL, PLATFORM, LADDER, PLATFORM, WALL, PLATFORM, LADDER, JUMP_PAD, WALL, WALL, PLATFORM, LADDER, EMPTY, LADDER, PLATFORM, WALL, LADDER, JUMP_PAD, JUMP_PAD, EMPTY, EMPTY, JUMP_PAD, PLATFORM, LADDER, LADDER, PLATFORM, EMPTY, LADDER, WALL, WALL}, {WALL, LADDER, EMPTY, WALL, JUMP_PAD, LADDER, WALL, WALL, JUMP_PAD, EMPTY, LADDER, EMPTY, EMPTY, JUMP_PAD, LADDER, LADDER, JUMP_PAD, LADDER, JUMP_PAD, WALL, LADDER, LADDER, PLATFORM, JUMP_PAD, WALL, EMPTY, LADDER, EMPTY, LADDER, WALL}, {WALL, PLATFORM, WALL, LADDER, WALL, WALL, EMPTY, LADDER, EMPTY, WALL, EMPTY, JUMP_PAD, EMPTY, LADDER, JUMP_PAD, LADDER, EMPTY, PLATFORM, JUMP_PAD, LADDER, LADDER, LADDER, PLATFORM, EMPTY, JUMP_PAD, LADDER, LADDER, PLATFORM, EMPTY, WALL}, {WALL, PLATFORM, WALL, PLATFORM, EMPTY, LADDER, JUMP_PAD, JUMP_PAD, PLATFORM, EMPTY, EMPTY, LADDER, JUMP_PAD, WALL, LADDER, LADDER, LADDER, LADDER, PLATFORM, EMPTY, WALL, EMPTY, WALL, LADDER, JUMP_PAD, PLATFORM, PLATFORM, EMPTY, PLATFORM, WALL}, {WALL, WALL, LADDER, WALL, LADDER, EMPTY, WALL, WALL, JUMP_PAD, WALL, PLATFORM, LADDER, PLATFORM, PLATFORM, PLATFORM, EMPTY, PLATFORM, JUMP_PAD, EMPTY, JUMP_PAD, PLATFORM, EMPTY, LADDER, WALL, EMPTY, LADDER, PLATFORM, LADDER, LADDER, WALL}, {WALL, WALL, PLATFORM, LADDER, LADDER, WALL, PLATFORM, LADDER, WALL, JUMP_PAD, EMPTY, JUMP_PAD, PLATFORM, WALL, EMPTY, JUMP_PAD, PLATFORM, PLATFORM, JUMP_PAD, WALL, PLATFORM, WALL, LADDER, LADDER, JUMP_PAD, JUMP_PAD, WALL, PLATFORM, JUMP_PAD, WALL}, {WALL, WALL, EMPTY, LADDER, JUMP_PAD, PLATFORM, WALL, EMPTY, WALL, EMPTY, JUMP_PAD, JUMP_PAD, WALL, WALL, EMPTY, WALL, LADDER, JUMP_PAD, JUMP_PAD, WALL, WALL, WALL, PLATFORM, PLATFORM, PLATFORM, JUMP_PAD, PLATFORM, EMPTY, EMPTY, WALL}, {WALL, WALL, PLATFORM, PLATFORM, EMPTY, WALL, PLATFORM, PLATFORM, WALL, JUMP_PAD, WALL, LADDER, EMPTY, EMPTY, PLATFORM, WALL, WALL, WALL, EMPTY, PLATFORM, WALL, PLATFORM, JUMP_PAD, WALL, LADDER, WALL, WALL, EMPTY, PLATFORM, WALL}, {WALL, EMPTY, LADDER, JUMP_PAD, LADDER, JUMP_PAD, LADDER, WALL, EMPTY, LADDER, PLATFORM, JUMP_PAD, WALL, JUMP_PAD, WALL, JUMP_PAD, EMPTY, EMPTY, WALL, WALL, EMPTY, EMPTY, EMPTY, PLATFORM, WALL, EMPTY, EMPTY, WALL, WALL, WALL}, {WALL, EMPTY, EMPTY, EMPTY, WALL, PLATFORM, PLATFORM, LADDER, JUMP_PAD, WALL, JUMP_PAD, WALL, EMPTY, PLATFORM, EMPTY, PLATFORM, WALL, WALL, WALL, WALL, PLATFORM, EMPTY, JUMP_PAD, EMPTY, WALL, WALL, JUMP_PAD, PLATFORM, PLATFORM, WALL}, {WALL, EMPTY, LADDER, LADDER, JUMP_PAD, LADDER, LADDER, JUMP_PAD, LADDER, JUMP_PAD, PLATFORM, PLATFORM, EMPTY, PLATFORM, PLATFORM, EMPTY, PLATFORM, JUMP_PAD, EMPTY, WALL, EMPTY, WALL, JUMP_PAD, LADDER, WALL, JUMP_PAD, EMPTY, EMPTY, EMPTY, WALL}, {WALL, WALL, EMPTY, JUMP_PAD, JUMP_PAD, EMPTY, EMPTY, PLATFORM, PLATFORM, LADDER, JUMP_PAD, PLATFORM, LADDER, LADDER, LADDER, LADDER, PLATFORM, PLATFORM, PLATFORM, JUMP_PAD, EMPTY, LADDER, JUMP_PAD, LADDER, JUMP_PAD, JUMP_PAD, PLATFORM, WALL, JUMP_PAD, WALL}, {WALL, JUMP_PAD, JUMP_PAD, LADDER, EMPTY, LADDER, LADDER, PLATFORM, EMPTY, WALL, WALL, LADDER, WALL, EMPTY, PLATFORM, PLATFORM, LADDER, JUMP_PAD, WALL, JUMP_PAD, EMPTY, EMPTY, PLATFORM, LADDER, LADDER, EMPTY, LADDER, JUMP_PAD, WALL, WALL}, {WALL, JUMP_PAD, JUMP_PAD, EMPTY, WALL, JUMP_PAD, EMPTY, PLATFORM, PLATFORM, LADDER, LADDER, JUMP_PAD, WALL, WALL, WALL, WALL, WALL, JUMP_PAD, JUMP_PAD, PLATFORM, JUMP_PAD, LADDER, EMPTY, PLATFORM, LADDER, JUMP_PAD, WALL, WALL, EMPTY, WALL}, {WALL, WALL, PLATFORM, PLATFORM, WALL, JUMP_PAD, JUMP_PAD, LADDER, WALL, LADDER, PLATFORM, EMPTY, PLATFORM, WALL, EMPTY, EMPTY, PLATFORM, EMPTY, EMPTY, JUMP_PAD, LADDER, LADDER, EMPTY, WALL, PLATFORM, WALL, JUMP_PAD, PLATFORM, EMPTY, WALL}, {WALL, WALL, WALL, JUMP_PAD, WALL, EMPTY, PLATFORM, EMPTY, WALL, LADDER, WALL, LADDER, PLATFORM, LADDER, PLATFORM, EMPTY, JUMP_PAD, WALL, EMPTY, PLATFORM, JUMP_PAD, JUMP_PAD, JUMP_PAD, WALL, JUMP_PAD, PLATFORM, EMPTY, EMPTY, JUMP_PAD, WALL}, {WALL, EMPTY, WALL, JUMP_PAD, WALL, EMPTY, WALL, EMPTY, WALL, WALL, JUMP_PAD, JUMP_PAD, WALL, WALL, EMPTY, EMPTY, EMPTY, EMPTY, LADDER, JUMP_PAD, EMPTY, LADDER, JUMP_PAD, EMPTY, PLATFORM, PLATFORM, LADDER, EMPTY, JUMP_PAD, WALL}, {WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL, WALL}};
  1053.         Simulator simulator = new Simulator(map, (int) 6000.0, 1);
  1054.         List<UnitState> expected = Arrays.asList(
  1055.                 new UnitState(new Point(15.498990294306228, 15.0), 0.55, true, true),
  1056.                 new UnitState(new Point(15.497980588612457, 15.001666666666667), 0.5498333333333334, true, true),
  1057.                 new UnitState(new Point(15.496970882918685, 15.003333333333334), 0.5496666666666667, true, true),
  1058.                 new UnitState(new Point(15.495961177224913, 15.005), 0.5495000000000001, true, true),
  1059.                 new UnitState(new Point(15.497082399002627, 15.006666666666668), 0.5493333333333335, true, true),
  1060.                 new UnitState(new Point(15.496141021972102, 15.005), 0.0, false, false),
  1061.                 new UnitState(new Point(15.495199644941577, 15.003333333333334), 0.0, false, false),
  1062.                 new UnitState(new Point(15.494258267911052, 15.001666666666667), 0.0, false, false),
  1063.                 new UnitState(new Point(15.494804349326293, 15.0), 0.0, false, false),
  1064.                 new UnitState(new Point(15.495350430741533, 15.0), 0.55, true, true),
  1065.                 new UnitState(new Point(15.495896512156774, 15.0), 0.55, true, true),
  1066.                 new UnitState(new Point(15.496442593572015, 15.0), 0.55, true, true),
  1067.                 new UnitState(new Point(15.496988674987255, 15.0), 0.55, true, true),
  1068.                 new UnitState(new Point(15.497534756402496, 15.0), 0.55, true, true),
  1069.                 new UnitState(new Point(15.498080837817737, 15.0), 0.55, true, true),
  1070.                 new UnitState(new Point(15.498626919232978, 15.0), 0.55, true, true),
  1071.                 new UnitState(new Point(15.499173000648218, 15.0), 0.55, true, true),
  1072.                 new UnitState(new Point(15.499719082063459, 15.0), 0.55, true, true),
  1073.                 new UnitState(new Point(15.5002651634787, 15.0), 0.55, true, true),
  1074.                 new UnitState(new Point(15.50081124489394, 15.0), 0.55, true, true),
  1075.                 new UnitState(new Point(15.501357326309181, 15.0), 0.55, true, true),
  1076.                 new UnitState(new Point(15.501903407724422, 15.0), 0.55, true, true),
  1077.                 new UnitState(new Point(15.502449489139662, 15.0), 0.55, true, true),
  1078.                 new UnitState(new Point(15.501119654709646, 15.0), 0.55, true, true),
  1079.                 new UnitState(new Point(15.499789820279629, 15.0), 0.55, true, true),
  1080.                 new UnitState(new Point(15.498459985849612, 15.0), 0.55, true, true),
  1081.                 new UnitState(new Point(15.497130151419595, 15.0), 0.55, true, true),
  1082.                 new UnitState(new Point(15.495800316989579, 15.0), 0.55, true, true),
  1083.                 new UnitState(new Point(15.494470482559562, 15.0), 0.55, true, true),
  1084.                 new UnitState(new Point(15.493140648129545, 15.0), 0.55, true, true),
  1085.                 new UnitState(new Point(15.491810813699528, 15.0), 0.55, true, true),
  1086.                 new UnitState(new Point(15.49128523972961, 15.0), 0.55, true, true),
  1087.                 new UnitState(new Point(15.490759665759692, 15.0), 0.55, true, true),
  1088.                 new UnitState(new Point(15.490234091789773, 15.0), 0.55, true, true),
  1089.                 new UnitState(new Point(15.489708517819855, 15.0), 0.55, true, true),
  1090.                 new UnitState(new Point(15.489182943849936, 15.0), 0.55, true, true),
  1091.                 new UnitState(new Point(15.488657369880018, 15.0), 0.55, true, true),
  1092.                 new UnitState(new Point(15.4881317959101, 15.0), 0.55, true, true),
  1093.                 new UnitState(new Point(15.487606221940181, 15.0), 0.55, true, true),
  1094.                 new UnitState(new Point(15.487080647970263, 15.0), 0.55, true, true),
  1095.                 new UnitState(new Point(15.486555074000345, 15.0), 0.55, true, true),
  1096.                 new UnitState(new Point(15.486029500030426, 15.0), 0.55, true, true),
  1097.                 new UnitState(new Point(15.485503926060508, 15.0), 0.55, true, true),
  1098.                 new UnitState(new Point(15.48497835209059, 15.0), 0.55, true, true),
  1099.                 new UnitState(new Point(15.484452778120671, 15.0), 0.55, true, true),
  1100.                 new UnitState(new Point(15.483927204150753, 15.0), 0.55, true, true),
  1101.                 new UnitState(new Point(15.48332807312597, 15.0), 0.55, true, true),
  1102.                 new UnitState(new Point(15.482728942101186, 15.0), 0.55, true, true),
  1103.                 new UnitState(new Point(15.482129811076403, 15.0), 0.55, true, true),
  1104.                 new UnitState(new Point(15.481471716840234, 15.001666666666667), 0.5498333333333334, true, true),
  1105.                 new UnitState(new Point(15.480813622604066, 15.003333333333334), 0.5496666666666667, true, true),
  1106.                 new UnitState(new Point(15.480155528367897, 15.005), 0.5495000000000001, true, true),
  1107.                 new UnitState(new Point(15.479497434131728, 15.006666666666668), 0.5493333333333335, true, true),
  1108.                 new UnitState(new Point(15.47883933989556, 15.008333333333335), 0.5491666666666668, true, true),
  1109.                 new UnitState(new Point(15.47818124565939, 15.010000000000002), 0.5490000000000002, true, true),
  1110.                 new UnitState(new Point(15.477523151423222, 15.011666666666668), 0.5488333333333335, true, true),
  1111.                 new UnitState(new Point(15.476865057187053, 15.013333333333335), 0.5486666666666669, true, true),
  1112.                 new UnitState(new Point(15.476206962950885, 15.015000000000002), 0.5485000000000002, true, true),
  1113.                 new UnitState(new Point(15.475548868714716, 15.01666666666667), 0.5483333333333336, true, true),
  1114.                 new UnitState(new Point(15.473893857126406, 15.015000000000002), 0.0, false, false),
  1115.                 new UnitState(new Point(15.472238845538095, 15.013333333333335), 0.0, false, false),
  1116.                 new UnitState(new Point(15.470583833949785, 15.011666666666668), 0.0, false, false),
  1117.                 new UnitState(new Point(15.468928822361475, 15.010000000000002), 0.0, false, false),
  1118.                 new UnitState(new Point(15.467273810773165, 15.008333333333335), 0.0, false, false),
  1119.                 new UnitState(new Point(15.465618799184854, 15.006666666666668), 0.0, false, false),
  1120.                 new UnitState(new Point(15.463963787596544, 15.005), 0.0, false, false),
  1121.                 new UnitState(new Point(15.462308776008234, 15.003333333333334), 0.0, false, false),
  1122.                 new UnitState(new Point(15.460653764419924, 15.001666666666667), 0.0, false, false),
  1123.                 new UnitState(new Point(15.458998752831613, 15.0), 0.0, false, false),
  1124.                 new UnitState(new Point(15.457343741243303, 15.0), 0.55, true, true),
  1125.                 new UnitState(new Point(15.455688729654993, 15.0), 0.55, true, true),
  1126.                 new UnitState(new Point(15.454033718066682, 15.0), 0.55, true, true),
  1127.                 new UnitState(new Point(15.452378706478372, 15.0), 0.55, true, true),
  1128.                 new UnitState(new Point(15.451099684527742, 15.0), 0.55, true, true),
  1129.                 new UnitState(new Point(15.449820662577112, 15.0), 0.55, true, true),
  1130.                 new UnitState(new Point(15.448541640626482, 15.0), 0.55, true, true),
  1131.                 new UnitState(new Point(15.447262618675852, 15.0), 0.55, true, true),
  1132.                 new UnitState(new Point(15.445983596725222, 15.0), 0.55, true, true),
  1133.                 new UnitState(new Point(15.444704574774592, 15.0), 0.55, true, true),
  1134.                 new UnitState(new Point(15.443425552823962, 15.0), 0.55, true, true),
  1135.                 new UnitState(new Point(15.4448855279701, 15.0), 0.55, true, true),
  1136.                 new UnitState(new Point(15.44634550311624, 15.0), 0.55, true, true),
  1137.                 new UnitState(new Point(15.447805478262378, 15.0), 0.55, true, true),
  1138.                 new UnitState(new Point(15.449265453408517, 15.0), 0.55, true, true),
  1139.                 new UnitState(new Point(15.450725428554655, 15.0), 0.55, true, true),
  1140.                 new UnitState(new Point(15.449116697117365, 15.001666666666667), 0.5498333333333334, true, true),
  1141.                 new UnitState(new Point(15.447507965680074, 15.003333333333334), 0.5496666666666667, true, true),
  1142.                 new UnitState(new Point(15.445899234242784, 15.005), 0.5495000000000001, true, true),
  1143.                 new UnitState(new Point(15.444290502805494, 15.006666666666668), 0.5493333333333335, true, true),
  1144.                 new UnitState(new Point(15.442681771368203, 15.008333333333335), 0.5491666666666668, true, true),
  1145.                 new UnitState(new Point(15.441073039930913, 15.010000000000002), 0.5490000000000002, true, true),
  1146.                 new UnitState(new Point(15.439464308493623, 15.011666666666668), 0.5488333333333335, true, true),
  1147.                 new UnitState(new Point(15.440934151389156, 15.010000000000002), 0.0, false, false),
  1148.                 new UnitState(new Point(15.442403994284689, 15.008333333333335), 0.0, false, false),
  1149.                 new UnitState(new Point(15.443873837180222, 15.006666666666668), 0.0, false, false),
  1150.                 new UnitState(new Point(15.4452994240851, 15.005), 0.0, false, false),
  1151.                 new UnitState(new Point(15.446838662588622, 15.003333333333334), 0.0, false, false),
  1152.                 new UnitState(new Point(15.448377901092144, 15.001666666666667), 0.0, false, false),
  1153.                 new UnitState(new Point(15.449917139595666, 15.0), 0.0, false, false),
  1154.                 new UnitState(new Point(15.451456378099188, 15.0), 0.55, true, true),
  1155.                 new UnitState(new Point(15.45299561660271, 15.001666666666667), 0.5498333333333334, true, true),
  1156.                 new UnitState(new Point(15.454534855106232, 15.003333333333334), 0.5496666666666667, true, true),
  1157.                 new UnitState(new Point(15.456074093609754, 15.005), 0.5495000000000001, true, true),
  1158.                 new UnitState(new Point(15.457613332113276, 15.006666666666668), 0.5493333333333335, true, true),
  1159.                 new UnitState(new Point(15.459152570616798, 15.008333333333335), 0.5491666666666668, true, true),
  1160.                 new UnitState(new Point(15.46069180912032, 15.010000000000002), 0.5490000000000002, true, true),
  1161.                 new UnitState(new Point(15.462231047623842, 15.011666666666668), 0.5488333333333335, true, true),
  1162.                 new UnitState(new Point(15.463770286127364, 15.013333333333335), 0.5486666666666669, true, true),
  1163.                 new UnitState(new Point(15.465309524630886, 15.015000000000002), 0.5485000000000002, true, true),
  1164.                 new UnitState(new Point(15.466848763134408, 15.01666666666667), 0.5483333333333336, true, true),
  1165.                 new UnitState(new Point(15.46838800163793, 15.018333333333336), 0.5481666666666669, true, true),
  1166.                 new UnitState(new Point(15.469927240141452, 15.020000000000003), 0.5480000000000003, true, true),
  1167.                 new UnitState(new Point(15.470631793864774, 15.02166666666667), 0.5478333333333336, true, true),
  1168.                 new UnitState(new Point(15.471336347588096, 15.023333333333337), 0.547666666666667, true, true),
  1169.                 new UnitState(new Point(15.472040901311418, 15.025000000000004), 0.5475000000000003, true, true),
  1170.                 new UnitState(new Point(15.47274545503474, 15.02666666666667), 0.5473333333333337, true, true),
  1171.                 new UnitState(new Point(15.473450008758062, 15.028333333333338), 0.547166666666667, true, true),
  1172.                 new UnitState(new Point(15.474154562481385, 15.030000000000005), 0.5470000000000004, true, true),
  1173.                 new UnitState(new Point(15.474140859671119, 15.031666666666672), 0.5468333333333337, true, true),
  1174.                 new UnitState(new Point(15.474127156860852, 15.033333333333339), 0.5466666666666671, true, true),
  1175.                 new UnitState(new Point(15.474113454050586, 15.035000000000005), 0.5465000000000004, true, true),
  1176.                 new UnitState(new Point(15.47409975124032, 15.036666666666672), 0.5463333333333338, true, true),
  1177.                 new UnitState(new Point(15.474086048430054, 15.03833333333334), 0.5461666666666671, true, true),
  1178.                 new UnitState(new Point(15.474072345619788, 15.040000000000006), 0.5460000000000005, true, true),
  1179.                 new UnitState(new Point(15.474058642809522, 15.041666666666673), 0.5458333333333338, true, true),
  1180.                 new UnitState(new Point(15.474044939999256, 15.04333333333334), 0.5456666666666672, true, true),
  1181.                 new UnitState(new Point(15.47403123718899, 15.045000000000007), 0.5455000000000005, true, true),
  1182.                 new UnitState(new Point(15.474017534378724, 15.046666666666674), 0.5453333333333339, true, true),
  1183.                 new UnitState(new Point(15.474003831568458, 15.048333333333341), 0.5451666666666672, true, true),
  1184.                 new UnitState(new Point(15.473990128758192, 15.050000000000008), 0.5450000000000006, true, true),
  1185.                 new UnitState(new Point(15.473976425947926, 15.051666666666675), 0.544833333333334, true, true),
  1186.                 new UnitState(new Point(15.47396272313766, 15.053333333333342), 0.5446666666666673, true, true),
  1187.                 new UnitState(new Point(15.473949020327394, 15.055000000000009), 0.5445000000000007, true, true),
  1188.                 new UnitState(new Point(15.473935317517128, 15.056666666666676), 0.544333333333334, true, true),
  1189.                 new UnitState(new Point(15.473921614706862, 15.058333333333342), 0.5441666666666674, true, true),
  1190.                 new UnitState(new Point(15.47372423732873, 15.06000000000001), 0.5440000000000007, true, true),
  1191.                 new UnitState(new Point(15.473526859950598, 15.061666666666676), 0.5438333333333341, true, true),
  1192.                 new UnitState(new Point(15.473329482572465, 15.063333333333343), 0.5436666666666674, true, true),
  1193.                 new UnitState(new Point(15.473132105194333, 15.06500000000001), 0.5435000000000008, true, true),
  1194.                 new UnitState(new Point(15.4729347278162, 15.066666666666677), 0.5433333333333341, true, true),
  1195.                 new UnitState(new Point(15.472737350438068, 15.068333333333344), 0.5431666666666675, true, true),
  1196.                 new UnitState(new Point(15.472539973059936, 15.070000000000011), 0.5430000000000008, true, true),
  1197.                 new UnitState(new Point(15.472342595681804, 15.071666666666678), 0.5428333333333342, true, true),
  1198.                 new UnitState(new Point(15.472145218303671, 15.073333333333345), 0.5426666666666675, true, true),
  1199.                 new UnitState(new Point(15.471947840925539, 15.075000000000012), 0.5425000000000009, true, true),
  1200.                 new UnitState(new Point(15.47240401635551, 15.073333333333345), 0.0, false, false),
  1201.                 new UnitState(new Point(15.47286019178548, 15.071666666666678), 0.0, false, false),
  1202.                 new UnitState(new Point(15.473316367215451, 15.070000000000011), 0.0, false, false),
  1203.                 new UnitState(new Point(15.473772542645422, 15.068333333333344), 0.0, false, false),
  1204.                 new UnitState(new Point(15.474228718075393, 15.066666666666677), 0.0, false, false),
  1205.                 new UnitState(new Point(15.474684893505364, 15.06500000000001), 0.0, false, false),
  1206.                 new UnitState(new Point(15.475141068935335, 15.063333333333343), 0.0, false, false),
  1207.                 new UnitState(new Point(15.474720245114012, 15.061666666666676), 0.0, false, false),
  1208.                 new UnitState(new Point(15.47429942129269, 15.06000000000001), 0.0, false, false),
  1209.                 new UnitState(new Point(15.473272023207768, 15.058333333333342), 0.0, false, false),
  1210.                 new UnitState(new Point(15.472244625122846, 15.056666666666676), 0.0, false, false),
  1211.                 new UnitState(new Point(15.471217227037924, 15.055000000000009), 0.0, false, false),
  1212.                 new UnitState(new Point(15.470189828953002, 15.053333333333342), 0.0, false, false),
  1213.                 new UnitState(new Point(15.46916243086808, 15.051666666666675), 0.0, false, false),
  1214.                 new UnitState(new Point(15.468135032783158, 15.050000000000008), 0.0, false, false),
  1215.                 new UnitState(new Point(15.467107634698236, 15.048333333333341), 0.0, false, false),
  1216.                 new UnitState(new Point(15.466080236613314, 15.046666666666674), 0.0, false, false),
  1217.                 new UnitState(new Point(15.465052838528392, 15.045000000000007), 0.0, false, false),
  1218.                 new UnitState(new Point(15.46402544044347, 15.04333333333334), 0.0, false, false),
  1219.                 new UnitState(new Point(15.462998042358548, 15.041666666666673), 0.0, false, false),
  1220.                 new UnitState(new Point(15.461970644273626, 15.040000000000006), 0.0, false, false),
  1221.                 new UnitState(new Point(15.462868211033367, 15.03833333333334), 0.0, false, false),
  1222.                 new UnitState(new Point(15.463765777793109, 15.036666666666672), 0.0, false, false),
  1223.                 new UnitState(new Point(15.46466334455285, 15.035000000000005), 0.0, false, false),
  1224.                 new UnitState(new Point(15.465560911312592, 15.033333333333339), 0.0, false, false),
  1225.                 new UnitState(new Point(15.466458478072333, 15.031666666666672), 0.0, false, false),
  1226.                 new UnitState(new Point(15.467356044832075, 15.030000000000005), 0.0, false, false),
  1227.                 new UnitState(new Point(15.468253611591816, 15.028333333333338), 0.0, false, false),
  1228.                 new UnitState(new Point(15.469151178351558, 15.02666666666667), 0.0, false, false),
  1229.                 new UnitState(new Point(15.4700487451113, 15.025000000000004), 0.0, false, false),
  1230.                 new UnitState(new Point(15.47094631187104, 15.023333333333337), 0.0, false, false),
  1231.                 new UnitState(new Point(15.471843878630782, 15.02166666666667), 0.0, false, false),
  1232.                 new UnitState(new Point(15.472741445390524, 15.020000000000003), 0.0, false, false),
  1233.                 new UnitState(new Point(15.472746446795558, 15.018333333333336), 0.0, false, false),
  1234.                 new UnitState(new Point(15.472751448200592, 15.01666666666667), 0.0, false, false),
  1235.                 new UnitState(new Point(15.472756449605626, 15.015000000000002), 0.0, false, false),
  1236.                 new UnitState(new Point(15.47276145101066, 15.013333333333335), 0.0, false, false),
  1237.                 new UnitState(new Point(15.472766452415694, 15.011666666666668), 0.0, false, false),
  1238.                 new UnitState(new Point(15.472771453820728, 15.010000000000002), 0.0, false, false),
  1239.                 new UnitState(new Point(15.47386576776071, 15.008333333333335), 0.0, false, false),
  1240.                 new UnitState(new Point(15.474960081700692, 15.006666666666668), 0.0, false, false),
  1241.                 new UnitState(new Point(15.476054395640674, 15.005), 0.0, false, false),
  1242.                 new UnitState(new Point(15.477148709580655, 15.003333333333334), 0.0, false, false),
  1243.                 new UnitState(new Point(15.478243023520637, 15.001666666666667), 0.0, false, false),
  1244.                 new UnitState(new Point(15.479337337460619, 15.0), 0.0, false, false),
  1245.                 new UnitState(new Point(15.4804316514006, 15.0), 0.55, true, true),
  1246.                 new UnitState(new Point(15.481525965340582, 15.0), 0.55, true, true),
  1247.                 new UnitState(new Point(15.482096326105736, 15.0), 0.55, true, true),
  1248.                 new UnitState(new Point(15.48266668687089, 15.0), 0.55, true, true),
  1249.                 new UnitState(new Point(15.483237047636045, 15.0), 0.55, true, true),
  1250.                 new UnitState(new Point(15.4838074084012, 15.0), 0.55, true, true),
  1251.                 new UnitState(new Point(15.484377769166354, 15.0), 0.55, true, true),
  1252.                 new UnitState(new Point(15.484948129931508, 15.0), 0.55, true, true),
  1253.                 new UnitState(new Point(15.486297113847993, 15.0), 0.55, true, true),
  1254.                 new UnitState(new Point(15.487646097764477, 15.0), 0.55, true, true),
  1255.                 new UnitState(new Point(15.488995081680962, 15.0), 0.55, true, true),
  1256.                 new UnitState(new Point(15.490344065597446, 15.0), 0.55, true, true),
  1257.                 new UnitState(new Point(15.49169304951393, 15.0), 0.55, true, true),
  1258.                 new UnitState(new Point(15.493042033430415, 15.0), 0.55, true, true),
  1259.                 new UnitState(new Point(15.4943910173469, 15.0), 0.55, true, true),
  1260.                 new UnitState(new Point(15.495740001263384, 15.0), 0.55, true, true),
  1261.                 new UnitState(new Point(15.497088985179868, 15.0), 0.55, true, true),
  1262.                 new UnitState(new Point(15.498437969096353, 15.0), 0.55, true, true),
  1263.                 new UnitState(new Point(15.499786953012837, 15.0), 0.55, true, true),
  1264.                 new UnitState(new Point(15.501135936929321, 15.0), 0.55, true, true),
  1265.                 new UnitState(new Point(15.502484920845806, 15.0), 0.55, true, true),
  1266.                 new UnitState(new Point(15.50383390476229, 15.0), 0.55, true, true),
  1267.                 new UnitState(new Point(15.50236264037426, 15.001666666666667), 0.5498333333333334, true, true),
  1268.                 new UnitState(new Point(15.50089137598623, 15.003333333333334), 0.5496666666666667, true, true),
  1269.                 new UnitState(new Point(15.4994201115982, 15.005), 0.5495000000000001, true, true),
  1270.                 new UnitState(new Point(15.49794884721017, 15.006666666666668), 0.5493333333333335, true, true),
  1271.                 new UnitState(new Point(15.49647758282214, 15.008333333333335), 0.5491666666666668, true, true),
  1272.                 new UnitState(new Point(15.49500631843411, 15.010000000000002), 0.5490000000000002, true, true),
  1273.                 new UnitState(new Point(15.49378686414933, 15.011666666666668), 0.5488333333333335, true, true),
  1274.                 new UnitState(new Point(15.49256740986455, 15.013333333333335), 0.5486666666666669, true, true),
  1275.                 new UnitState(new Point(15.491347955579771, 15.015000000000002), 0.5485000000000002, true, true),
  1276.                 new UnitState(new Point(15.490128501294992, 15.01666666666667), 0.5483333333333336, true, true),
  1277.                 new UnitState(new Point(15.488909047010212, 15.018333333333336), 0.5481666666666669, true, true),
  1278.                 new UnitState(new Point(15.487689592725433, 15.020000000000003), 0.5480000000000003, true, true),
  1279.                 new UnitState(new Point(15.486470138440653, 15.02166666666667), 0.5478333333333336, true, true),
  1280.                 new UnitState(new Point(15.485250684155874, 15.023333333333337), 0.547666666666667, true, true),
  1281.                 new UnitState(new Point(15.484031229871094, 15.025000000000004), 0.5475000000000003, true, true),
  1282.                 new UnitState(new Point(15.482811775586315, 15.02666666666667), 0.5473333333333337, true, true),
  1283.                 new UnitState(new Point(15.482199099166872, 15.025000000000004), 0.0, false, false),
  1284.                 new UnitState(new Point(15.481689639349337, 15.023333333333337), 0.0, false, false),
  1285.                 new UnitState(new Point(15.481180179531803, 15.02166666666667), 0.0, false, false),
  1286.                 new UnitState(new Point(15.480354201160136, 15.020000000000003), 0.0, false, false),
  1287.                 new UnitState(new Point(15.479528222788469, 15.018333333333336), 0.0, false, false),
  1288.                 new UnitState(new Point(15.478702244416802, 15.01666666666667), 0.0, false, false),
  1289.                 new UnitState(new Point(15.477876266045135, 15.015000000000002), 0.0, false, false),
  1290.                 new UnitState(new Point(15.477050287673467, 15.013333333333335), 0.0, false, false),
  1291.                 new UnitState(new Point(15.4762243093018, 15.011666666666668), 0.0, false, false),
  1292.                 new UnitState(new Point(15.475398330930133, 15.010000000000002), 0.0, false, false),
  1293.                 new UnitState(new Point(15.474572352558466, 15.008333333333335), 0.0, false, false),
  1294.                 new UnitState(new Point(15.475325798747143, 15.006666666666668), 0.0, false, false),
  1295.                 new UnitState(new Point(15.47607924493582, 15.005), 0.0, false, false),
  1296.                 new UnitState(new Point(15.476832691124496, 15.003333333333334), 0.0, false, false),
  1297.                 new UnitState(new Point(15.477586137313173, 15.001666666666667), 0.0, false, false),
  1298.                 new UnitState(new Point(15.47833958350185, 15.0), 0.0, false, false),
  1299.                 new UnitState(new Point(15.479093029690526, 15.0), 0.55, true, true),
  1300.                 new UnitState(new Point(15.479846475879203, 15.0), 0.55, true, true),
  1301.                 new UnitState(new Point(15.48059992206788, 15.0), 0.55, true, true),
  1302.                 new UnitState(new Point(15.481353368256556, 15.0), 0.55, true, true),
  1303.                 new UnitState(new Point(15.482106814445233, 15.0), 0.55, true, true),
  1304.                 new UnitState(new Point(15.48286026063391, 15.0), 0.55, true, true),
  1305.                 new UnitState(new Point(15.483613706822586, 15.0), 0.55, true, true),
  1306.                 new UnitState(new Point(15.484367153011263, 15.0), 0.55, true, true),
  1307.                 new UnitState(new Point(15.48512059919994, 15.0), 0.55, true, true),
  1308.                 new UnitState(new Point(15.485874045388616, 15.0), 0.55, true, true),
  1309.                 new UnitState(new Point(15.486627491577293, 15.0), 0.55, true, true),
  1310.                 new UnitState(new Point(15.48738093776597, 15.0), 0.55, true, true),
  1311.                 new UnitState(new Point(15.488134383954646, 15.0), 0.55, true, true),
  1312.                 new UnitState(new Point(15.48789195987763, 15.0), 0.55, true, true),
  1313.                 new UnitState(new Point(15.487649535800612, 15.0), 0.55, true, true),
  1314.                 new UnitState(new Point(15.487407111723595, 15.0), 0.55, true, true),
  1315.                 new UnitState(new Point(15.487164687646578, 15.0), 0.55, true, true),
  1316.                 new UnitState(new Point(15.48692226356956, 15.0), 0.55, true, true),
  1317.                 new UnitState(new Point(15.486679839492544, 15.0), 0.55, true, true),
  1318.                 new UnitState(new Point(15.486437415415526, 15.0), 0.55, true, true),
  1319.                 new UnitState(new Point(15.48619499133851, 15.0), 0.55, true, true),
  1320.                 new UnitState(new Point(15.485952567261492, 15.0), 0.55, true, true),
  1321.                 new UnitState(new Point(15.485710143184475, 15.0), 0.55, true, true),
  1322.                 new UnitState(new Point(15.485467719107458, 15.0), 0.55, true, true),
  1323.                 new UnitState(new Point(15.48522529503044, 15.0), 0.55, true, true),
  1324.                 new UnitState(new Point(15.484982870953424, 15.0), 0.55, true, true),
  1325.                 new UnitState(new Point(15.484740446876406, 15.0), 0.55, true, true),
  1326.                 new UnitState(new Point(15.48491028980903, 15.0), 0.55, true, true),
  1327.                 new UnitState(new Point(15.485080132741652, 15.0), 0.55, true, true),
  1328.                 new UnitState(new Point(15.485249975674275, 15.0), 0.55, true, true),
  1329.                 new UnitState(new Point(15.485419818606898, 15.0), 0.55, true, true),
  1330.                 new UnitState(new Point(15.485589661539521, 15.0), 0.55, true, true),
  1331.                 new UnitState(new Point(15.485759504472144, 15.0), 0.55, true, true),
  1332.                 new UnitState(new Point(15.485929347404767, 15.0), 0.55, true, true),
  1333.                 new UnitState(new Point(15.486301196961767, 15.0), 0.55, true, true),
  1334.                 new UnitState(new Point(15.486673046518767, 15.0), 0.55, true, true),
  1335.                 new UnitState(new Point(15.487044896075767, 15.0), 0.55, true, true),
  1336.                 new UnitState(new Point(15.487416745632768, 15.0), 0.55, true, true),
  1337.                 new UnitState(new Point(15.487788595189768, 15.0), 0.55, true, true),
  1338.                 new UnitState(new Point(15.488938504247447, 15.0), 0.55, true, true),
  1339.                 new UnitState(new Point(15.490088413305125, 15.0), 0.55, true, true),
  1340.                 new UnitState(new Point(15.491238322362804, 15.0), 0.55, true, true),
  1341.                 new UnitState(new Point(15.492388231420483, 15.0), 0.55, true, true),
  1342.                 new UnitState(new Point(15.493538140478162, 15.0), 0.55, true, true),
  1343.                 new UnitState(new Point(15.49468804953584, 15.0), 0.55, true, true),
  1344.                 new UnitState(new Point(15.495837958593519, 15.0), 0.55, true, true),
  1345.                 new UnitState(new Point(15.496987867651198, 15.0), 0.55, true, true),
  1346.                 new UnitState(new Point(15.498137776708877, 15.0), 0.55, true, true),
  1347.                 new UnitState(new Point(15.499287685766555, 15.0), 0.55, true, true),
  1348.                 new UnitState(new Point(15.500437594824234, 15.0), 0.55, true, true),
  1349.                 new UnitState(new Point(15.501587503881913, 15.0), 0.55, true, true),
  1350.                 new UnitState(new Point(15.502350169150189, 15.0), 0.55, true, true),
  1351.                 new UnitState(new Point(15.503112834418465, 15.0), 0.55, true, true),
  1352.                 new UnitState(new Point(15.503519342453487, 15.0), 0.55, true, true),
  1353.                 new UnitState(new Point(15.503925850488509, 15.0), 0.55, true, true),
  1354.                 new UnitState(new Point(15.50433235852353, 15.0), 0.55, true, true),
  1355.                 new UnitState(new Point(15.504738866558553, 15.0), 0.55, true, true),
  1356.                 new UnitState(new Point(15.505145374593575, 15.0), 0.55, true, true),
  1357.                 new UnitState(new Point(15.505551882628597, 15.0), 0.55, true, true),
  1358.                 new UnitState(new Point(15.505958390663618, 15.0), 0.55, true, true),
  1359.                 new UnitState(new Point(15.50636489869864, 15.0), 0.55, true, true),
  1360.                 new UnitState(new Point(15.506771406733662, 15.0), 0.55, true, true),
  1361.                 new UnitState(new Point(15.507177914768684, 15.0), 0.55, true, true),
  1362.                 new UnitState(new Point(15.507584422803706, 15.0), 0.55, true, true),
  1363.                 new UnitState(new Point(15.507990930838728, 15.0), 0.55, true, true),
  1364.                 new UnitState(new Point(15.50839743887375, 15.0), 0.55, true, true),
  1365.                 new UnitState(new Point(15.509147468934374, 15.001666666666667), 0.5498333333333334, true, true),
  1366.                 new UnitState(new Point(15.509897498994999, 15.003333333333334), 0.5496666666666667, true, true),
  1367.                 new UnitState(new Point(15.510647529055623, 15.005), 0.5495000000000001, true, true),
  1368.                 new UnitState(new Point(15.511397559116247, 15.006666666666668), 0.5493333333333335, true, true),
  1369.                 new UnitState(new Point(15.512147589176871, 15.008333333333335), 0.5491666666666668, true, true),
  1370.                 new UnitState(new Point(15.512897619237496, 15.010000000000002), 0.5490000000000002, true, true),
  1371.                 new UnitState(new Point(15.51364764929812, 15.011666666666668), 0.5488333333333335, true, true),
  1372.                 new UnitState(new Point(15.514397679358744, 15.013333333333335), 0.5486666666666669, true, true),
  1373.                 new UnitState(new Point(15.515147709419368, 15.015000000000002), 0.5485000000000002, true, true),
  1374.                 new UnitState(new Point(15.515897739479993, 15.01666666666667), 0.5483333333333336, true, true),
  1375.                 new UnitState(new Point(15.516647769540617, 15.018333333333336), 0.5481666666666669, true, true),
  1376.                 new UnitState(new Point(15.517397799601241, 15.020000000000003), 0.5480000000000003, true, true),
  1377.                 new UnitState(new Point(15.518147829661865, 15.02166666666667), 0.5478333333333336, true, true),
  1378.                 new UnitState(new Point(15.51889785972249, 15.023333333333337), 0.547666666666667, true, true),
  1379.                 new UnitState(new Point(15.519647889783114, 15.025000000000004), 0.5475000000000003, true, true),
  1380.                 new UnitState(new Point(15.520397919843738, 15.02666666666667), 0.5473333333333337, true, true),
  1381.                 new UnitState(new Point(15.52145728858397, 15.025000000000004), 0.0, false, false),
  1382.                 new UnitState(new Point(15.522516657324203, 15.023333333333337), 0.0, false, false),
  1383.                 new UnitState(new Point(15.523576026064436, 15.02166666666667), 0.0, false, false),
  1384.                 new UnitState(new Point(15.524635394804669, 15.020000000000003), 0.0, false, false),
  1385.                 new UnitState(new Point(15.525694763544902, 15.018333333333336), 0.0, false, false),
  1386.                 new UnitState(new Point(15.524301689247418, 15.01666666666667), 0.0, false, false),
  1387.                 new UnitState(new Point(15.522908614949934, 15.015000000000002), 0.0, false, false),
  1388.                 new UnitState(new Point(15.52151554065245, 15.013333333333335), 0.0, false, false),
  1389.                 new UnitState(new Point(15.520122466354966, 15.011666666666668), 0.0, false, false),
  1390.                 new UnitState(new Point(15.518729392057482, 15.010000000000002), 0.0, false, false),
  1391.                 new UnitState(new Point(15.517336317759998, 15.008333333333335), 0.0, false, false),
  1392.                 new UnitState(new Point(15.515943243462514, 15.006666666666668), 0.0, false, false),
  1393.                 new UnitState(new Point(15.51455016916503, 15.005), 0.0, false, false),
  1394.                 new UnitState(new Point(15.513157094867546, 15.003333333333334), 0.0, false, false),
  1395.                 new UnitState(new Point(15.511764020570062, 15.001666666666667), 0.0, false, false),
  1396.                 new UnitState(new Point(15.510370946272579, 15.0), 0.0, false, false),
  1397.                 new UnitState(new Point(15.508977871975095, 15.0), 0.55, true, true),
  1398.                 new UnitState(new Point(15.50758479767761, 15.0), 0.55, true, true),
  1399.                 new UnitState(new Point(15.506191723380127, 15.0), 0.55, true, true),
  1400.                 new UnitState(new Point(15.504798649082643, 15.0), 0.55, true, true),
  1401.                 new UnitState(new Point(15.503405574785159, 15.0), 0.55, true, true),
  1402.                 new UnitState(new Point(15.502012500487675, 15.0), 0.55, true, true),
  1403.                 new UnitState(new Point(15.500619426190191, 15.0), 0.55, true, true),
  1404.                 new UnitState(new Point(15.499226351892707, 15.0), 0.55, true, true),
  1405.                 new UnitState(new Point(15.497931503506589, 15.0), 0.55, true, true),
  1406.                 new UnitState(new Point(15.49663665512047, 15.0), 0.55, true, true),
  1407.                 new UnitState(new Point(15.495341806734352, 15.0), 0.55, true, true),
  1408.                 new UnitState(new Point(15.494046958348234, 15.0), 0.55, true, true),
  1409.                 new UnitState(new Point(15.492752109962115, 15.0), 0.55, true, true),
  1410.                 new UnitState(new Point(15.491457261575997, 15.0), 0.55, true, true),
  1411.                 new UnitState(new Point(15.490162413189879, 15.0), 0.55, true, true),
  1412.                 new UnitState(new Point(15.48886756480376, 15.0), 0.55, true, true),
  1413.                 new UnitState(new Point(15.487572716417642, 15.0), 0.55, true, true),
  1414.                 new UnitState(new Point(15.486277868031523, 15.0), 0.55, true, true),
  1415.                 new UnitState(new Point(15.484983019645405, 15.0), 0.55, true, true),
  1416.                 new UnitState(new Point(15.483688171259287, 15.0), 0.55, true, true),
  1417.                 new UnitState(new Point(15.482393322873168, 15.0), 0.55, true, true),
  1418.                 new UnitState(new Point(15.48109847448705, 15.0), 0.55, true, true),
  1419.                 new UnitState(new Point(15.479803626100932, 15.0), 0.55, true, true),
  1420.                 new UnitState(new Point(15.478508777714813, 15.0), 0.55, true, true),
  1421.                 new UnitState(new Point(15.477213929328695, 15.0), 0.55, true, true),
  1422.                 new UnitState(new Point(15.476326429227269, 15.0), 0.55, true, true),
  1423.                 new UnitState(new Point(15.475438929125843, 15.0), 0.55, true, true),
  1424.                 new UnitState(new Point(15.474551429024418, 15.0), 0.55, true, true),
  1425.                 new UnitState(new Point(15.473663928922992, 15.0), 0.55, true, true),
  1426.                 new UnitState(new Point(15.472776428821566, 15.0), 0.55, true, true),
  1427.                 new UnitState(new Point(15.47188892872014, 15.0), 0.55, true, true),
  1428.                 new UnitState(new Point(15.471001428618715, 15.0), 0.55, true, true),
  1429.                 new UnitState(new Point(15.47011392851729, 15.0), 0.55, true, true),
  1430.                 new UnitState(new Point(15.469226428415864, 15.0), 0.55, true, true),
  1431.                 new UnitState(new Point(15.468338928314438, 15.0), 0.55, true, true),
  1432.                 new UnitState(new Point(15.467451428213012, 15.0), 0.55, true, true),
  1433.                 new UnitState(new Point(15.466563928111587, 15.0), 0.55, true, true),
  1434.                 new UnitState(new Point(15.46567642801016, 15.0), 0.55, true, true),
  1435.                 new UnitState(new Point(15.464788927908735, 15.0), 0.55, true, true),
  1436.                 new UnitState(new Point(15.465015086106327, 15.0), 0.55, true, true),
  1437.                 new UnitState(new Point(15.465241244303918, 15.0), 0.55, true, true),
  1438.                 new UnitState(new Point(15.46546740250151, 15.0), 0.55, true, true),
  1439.                 new UnitState(new Point(15.465693560699101, 15.0), 0.55, true, true),
  1440.                 new UnitState(new Point(15.465919718896693, 15.0), 0.55, true, true),
  1441.                 new UnitState(new Point(15.466145877094284, 15.0), 0.55, true, true),
  1442.                 new UnitState(new Point(15.466372035291876, 15.0), 0.55, true, true),
  1443.                 new UnitState(new Point(15.466598193489467, 15.0), 0.55, true, true),
  1444.                 new UnitState(new Point(15.466824351687059, 15.0), 0.55, true, true),
  1445.                 new UnitState(new Point(15.46705050988465, 15.0), 0.55, true, true),
  1446.                 new UnitState(new Point(15.467276668082242, 15.0), 0.55, true, true),
  1447.                 new UnitState(new Point(15.467502826279834, 15.0), 0.55, true, true),
  1448.                 new UnitState(new Point(15.467341523074648, 15.0), 0.55, true, true),
  1449.                 new UnitState(new Point(15.467180219869462, 15.0), 0.55, true, true),
  1450.                 new UnitState(new Point(15.467018916664276, 15.0), 0.55, true, true),
  1451.                 new UnitState(new Point(15.46685761345909, 15.0), 0.55, true, true),
  1452.                 new UnitState(new Point(15.466696310253905, 15.0), 0.55, true, true),
  1453.                 new UnitState(new Point(15.466516334346247, 15.0), 0.55, true, true),
  1454.                 new UnitState(new Point(15.46633635843859, 15.0), 0.55, true, true),
  1455.                 new UnitState(new Point(15.466156382530931, 15.0), 0.55, true, true),
  1456.                 new UnitState(new Point(15.465976406623273, 15.0), 0.55, true, true),
  1457.                 new UnitState(new Point(15.465796430715615, 15.0), 0.55, true, true),
  1458.                 new UnitState(new Point(15.465616454807957, 15.0), 0.55, true, true),
  1459.                 new UnitState(new Point(15.4654364789003, 15.0), 0.55, true, true),
  1460.                 new UnitState(new Point(15.465256502992641, 15.0), 0.55, true, true),
  1461.                 new UnitState(new Point(15.46560229103997, 15.0), 0.55, true, true),
  1462.                 new UnitState(new Point(15.465948079087298, 15.0), 0.55, true, true),
  1463.                 new UnitState(new Point(15.466293867134626, 15.0), 0.55, true, true),
  1464.                 new UnitState(new Point(15.466639655181954, 15.0), 0.55, true, true),
  1465.                 new UnitState(new Point(15.466985443229282, 15.0), 0.55, true, true)
  1466.         );
  1467.         Plan plan = new Plan()
  1468.                 .add(4, new MoveAction(-6.058234162634579, true, false))
  1469.                 .add(1, new MoveAction(6.727330666280341, true, false))
  1470.                 .add(3, new MoveAction(-5.6482621831551505, false, true))
  1471.                 .add(15, new MoveAction(3.276488491440583, false, false))
  1472.                 .add(0, new MoveAction(5.341262581613249, true, false))
  1473.                 .add(8, new MoveAction(-7.979006580100016, false, true))
  1474.                 .add(15, new MoveAction(-3.153443819505293, false, false))
  1475.                 .add(3, new MoveAction(-3.5947861487003436, false, true))
  1476.                 .add(10, new MoveAction(-3.9485654170095668, true, false))
  1477.                 .add(14, new MoveAction(-9.930069529860098, false, true))
  1478.                 .add(7, new MoveAction(-7.674131703774789, false, true))
  1479.                 .add(5, new MoveAction(8.759850876826615, false, false))
  1480.                 .add(7, new MoveAction(-9.652388623741226, true, false))
  1481.                 .add(3, new MoveAction(8.819057373200913, false, false))
  1482.                 .add(1, new MoveAction(8.553521429262922, true, false))
  1483.                 .add(16, new MoveAction(9.235431021133007, true, false))
  1484.                 .add(6, new MoveAction(4.227322339929904, true, false))
  1485.                 .add(17, new MoveAction(-0.08221686159477493, true, false))
  1486.                 .add(10, new MoveAction(-1.184264268795932, true, false))
  1487.                 .add(7, new MoveAction(2.7370525798223753, false, false))
  1488.                 .add(2, new MoveAction(-2.5249429279305495, true, false))
  1489.                 .add(12, new MoveAction(-6.16438850953231, true, false))
  1490.                 .add(12, new MoveAction(5.385400558446779, false, false))
  1491.                 .add(0, new MoveAction(-4.193651622718802, false, false))
  1492.                 .add(6, new MoveAction(0.030008430204379266, false, false))
  1493.                 .add(8, new MoveAction(6.565883639894611, false, true))
  1494.                 .add(6, new MoveAction(3.422164590920975, false, true))
  1495.                 .add(14, new MoveAction(8.093903498901948, false, true))
  1496.                 .add(6, new MoveAction(-8.827586328185182, true, false))
  1497.                 .add(10, new MoveAction(-7.316725708672347, true, false))
  1498.                 .add(1, new MoveAction(-3.676058516662124, false, false))
  1499.                 .add(2, new MoveAction(-3.0567589052036954, true, false))
  1500.                 .add(8, new MoveAction(-4.955870230000043, true, false))
  1501.                 .add(18, new MoveAction(4.520677132060406, false, true))
  1502.                 .add(14, new MoveAction(-1.454544462104133, false, true))
  1503.                 .add(0, new MoveAction(7.3520101502933315, true, false))
  1504.                 .add(7, new MoveAction(1.019057595741252, false, false))
  1505.                 .add(5, new MoveAction(2.2310973419979874, false, true))
  1506.                 .add(12, new MoveAction(6.899454346071018, false, true))
  1507.                 .add(2, new MoveAction(4.575991609652885, false, false))
  1508.                 .add(13, new MoveAction(2.4390482101318938, false, true))
  1509.                 .add(16, new MoveAction(4.5001803637415065, true, false))
  1510.                 .add(5, new MoveAction(6.356212441394188, false, true))
  1511.                 .add(19, new MoveAction(-8.35844578490837, false, true))
  1512.                 .add(17, new MoveAction(-7.769090316713953, false, true))
  1513.                 .add(14, new MoveAction(-5.325000608549049, false, true))
  1514.                 .add(12, new MoveAction(1.3569491855527538, false, true))
  1515.                 .add(5, new MoveAction(-0.9678192311112532, false, false))
  1516.                 .add(8, new MoveAction(-1.0798554459469774, false, true))
  1517.                 .add(5, new MoveAction(2.074728283970952, false, true));
  1518.         List<UnitState> actual = simulator.simulate(start, plan);
  1519.         assertEquals(actual, expected);
  1520.     }
  1521.  
  1522. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement