Пример #1
0
  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());
    }
  }