public void testSLM() throws Exception { IM im = new IM(); SLM slm = new SLM(); assertEquals(100, slm.prepareRange(1.0)); assertEquals(slm.MAX_RANGE, slm.prepareRange(Double.POSITIVE_INFINITY)); boolean save = slm.binaryMode; slm.binaryMode = true; slm.createPointsBuf(); assertEquals(-1, slm.lastBufPos); for (int range = 0; range <= slm.MAX_RANGE; range++) { slm.lastBufPos = -1; slm.putPointToBuf(range, 0, 0); slm.pointsBuf[2] = (byte) (range % 256); assertEquals(range / 256, toInt(slm.pointsBuf[1])); assertEquals(range % 256, toInt(slm.pointsBuf[2])); int rr = toInt(slm.pointsBuf[1]) * 256 + toInt(slm.pointsBuf[2]); assertEquals(range, rr); } slm.binaryMode = save; slm.lastBufPos = -1; assertEquals(0.0, slm.errorMean); assertEquals(0.0, slm.errorVariance); assertEquals(0.0, slm.zeroPerCircle); assertEquals(false, slm.hundr); im.moving = true; for (int i = 0; i < 10; i++) { im.doStep(); String distance = im.genDistance(); im.sendDistanceToAll(distance); Thread.sleep(10); assertEquals(distance, IM.FormatDistance(slm.distance)); } VolumeMock volume = new VolumeMock("127.0.0.1", slm.slmport); String cmd[][] = { {"H", "REPLIES ON"}, {"X", "*BINARY"}, {"?", "*MDA072"}, {"J", "v3.1d - Oct 12 2007"}, {"C", "*A00000"}, {"I00010", "*D00010"}, {"FE1543", "*F01543"}, {"FT", "*Tenth"}, {"S", "*STARTD"}, {"A", "*Lasron"} }; for (int i = 0; i < cmd.length; i++) { volume.Send(cmd[i][0] + "\n"); // slm.readProcessPacket(); assertEquals(cmd[i][1], volume.Recieve()); } }