Example #1
0
  @Test
  public void testStackAvg() throws Exception {

    payload = (SedStackerStackPayload) SAMPFactory.get(SedStackerStackPayload.class);

    // Setup the stack payload
    payload.addSegment(segment1);
    payload.addSegment(segment2);
    payload.addSegment(segment3);
    payload.setBinsize(2.0);
    payload.setLogBin(false);
    payload.setSmooth(false);
    payload.setSmoothBinsize(5.0);
    payload.setStatistic("avg");

    // Setup and send SAMP message
    SAMPMessage message =
        SAMPFactory.createMessage("stack.stack", payload, SedStackerStackPayload.class);

    Response rspns = client.sendMessage(message);

    SedStackerStackPayload response =
        (SedStackerStackPayload) SAMPFactory.get(rspns.getResult(), SedStackerStackPayload.class);

    // get response values
    SegmentPayload seg = response.getSegments().get(0);
    double[] controlY =
        new double[] {5.0, 5.36666667, 4.5, 2.66666667, 4.0, 6.5, 1.5, 10.5, 5.0, 10.0};
    double[] controlX = new double[] {0., 2., 4., 6., 8., 10., 16., 22., 50., 100.};
    // double[] controlYerr = new double[] {0.5, 0.501120965, 0.3640055,
    // 0.18104634, 0.4, 0.48102899, 0.15, 1.05, 0.5, 1.0}; // calculated
    // from errors [sqrt(sum(errors^2))/N]
    double[] controlYerr =
        new double[] {0, 6.82169741, 2.5, 1.64991582, 0., 5.21216526, 0., 0., 0., 0.}; // calculated
    // from
    // stddev(flux)
    double[] controlCounts = new double[] {1, 3, 2, 3, 1, 3, 1, 1, 1, 1};

    assertEquals(response.getSegments().size(), 1);

    // tests
    for (int i = 0; i < seg.getY().length; i++) {
      assertEquals(controlY[i], seg.getY()[i], EPSILON);
    }
    for (int i = 0; i < seg.getY().length; i++) {
      assertEquals(controlX[i], seg.getX()[i], EPSILON);
    }
    for (int i = 0; i < seg.getY().length; i++) {
      assertEquals(controlYerr[i], seg.getYerr()[i], EPSILON);
    }
    for (int i = 0; i < seg.getY().length; i++) {
      assertEquals(controlCounts[i], seg.getCounts()[i], EPSILON);
    }
  }