Пример #1
0
 public void testLM() throws Exception {
   IM im = new IM();
   assertEquals(9, im.POINTS_PER_SECOND);
   assertEquals(im.maxDistance, im.position);
   im.maxDistance = 10.1;
   im.minDistance = 9.1;
   im.errorVariance = 0.0;
   im.errorMean = 0.0;
   im.position = im.maxDistance;
   im.speed = 1.0;
   im.moving = true;
   assertEquals("00010.10m\n", im.genDistance());
   int i = 0;
   while (true) {
     im.doStep();
     i++;
     if (im.position <= im.minDistance) break;
     assertEquals(im.maxDistance - i * im.speed / im.POINTS_PER_SECOND, im.position, 0.00000001);
   }
   assertEquals(false, im.moving);
   assertEquals(im.minDistance, im.position);
   // --- check maxDistance ---
   im.position = im.maxDistance - 0.0001;
   im.speed = -1.0;
   im.moving = true;
   im.doStep();
   assertEquals(false, im.moving);
   assertEquals(im.maxDistance, im.position);
   im.unbind();
   im = new IM();
   im.unbind();
 }
Пример #2
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());
    }
  }